From ebe154d608f0ed49e75ac3d8775e30cf7150f7f9 Mon Sep 17 00:00:00 2001 From: Eric Arellano <14852634+Eric-Arellano@users.noreply.github.com> Date: Thu, 14 Mar 2024 18:06:21 -0400 Subject: [PATCH] Switch from Reno to Towncrier for release notes (#1501) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Why Reno broke Closes https://github.com/Qiskit/documentation/issues/979 and https://github.com/Qiskit/documentation/issues/978. Reno stopped working correctly with Runtime 0.21. The release notes for 0.16+ were all being included in the 0.15 release note entry, incorrectly. https://github.com/Qiskit/qiskit-ibm-runtime/pull/1486 attempted to fix this and it worked locally, but in CI the `stable/0.15` entry was missing all release notes before 0.15 and we could not figure out how to fix that. Reno got into a bad state because of the feature branch `experimental-0.2`. That branch was based off of `main` at the time of 0.15.0. It was not merged back into `main` until preparing 0.21.0 when we merged 32b0dbc364af3b468be50e18797acf9352f2ff94 into `main` . During the feature branch's life, ec8f5a4953a654536148d9ce66f6cca1db3156b3 merged main into experimental-0.2, which we think messed things up by copying over Git tags into the feature branch. `git log --tags --simplify-by-decoration` shows all the tags in order, but between 0.20.0 and 0.21.0 is that commit ec8f5a4953a654536148d9ce66f6cca1db3156b3. We think the problem is that Reno gets confused when you merge a branch that itself has Git tags back into `main`. This [blog warns](https://medium.com/opsops/software-discovery-reno-b072827ad883) > There is one case when reno may skip release note, and it’s a single known ‘don’t do it’ case, documented and articulated: Do not merge stable branch with release tags back into master branch. We think Reno ended up confusing some of the same Git tags between the feature branch and main. We could not think of a safe fix for Reno because we cannot safely force push changes to the Git history. We couldn't find a way to teach Reno which release notes correspond to which version because it tries automating this all via Git. ## Switching to Towncrier [Towncrier](https://towncrier.readthedocs.io/en/stable/) is a popular release notes generator in the Python community used by projects like pip and pytest. It is much simpler than Reno because it is less magical: it doesn't even look at Git. Instead, Towncrier has a simple workflow: - Until a release, each change has a dedicated release note file describing it. - When preparing a release note, you manually run `towncrier build` and it will combine all the separate release notes together and add them to an aggregated release note file for the entire release, like `0.20.0.rst`. It will also delete the individual release note files since they are now moved into the aggregated file. Unlike Reno, this means that you only have standalone release notes files for unreleased versions. If you want to make changes to prior release notes, you simplify modify the aggregated file for that release, like changing `0.20.0.rst`. This means there is a new step to preparing releases: you have to first create a PR to prep the release notes. ### Why do we have one release note file per release? By default, towncrier writes every release note to a single file like `CHANGES.rst`. We instead have one file per release, like `0.20.0.rst`. We do this because it makes patch releases like 0.20.1 simpler; when we do a patch release, we need to cherry-pick the release prep from the `stable/x` branch back into `main` so that the release note file for 0.20.1 shows up on `main`. By having the release notes be separated files per release, we avoid that cherry-pick from having a merge conflict with `main`. We have a helper script that Tox and Make call to concatenate all these separate release note files into a single `release_notes.rst` to be used by the Sphin build. --- .github/workflows/docs.yml | 2 - .gitignore | 3 + CONTRIBUTING.md | 209 ++++++++---------- docs/Makefile | 1 + docs/conf.py | 1 - docs/release_notes.rst | 16 -- pyproject.toml | 32 +++ release-notes/0.1.0.rst | 121 ++++++++++ release-notes/0.1.0rc1.rst | 40 ++++ release-notes/0.1.0rc2.rst | 27 +++ release-notes/0.10.0.rst | 25 +++ release-notes/0.11.0.rst | 54 +++++ release-notes/0.11.1.rst | 9 + release-notes/0.11.2.rst | 34 +++ release-notes/0.11.3.rst | 28 +++ release-notes/0.12.0.rst | 70 ++++++ release-notes/0.12.1.rst | 48 ++++ release-notes/0.12.2.rst | 27 +++ release-notes/0.13.0.rst | 47 ++++ release-notes/0.14.0.rst | 22 ++ release-notes/0.15.0.rst | 83 +++++++ release-notes/0.15.1.rst | 9 + release-notes/0.16.0.rst | 25 +++ release-notes/0.17.0.rst | 35 +++ release-notes/0.18.0.rst | 30 +++ release-notes/0.19.0.rst | 11 + release-notes/0.19.1.rst | 21 ++ release-notes/0.2.0.rst | 20 ++ release-notes/0.20.0.rst | 62 ++++++ release-notes/0.21.0.rst | 37 ++++ release-notes/0.21.1.rst | 8 + release-notes/0.3.0.rst | 31 +++ .../0.4.0.rst | 79 ++++--- release-notes/0.5.0.rst | 114 ++++++++++ release-notes/0.6.0.rst | 29 +++ release-notes/0.7.0.rst | 49 ++++ release-notes/0.7.0rc1.rst | 154 +++++++++++++ release-notes/0.7.0rc2.rst | 33 +++ release-notes/0.8.0.rst | 42 ++++ release-notes/0.9.0.rst | 27 +++ release-notes/0.9.1.rst | 44 ++++ release-notes/0.9.2.rst | 61 +++++ release-notes/0.9.3.rst | 30 +++ release-notes/0.9.4.rst | 45 ++++ release-notes/unreleased/.gitkeep | 2 + release-notes/unreleased/1409.upgrade.rst | 4 + releasenotes/config.yaml | 3 - .../account-management-b9908e0b62dc1d81.yaml | 9 - .../0.1/authentication-79b90822d430688f.yaml | 15 -- .../0.1/backend-v2-15bbe03ff572b6da.yaml | 18 -- ...ckend-vs-get-backend-18b2dcf4b8434e00.yaml | 9 - ...vert-runtime-methods-5d5d76f4d20332f1.yaml | 6 - ...encoder-instructions-f99e128a02a10714.yaml | 6 - ...ter-jobs-by-provider-dead04faaf223840.yaml | 6 - ...qpy-v3-serialisation-20ddba46e7c6ba09.yaml | 8 - .../0.1/interim-results-b5a18a3784063d56.yaml | 7 - .../0.1/least-busy-4a7040c00f605635.yaml | 5 - .../legacy-optional-hgp-299a0fd8ee029734.yaml | 14 -- ...umpy-ndarray-encoder-919d6a344e131fee.yaml | 8 - ...ptional-backend-name-4d120e2645b5831e.yaml | 6 - ...-program-description-f6e3aceca8223af7.yaml | 5 - .../notes/0.1/prelude-96ed7aae53f9932a.yaml | 13 -- ...backend-requirements-a682e98ded7977d7.yaml | 6 - .../0.1/remove-logout-207163e4d4a6adf8.yaml | 5 - .../remove-python-3.6-f7ff43b6d84e4e7c.yaml | 5 - .../remove-run-circuits-6d43cf46e509d55e.yaml | 5 - .../0.1/resolve-crn-b2cc1c35f5306bea.yaml | 7 - .../0.1/runtime-options-175692ee0417ff30.yaml | 7 - .../0.1/stream-results-6ff5f240bbe21fc0.yaml | 6 - ...-for-final-state-bug-02ebbe8df7a252d0.yaml | 8 - ...zation_of_job_params-79abdfebac8fa6f6.yaml | 7 - ...g_max_execution_time-e401d353ae2a7d86.yaml | 6 - .../python-3.11-support-edb6c144032bf483.yaml | 4 - ...e-backends-no-config-5d51fdf5fe9af648.yaml | 5 - .../backend_deepcopy-965f6a19a6d17cb2.yaml | 6 - ...eprecate-bss-seconds-565fc01de679084f.yaml | 5 - .../0.11/error_message-a93bc462baa0cb8a.yaml | 6 - ...eption_cancelled_job-9104b4e513590548.yaml | 5 - .../exclude-job-params-397b0b918aa4f6f9.yaml | 6 - .../job-cost-estimation-d0ba83dbc95c3f67.yaml | 6 - .../0.11/max_circuits-b773c860f8df1cf4.yaml | 7 - ...ta-serialization-bug-dfd7fd86702b6ce7.yaml | 5 - .../non_active_backend-2fcdbbc3d902f2a3.yaml | 5 - ...move-default-session-ba05e48362567d5b.yaml | 21 -- ...-options-set-backend-796e2ae4517be689.yaml | 20 -- .../support-update-tags-43eb9478a315c2b3.yaml | 5 - ...support_coupling_map-3695cd8c7e5ad848.yaml | 12 - ...-properties-datetime-0fe6a364c0a291d2.yaml | 6 - ...ategy-backend-filter-a4fe5248d9aea9c1.yaml | 6 - ...ata-tracking-updates-97327c62c51b5891.yaml | 7 - ...ult-channel-strategy-6899049ad4a7321b.yaml | 6 - ...t-resilience-options-7929458af000314f.yaml | 10 - .../default_account-13d86d50f5b1d972.yaml | 6 - ...cate_noise_amplifier-e656cc98a962a81b.yaml | 7 - ...store-circuit-params-9d87ffefc2a7d257.yaml | 5 - .../0.12/error-codes-82a392efad5963da.yaml | 5 - .../error-message-case-31b4b2b7a5a2f624.yaml | 4 - .../filter_instance-a7203041b5ab85d9.yaml | 8 - .../fix_job_backend-2760075856605bf0.yaml | 10 - ...t_cancel_job_running-771511870d82d4e4.yaml | 6 - .../notes/0.12/from_id-23fc85f3fbf01e0b.yaml | 6 - .../0.12/global_service-ad56a0209e7b9891.yaml | 11 - .../instances-method-02fda1de98638e59.yaml | 6 - .../job-quota-warning-0512f30571897f53.yaml | 7 - ...tion-time-definition-196cb6297693c0f2.yaml | 7 - .../option_validation-79d26018ab770519.yaml | 8 - .../0.12/q-ctrl-support-157170386477dfbd.yaml | 9 - .../q-ctrl-validation-08d249f1e84a43a5.yaml | 7 - ...ckend-circuits-limit-b804b58dc97ed276.yaml | 6 - ...pose-session-details-c4a44316d30dad33.yaml | 10 - .../0.13/fix_np_int64-864b605a88f57419.yaml | 5 - ...og-instance-selected-a18c4791418b5e0d.yaml | 7 - ...ssion-accepting-jobs-d7ef6b60c0f5527b.yaml | 13 -- ...get-history-date-bug-7d6dad84fc5b3d2e.yaml | 6 - .../0.14/batch-class-b7a3befcfce8860e.yaml | 6 - ...cate-custom-programs-274e6ea20d1027a1.yaml | 9 - ...emove_kwargs_options-9024d3ec6572a53e.yaml | 4 - ...rovider-and-backends-ae20e788b45433ba.yaml | 32 --- .../0.15/backend_run-d5a92a4d677da6c1.yaml | 5 - .../byte-result-bug-7afb5abe813f5b1b.yaml | 6 - ...gy-instance-validate-639b18b8c5d44678.yaml | 5 - .../0.15/de-warning-6cf474f11578339c.yaml | 6 - .../deprecate_qiskitrc-1fd8afc6d599fc0e.yaml | 5 - .../0.15/from-id-params-659a2adb727b9d18.yaml | 6 - .../migrate_backend_run-06c4b0579f28061a.yaml | 4 - .../no_cached_results-54d063390b9b0ae6.yaml | 5 - ...ove-circuit-indicies-e8af9da213e463e9.yaml | 6 - .../0.15/revert-from-id-9b87ea2d948251d6.yaml | 6 - ...-ctrl-instance-check-46181d51f16d18bc.yaml | 5 - ...move-custom-programs-aea76f4dd19cd481.yaml | 4 - ...thread-safe-sessions-d08c8367e98447e7.yaml | 6 - ...kend-instance-filter-20d69b3951437f19.yaml | 16 -- ...ty-qubits-name-error-f03b90f21cd2d9bf.yaml | 6 - .../0.17/job-properties-2b5c2f66c50d7d2d.yaml | 6 - ...ession-details-field-48311b4d3313ad94.yaml | 6 - ...cate-service-runtime-1138cb5ec43fc4ff.yaml | 4 - ...amic-circuits-filter-59f771a9b43c00cd.yaml | 5 - ...e-job-params-default-00133498a5c5c15d.yaml | 6 - .../max_session_time-0bd8665656bf439c.yaml | 4 - .../0.18/queueinfo-5e1bb815228425bb.yaml | 5 - ...lidate-provider-code-b07fea8644aa8f43.yaml | 5 - ...ix-duration-patching-b80d45d77481dfa6.yaml | 11 - .../0.19/fix-qpy-bug-739cefc2c9018d0b.yaml | 8 - ...iskit-1.0-compatible-6fbf17d2dd28cb48.yaml | 7 - ...es-sampler-estimator-93c361d72a4f28de.yaml | 7 - .../dd-named-barrier-4f32f6fcb92e20f2.yaml | 8 - ...te-abstract-circuits-d9bdc94b2be7ea21.yaml | 7 - ...ns-with-control-flow-0cf6b5c48c387ca8.yaml | 10 - .../python-3-12-support-a0390cacfe596e5b.yaml | 4 - .../0.20/session-modes-5c22b68620f8d690.yaml | 13 -- .../sessions-endpoint-e617b028fe4a68c4.yaml | 9 - .../fix-control-flow-d5a61dd5647acb42.yaml | 6 - ...isa-circuit-required-ed361bd65cef5ed8.yaml | 10 - ...equire-cloud-backend-38a74144347c735d.yaml | 10 - ...etrieve-fake-backend-13fd3088aaac69e5.yaml | 5 - ...te-isa-circuit-check-493b6e95d969abdb.yaml | 5 - .../0.21/v2-primitives-ada671f4df7caa39.yaml | 14 -- ...annel-deprecate-auth-4e021efeb527818c.yaml | 17 -- ...error-single-circuit-89a0e7b64deedbaa.yaml | 6 - ...add-service-property-d6a076214c131d7a.yaml | 11 - ...reation-date-filters-871a1ca3c0d96fda.yaml | 6 - ...te-indices-estimator-b5a2228d91431b91.yaml | 20 -- ...cate-indices-sampler-13a0b76158ad1392.yaml | 19 -- ...lter-jobs-session-id-e8296c55ad75f789.yaml | 6 - .../job-tags-support-465d3be18b20b306.yaml | 6 - .../max-execution-time-ecdb69210afe3d89.yaml | 8 - ...ion-aware-scheduling-00a294cc67b7d13e.yaml | 6 - .../sort-jobs-by-date-7df02bb34fec3055.yaml | 7 - ...me-job-timeout-error-3e01617412bbc37f.yaml | 6 - .../load-qiskitrc-creds-4aac54737333e248.yaml | 13 -- ...not-authorized-error-31241cd68d8a26d7.yaml | 5 - ...remove-ibm-estimator-7f0b4da07c23e859.yaml | 5 - .../remove-ibm-runtime-aa92d6051b8dcf53.yaml | 5 - .../remove-ibm-sampler-7779165095fd2a5f.yaml | 5 - ...ade-qubit-properties-b5ff4a168ed0cc07.yaml | 8 - ...-sampler-error-check-20e5672c7ff17004.yaml | 7 - .../deprecated-programs-53fa730f52792bce.yaml | 6 - ...rogram-runs-too-long-cf80743eda83d601.yaml | 4 - ...x-howto-retrieve-job-ef991e8d6b444096.yaml | 4 - .../fix-sampler-result-509548c466fa3139.yaml | 7 - ...ix-terra-min-version-613f427851adfab0.yaml | 6 - .../flexible-options-d3f7ea8b9cd5c5c3.yaml | 7 - .../flexible-session-16ee0d1cba4863cd.yaml | 98 -------- ...job-metrics-endpoint-82d61cf269c27933.yaml | 6 - .../job_id_backend_attr-20dffa6335e508f4.yaml | 10 - .../0.7/options_kwargs-70805bc4464691a4.yaml | 7 - ...rize-service-channel-d14de7391dfb5ee1.yaml | 8 - .../primitives-callback-80a7c2dcda960f4d.yaml | 7 - ...tor-caching-programs-c49b517df7d2f702.yaml | 9 - .../0.7/runtime-options-38915f0a5cee60cb.yaml | 5 - .../0.7/tags-max-time-dc170df8d1bc8c25.yaml | 13 -- .../0.7/upgrade-terra-80a543c559e259ce.yaml | 5 - ...ult-resilience-level-8122033dd1369bc8.yaml | 10 - .../python-3.10-support-904322454d2d504e.yaml | 4 - .../resilience_settings-80eb23a095f0381c.yaml | 6 - .../separate-decoders-dde5bf7d051038e6.yaml | 7 - .../use-backend-service-020daf6e4a4d044e.yaml | 7 - ...cept_level_1_options-06c09a67a9c23feb.yaml | 6 - ...l-options-validation-999888470cbd206e.yaml | 4 - .../0.9/closing-session-a64edf80ee35fee2.yaml | 7 - ...m-gate-transpile-bug-61b64e4937269f28.yaml | 6 - ...t-optimization-level-3197ff933dfcfa4f.yaml | 7 - ...or-level-default-bug-64335ef05f1547fa.yaml | 6 - ...-defaults-no-backend-95fba0e99884314a.yaml | 5 - ...filter-faulty-qubits-caacabd23a7bd0d4.yaml | 5 - ...fix_resilience_input-0a7497265109794e.yaml | 6 - ...honor-instance-param-37b14111489364b0.yaml | 6 - .../input_validation-53a3d9a3a860a323.yaml | 10 - .../jobs-backend-filter-05c55c56a7ebaa05.yaml | 5 - ...ding-backend-configs-0b82bdc374ed962c.yaml | 7 - .../0.9/post-timeout-a0928a23941f503b.yaml | 5 - .../refresh-job-backend-1c4f9cbfa30edad4.yaml | 9 - ...-blueprint-decompose-e40327f8a1d7fc7a.yaml | 7 - .../remove-depreacted-f9abe2c7a47c3062.yaml | 16 -- ...retrieve-options-bug-edaed4cd5286f915.yaml | 6 - ...ntime-job-properties-4b85f754bc84d56f.yaml | 5 - ...ssion-backend-option-26ad05fcb7c96dc6.yaml | 8 - .../session-time-param-b02d1513d9754b52.yaml | 7 - ...orten-error-messages-8f955bf26ad17f96.yaml | 5 - .../0.9/target-history-93e8eca3abf49230.yaml | 7 - ...filename-for-account-710cb32e812b3bd8.yaml | 17 -- ..._unsupported_options-9a96d7f32a487d00.yaml | 5 - requirements-dev.txt | 4 +- tools/concat_release_notes.py | 47 ++++ tox.ini | 1 + 225 files changed, 1786 insertions(+), 1575 deletions(-) delete mode 100644 docs/release_notes.rst create mode 100644 release-notes/0.1.0.rst create mode 100644 release-notes/0.1.0rc1.rst create mode 100644 release-notes/0.1.0rc2.rst create mode 100644 release-notes/0.10.0.rst create mode 100644 release-notes/0.11.0.rst create mode 100644 release-notes/0.11.1.rst create mode 100644 release-notes/0.11.2.rst create mode 100644 release-notes/0.11.3.rst create mode 100644 release-notes/0.12.0.rst create mode 100644 release-notes/0.12.1.rst create mode 100644 release-notes/0.12.2.rst create mode 100644 release-notes/0.13.0.rst create mode 100644 release-notes/0.14.0.rst create mode 100644 release-notes/0.15.0.rst create mode 100644 release-notes/0.15.1.rst create mode 100644 release-notes/0.16.0.rst create mode 100644 release-notes/0.17.0.rst create mode 100644 release-notes/0.18.0.rst create mode 100644 release-notes/0.19.0.rst create mode 100644 release-notes/0.19.1.rst create mode 100644 release-notes/0.2.0.rst create mode 100644 release-notes/0.20.0.rst create mode 100644 release-notes/0.21.0.rst create mode 100644 release-notes/0.21.1.rst create mode 100644 release-notes/0.3.0.rst rename releasenotes/notes/0.4/deprecate-classes-ef077e50db9718bc.yaml => release-notes/0.4.0.rst (56%) create mode 100644 release-notes/0.5.0.rst create mode 100644 release-notes/0.6.0.rst create mode 100644 release-notes/0.7.0.rst create mode 100644 release-notes/0.7.0rc1.rst create mode 100644 release-notes/0.7.0rc2.rst create mode 100644 release-notes/0.8.0.rst create mode 100644 release-notes/0.9.0.rst create mode 100644 release-notes/0.9.1.rst create mode 100644 release-notes/0.9.2.rst create mode 100644 release-notes/0.9.3.rst create mode 100644 release-notes/0.9.4.rst create mode 100644 release-notes/unreleased/.gitkeep create mode 100644 release-notes/unreleased/1409.upgrade.rst delete mode 100644 releasenotes/config.yaml delete mode 100644 releasenotes/notes/0.1/account-management-b9908e0b62dc1d81.yaml delete mode 100644 releasenotes/notes/0.1/authentication-79b90822d430688f.yaml delete mode 100644 releasenotes/notes/0.1/backend-v2-15bbe03ff572b6da.yaml delete mode 100644 releasenotes/notes/0.1/backend-vs-get-backend-18b2dcf4b8434e00.yaml delete mode 100644 releasenotes/notes/0.1/convert-runtime-methods-5d5d76f4d20332f1.yaml delete mode 100644 releasenotes/notes/0.1/encoder-instructions-f99e128a02a10714.yaml delete mode 100644 releasenotes/notes/0.1/filter-jobs-by-provider-dead04faaf223840.yaml delete mode 100644 releasenotes/notes/0.1/fix-qpy-v3-serialisation-20ddba46e7c6ba09.yaml delete mode 100644 releasenotes/notes/0.1/interim-results-b5a18a3784063d56.yaml delete mode 100644 releasenotes/notes/0.1/least-busy-4a7040c00f605635.yaml delete mode 100644 releasenotes/notes/0.1/legacy-optional-hgp-299a0fd8ee029734.yaml delete mode 100644 releasenotes/notes/0.1/numpy-ndarray-encoder-919d6a344e131fee.yaml delete mode 100644 releasenotes/notes/0.1/optional-backend-name-4d120e2645b5831e.yaml delete mode 100644 releasenotes/notes/0.1/optional-program-description-f6e3aceca8223af7.yaml delete mode 100644 releasenotes/notes/0.1/prelude-96ed7aae53f9932a.yaml delete mode 100644 releasenotes/notes/0.1/print-backend-requirements-a682e98ded7977d7.yaml delete mode 100644 releasenotes/notes/0.1/remove-logout-207163e4d4a6adf8.yaml delete mode 100644 releasenotes/notes/0.1/remove-python-3.6-f7ff43b6d84e4e7c.yaml delete mode 100644 releasenotes/notes/0.1/remove-run-circuits-6d43cf46e509d55e.yaml delete mode 100644 releasenotes/notes/0.1/resolve-crn-b2cc1c35f5306bea.yaml delete mode 100644 releasenotes/notes/0.1/runtime-options-175692ee0417ff30.yaml delete mode 100644 releasenotes/notes/0.1/stream-results-6ff5f240bbe21fc0.yaml delete mode 100644 releasenotes/notes/0.1/wait-for-final-state-bug-02ebbe8df7a252d0.yaml delete mode 100644 releasenotes/notes/0.10/deserialization_of_job_params-79abdfebac8fa6f6.yaml delete mode 100644 releasenotes/notes/0.10/error_msg_max_execution_time-e401d353ae2a7d86.yaml delete mode 100644 releasenotes/notes/0.10/python-3.11-support-edb6c144032bf483.yaml delete mode 100644 releasenotes/notes/0.10/retrieve-backends-no-config-5d51fdf5fe9af648.yaml delete mode 100644 releasenotes/notes/0.11/backend_deepcopy-965f6a19a6d17cb2.yaml delete mode 100644 releasenotes/notes/0.11/deprecate-bss-seconds-565fc01de679084f.yaml delete mode 100644 releasenotes/notes/0.11/error_message-a93bc462baa0cb8a.yaml delete mode 100644 releasenotes/notes/0.11/exception_cancelled_job-9104b4e513590548.yaml delete mode 100644 releasenotes/notes/0.11/exclude-job-params-397b0b918aa4f6f9.yaml delete mode 100644 releasenotes/notes/0.11/job-cost-estimation-d0ba83dbc95c3f67.yaml delete mode 100644 releasenotes/notes/0.11/max_circuits-b773c860f8df1cf4.yaml delete mode 100644 releasenotes/notes/0.11/metadata-serialization-bug-dfd7fd86702b6ce7.yaml delete mode 100644 releasenotes/notes/0.11/non_active_backend-2fcdbbc3d902f2a3.yaml delete mode 100644 releasenotes/notes/0.11/remove-default-session-ba05e48362567d5b.yaml delete mode 100644 releasenotes/notes/0.11/simulator-options-set-backend-796e2ae4517be689.yaml delete mode 100644 releasenotes/notes/0.11/support-update-tags-43eb9478a315c2b3.yaml delete mode 100644 releasenotes/notes/0.11/support_coupling_map-3695cd8c7e5ad848.yaml delete mode 100644 releasenotes/notes/0.12/backend-properties-datetime-0fe6a364c0a291d2.yaml delete mode 100644 releasenotes/notes/0.12/channel-strategy-backend-filter-a4fe5248d9aea9c1.yaml delete mode 100644 releasenotes/notes/0.12/data-tracking-updates-97327c62c51b5891.yaml delete mode 100644 releasenotes/notes/0.12/default-channel-strategy-6899049ad4a7321b.yaml delete mode 100644 releasenotes/notes/0.12/default-resilience-options-7929458af000314f.yaml delete mode 100644 releasenotes/notes/0.12/default_account-13d86d50f5b1d972.yaml delete mode 100644 releasenotes/notes/0.12/deprecate_noise_amplifier-e656cc98a962a81b.yaml delete mode 100644 releasenotes/notes/0.12/dont-store-circuit-params-9d87ffefc2a7d257.yaml delete mode 100644 releasenotes/notes/0.12/error-codes-82a392efad5963da.yaml delete mode 100644 releasenotes/notes/0.12/error-message-case-31b4b2b7a5a2f624.yaml delete mode 100644 releasenotes/notes/0.12/filter_instance-a7203041b5ab85d9.yaml delete mode 100644 releasenotes/notes/0.12/fix_job_backend-2760075856605bf0.yaml delete mode 100644 releasenotes/notes/0.12/fix_test_cancel_job_running-771511870d82d4e4.yaml delete mode 100644 releasenotes/notes/0.12/from_id-23fc85f3fbf01e0b.yaml delete mode 100644 releasenotes/notes/0.12/global_service-ad56a0209e7b9891.yaml delete mode 100644 releasenotes/notes/0.12/instances-method-02fda1de98638e59.yaml delete mode 100644 releasenotes/notes/0.12/job-quota-warning-0512f30571897f53.yaml delete mode 100644 releasenotes/notes/0.12/max-execution-time-definition-196cb6297693c0f2.yaml delete mode 100644 releasenotes/notes/0.12/option_validation-79d26018ab770519.yaml delete mode 100644 releasenotes/notes/0.12/q-ctrl-support-157170386477dfbd.yaml delete mode 100644 releasenotes/notes/0.12/q-ctrl-validation-08d249f1e84a43a5.yaml delete mode 100644 releasenotes/notes/0.12/remove-backend-circuits-limit-b804b58dc97ed276.yaml delete mode 100644 releasenotes/notes/0.13/expose-session-details-c4a44316d30dad33.yaml delete mode 100644 releasenotes/notes/0.13/fix_np_int64-864b605a88f57419.yaml delete mode 100644 releasenotes/notes/0.13/log-instance-selected-a18c4791418b5e0d.yaml delete mode 100644 releasenotes/notes/0.13/session-accepting-jobs-d7ef6b60c0f5527b.yaml delete mode 100644 releasenotes/notes/0.13/target-history-date-bug-7d6dad84fc5b3d2e.yaml delete mode 100644 releasenotes/notes/0.14/batch-class-b7a3befcfce8860e.yaml delete mode 100644 releasenotes/notes/0.14/deprecate-custom-programs-274e6ea20d1027a1.yaml delete mode 100644 releasenotes/notes/0.14/remove_kwargs_options-9024d3ec6572a53e.yaml delete mode 100644 releasenotes/notes/0.15/add-fake-provider-and-backends-ae20e788b45433ba.yaml delete mode 100644 releasenotes/notes/0.15/backend_run-d5a92a4d677da6c1.yaml delete mode 100644 releasenotes/notes/0.15/byte-result-bug-7afb5abe813f5b1b.yaml delete mode 100644 releasenotes/notes/0.15/channel-strategy-instance-validate-639b18b8c5d44678.yaml delete mode 100644 releasenotes/notes/0.15/de-warning-6cf474f11578339c.yaml delete mode 100644 releasenotes/notes/0.15/deprecate_qiskitrc-1fd8afc6d599fc0e.yaml delete mode 100644 releasenotes/notes/0.15/from-id-params-659a2adb727b9d18.yaml delete mode 100644 releasenotes/notes/0.15/migrate_backend_run-06c4b0579f28061a.yaml delete mode 100644 releasenotes/notes/0.15/no_cached_results-54d063390b9b0ae6.yaml delete mode 100644 releasenotes/notes/0.15/remove-circuit-indicies-e8af9da213e463e9.yaml delete mode 100644 releasenotes/notes/0.15/revert-from-id-9b87ea2d948251d6.yaml delete mode 100644 releasenotes/notes/0.16/q-ctrl-instance-check-46181d51f16d18bc.yaml delete mode 100644 releasenotes/notes/0.16/remove-custom-programs-aea76f4dd19cd481.yaml delete mode 100644 releasenotes/notes/0.16/thread-safe-sessions-d08c8367e98447e7.yaml delete mode 100644 releasenotes/notes/0.17/backend-instance-filter-20d69b3951437f19.yaml delete mode 100644 releasenotes/notes/0.17/faulity-qubits-name-error-f03b90f21cd2d9bf.yaml delete mode 100644 releasenotes/notes/0.17/job-properties-2b5c2f66c50d7d2d.yaml delete mode 100644 releasenotes/notes/0.17/new-session-details-field-48311b4d3313ad94.yaml delete mode 100644 releasenotes/notes/0.18/deprecate-service-runtime-1138cb5ec43fc4ff.yaml delete mode 100644 releasenotes/notes/0.18/dynamic-circuits-filter-59f771a9b43c00cd.yaml delete mode 100644 releasenotes/notes/0.18/exclude-job-params-default-00133498a5c5c15d.yaml delete mode 100644 releasenotes/notes/0.18/max_session_time-0bd8665656bf439c.yaml delete mode 100644 releasenotes/notes/0.18/queueinfo-5e1bb815228425bb.yaml delete mode 100644 releasenotes/notes/0.19/consolidate-provider-code-b07fea8644aa8f43.yaml delete mode 100644 releasenotes/notes/0.19/fix-duration-patching-b80d45d77481dfa6.yaml delete mode 100644 releasenotes/notes/0.19/fix-qpy-bug-739cefc2c9018d0b.yaml delete mode 100644 releasenotes/notes/0.19/qiskit-1.0-compatible-6fbf17d2dd28cb48.yaml delete mode 100644 releasenotes/notes/0.2/primitives-sampler-estimator-93c361d72a4f28de.yaml delete mode 100644 releasenotes/notes/0.20/dd-named-barrier-4f32f6fcb92e20f2.yaml delete mode 100644 releasenotes/notes/0.20/deprecate-abstract-circuits-d9bdc94b2be7ea21.yaml delete mode 100644 releasenotes/notes/0.20/fix-durations-with-control-flow-0cf6b5c48c387ca8.yaml delete mode 100644 releasenotes/notes/0.20/python-3-12-support-a0390cacfe596e5b.yaml delete mode 100644 releasenotes/notes/0.20/session-modes-5c22b68620f8d690.yaml delete mode 100644 releasenotes/notes/0.20/sessions-endpoint-e617b028fe4a68c4.yaml delete mode 100644 releasenotes/notes/0.21/fix-control-flow-d5a61dd5647acb42.yaml delete mode 100644 releasenotes/notes/0.21/isa-circuit-required-ed361bd65cef5ed8.yaml delete mode 100644 releasenotes/notes/0.21/require-cloud-backend-38a74144347c735d.yaml delete mode 100644 releasenotes/notes/0.21/retrieve-fake-backend-13fd3088aaac69e5.yaml delete mode 100644 releasenotes/notes/0.21/update-isa-circuit-check-493b6e95d969abdb.yaml delete mode 100644 releasenotes/notes/0.21/v2-primitives-ada671f4df7caa39.yaml delete mode 100644 releasenotes/notes/0.3/add-channel-deprecate-auth-4e021efeb527818c.yaml delete mode 100644 releasenotes/notes/0.3/fix-error-single-circuit-89a0e7b64deedbaa.yaml delete mode 100644 releasenotes/notes/0.5/add-service-property-d6a076214c131d7a.yaml delete mode 100644 releasenotes/notes/0.5/creation-date-filters-871a1ca3c0d96fda.yaml delete mode 100644 releasenotes/notes/0.5/deprecate-indices-estimator-b5a2228d91431b91.yaml delete mode 100644 releasenotes/notes/0.5/deprecate-indices-sampler-13a0b76158ad1392.yaml delete mode 100644 releasenotes/notes/0.5/filter-jobs-session-id-e8296c55ad75f789.yaml delete mode 100644 releasenotes/notes/0.5/job-tags-support-465d3be18b20b306.yaml delete mode 100644 releasenotes/notes/0.5/max-execution-time-ecdb69210afe3d89.yaml delete mode 100644 releasenotes/notes/0.5/session-aware-scheduling-00a294cc67b7d13e.yaml delete mode 100644 releasenotes/notes/0.5/sort-jobs-by-date-7df02bb34fec3055.yaml delete mode 100644 releasenotes/notes/0.5/upgrade-runtime-job-timeout-error-3e01617412bbc37f.yaml delete mode 100644 releasenotes/notes/0.6/load-qiskitrc-creds-4aac54737333e248.yaml delete mode 100644 releasenotes/notes/0.6/not-authorized-error-31241cd68d8a26d7.yaml delete mode 100644 releasenotes/notes/0.6/remove-ibm-estimator-7f0b4da07c23e859.yaml delete mode 100644 releasenotes/notes/0.6/remove-ibm-runtime-aa92d6051b8dcf53.yaml delete mode 100644 releasenotes/notes/0.6/remove-ibm-sampler-7779165095fd2a5f.yaml delete mode 100644 releasenotes/notes/0.6/upgrade-qubit-properties-b5ff4a168ed0cc07.yaml delete mode 100644 releasenotes/notes/0.7/add-sampler-error-check-20e5672c7ff17004.yaml delete mode 100644 releasenotes/notes/0.7/deprecated-programs-53fa730f52792bce.yaml delete mode 100644 releasenotes/notes/0.7/exception-when-program-runs-too-long-cf80743eda83d601.yaml delete mode 100644 releasenotes/notes/0.7/fix-howto-retrieve-job-ef991e8d6b444096.yaml delete mode 100644 releasenotes/notes/0.7/fix-sampler-result-509548c466fa3139.yaml delete mode 100644 releasenotes/notes/0.7/fix-terra-min-version-613f427851adfab0.yaml delete mode 100644 releasenotes/notes/0.7/flexible-options-d3f7ea8b9cd5c5c3.yaml delete mode 100644 releasenotes/notes/0.7/flexible-session-16ee0d1cba4863cd.yaml delete mode 100644 releasenotes/notes/0.7/job-metrics-endpoint-82d61cf269c27933.yaml delete mode 100644 releasenotes/notes/0.7/job_id_backend_attr-20dffa6335e508f4.yaml delete mode 100644 releasenotes/notes/0.7/options_kwargs-70805bc4464691a4.yaml delete mode 100644 releasenotes/notes/0.7/parameterize-service-channel-d14de7391dfb5ee1.yaml delete mode 100644 releasenotes/notes/0.7/primitives-callback-80a7c2dcda960f4d.yaml delete mode 100644 releasenotes/notes/0.7/refactor-caching-programs-c49b517df7d2f702.yaml delete mode 100644 releasenotes/notes/0.7/runtime-options-38915f0a5cee60cb.yaml delete mode 100644 releasenotes/notes/0.7/tags-max-time-dc170df8d1bc8c25.yaml delete mode 100644 releasenotes/notes/0.7/upgrade-terra-80a543c559e259ce.yaml delete mode 100644 releasenotes/notes/0.8/default-resilience-level-8122033dd1369bc8.yaml delete mode 100644 releasenotes/notes/0.8/python-3.10-support-904322454d2d504e.yaml delete mode 100644 releasenotes/notes/0.8/resilience_settings-80eb23a095f0381c.yaml delete mode 100644 releasenotes/notes/0.8/separate-decoders-dde5bf7d051038e6.yaml delete mode 100644 releasenotes/notes/0.8/use-backend-service-020daf6e4a4d044e.yaml delete mode 100644 releasenotes/notes/0.9/accept_level_1_options-06c09a67a9c23feb.yaml delete mode 100644 releasenotes/notes/0.9/additional-options-validation-999888470cbd206e.yaml delete mode 100644 releasenotes/notes/0.9/closing-session-a64edf80ee35fee2.yaml delete mode 100644 releasenotes/notes/0.9/custom-gate-transpile-bug-61b64e4937269f28.yaml delete mode 100644 releasenotes/notes/0.9/default-optimization-level-3197ff933dfcfa4f.yaml delete mode 100644 releasenotes/notes/0.9/error-level-default-bug-64335ef05f1547fa.yaml delete mode 100644 releasenotes/notes/0.9/error-lvl-defaults-no-backend-95fba0e99884314a.yaml delete mode 100644 releasenotes/notes/0.9/filter-faulty-qubits-caacabd23a7bd0d4.yaml delete mode 100644 releasenotes/notes/0.9/fix_resilience_input-0a7497265109794e.yaml delete mode 100644 releasenotes/notes/0.9/honor-instance-param-37b14111489364b0.yaml delete mode 100644 releasenotes/notes/0.9/input_validation-53a3d9a3a860a323.yaml delete mode 100644 releasenotes/notes/0.9/jobs-backend-filter-05c55c56a7ebaa05.yaml delete mode 100644 releasenotes/notes/0.9/lazy-loading-backend-configs-0b82bdc374ed962c.yaml delete mode 100644 releasenotes/notes/0.9/post-timeout-a0928a23941f503b.yaml delete mode 100644 releasenotes/notes/0.9/refresh-job-backend-1c4f9cbfa30edad4.yaml delete mode 100644 releasenotes/notes/0.9/remove-blueprint-decompose-e40327f8a1d7fc7a.yaml delete mode 100644 releasenotes/notes/0.9/remove-depreacted-f9abe2c7a47c3062.yaml delete mode 100644 releasenotes/notes/0.9/retrieve-options-bug-edaed4cd5286f915.yaml delete mode 100644 releasenotes/notes/0.9/runtime-job-properties-4b85f754bc84d56f.yaml delete mode 100644 releasenotes/notes/0.9/session-backend-option-26ad05fcb7c96dc6.yaml delete mode 100644 releasenotes/notes/0.9/session-time-param-b02d1513d9754b52.yaml delete mode 100644 releasenotes/notes/0.9/shorten-error-messages-8f955bf26ad17f96.yaml delete mode 100644 releasenotes/notes/0.9/target-history-93e8eca3abf49230.yaml delete mode 100644 releasenotes/notes/0.9/user-defined-filename-for-account-710cb32e812b3bd8.yaml delete mode 100644 releasenotes/notes/0.9/warning_on_unsupported_options-9a96d7f32a487d00.yaml create mode 100644 tools/concat_release_notes.py diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 065c00804..3e506d765 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -11,8 +11,6 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - with: - fetch-depth: 0 - name: Set up Python uses: actions/setup-python@v5 with: diff --git a/.gitignore b/.gitignore index 3eae17842..125e6bad6 100644 --- a/.gitignore +++ b/.gitignore @@ -110,3 +110,6 @@ Qconfig.py # Pycharm .idea + +# Generated release notes file +docs/release_notes.rst diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b04de6418..03a978113 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -61,140 +61,103 @@ The current categories for each label are as follows: ### Release Notes -When making any end user facing changes in a contribution we have to make sure -we document that when we release a new version of qiskit-ibm. The -expectation is that if your code contribution has user facing changes that you +When making any end user facing changes in a contribution, we have to make sure +we document that when we release a new version of qiskit-ibm-runtime. The +expectation is that if your code contribution has user facing changes, then you will write the release documentation for these changes. This documentation must explain what was changed, why it was changed, and how users can either use or adapt to the change. The idea behind release documentation is that when a naive user with limited internal knowledge of the project is upgrading from the previous release to the new one, they should be able to read the release notes, -understand if they need to update their program which uses qiskit, and how they -would go about doing that. It ideally should explain why they need to make -this change too, to provide the necessary context. +understand if they need to update their program which uses qiskit-ibm-runtime, +and how they would go about doing that. It ideally should explain why +they need to make this change too, to provide the necessary context. To make sure we don't forget a release note or if the details of user facing changes over a release cycle we require that all user facing changes include -documentation at the same time as the code. To accomplish this we use the -[reno](https://docs.openstack.org/reno/latest/) tool which enables a git based -workflow for writing and compiling release notes. +documentation at the same time as the code. To accomplish this, we use the +[Towncrier](https://towncrier.readthedocs.io/en/stable/) tool. #### Adding a new release note -Making a new release note is quite straightforward. Ensure that you have reno -installed with:: - - pip install -U reno - -Once you have reno installed you can make a new release note by running in -your local repository checkout's root:: - - reno new short-description-string - -where short-description-string is a brief string (with no spaces) that describes -what's in the release note. This will become the prefix for the release note -file. Once that is run it will create a new yaml file in releasenotes/notes. -Then open that yaml file in a text editor and write the release note. The basic -structure of a release note is restructured text in yaml lists under category -keys. You add individual items under each category and they will be grouped -automatically by release when the release notes are compiled. A single file -can have as many entries in it as needed, but to avoid potential conflicts -you'll want to create a new file for each pull request that has user facing -changes. When you open the newly created file it will be a full template of -the different categories with a description of a category as a single entry -in each category. You'll want to delete all the sections you aren't using and -update the contents for those you are. For example, the end result should -look something like:: - -```yaml -features: - - | - Introduced a new feature foo, that adds support for doing something to - ``QuantumCircuit`` objects. It can be used by using the foo function, - for example:: - - from qiskit import foo - from qiskit import QuantumCircuit - foo(QuantumCircuit()) - - - | - The ``qiskit.QuantumCircuit`` module has a new method ``foo()``. This is - the equivalent of calling the ``qiskit.foo()`` to do something to your - QuantumCircuit. This is the equivalent of running ``qiskit.foo()`` on - your circuit, but provides the convenience of running it natively on - an object. For example:: - - from qiskit import QuantumCircuit - - circ = QuantumCircuit() - circ.foo() - -deprecations: - - | - The ``qiskit.bar`` module has been deprecated and will be removed in a - future release. Its sole function, ``foobar()`` has been superseded by the - ``qiskit.foo()`` function which provides similar functionality but with - more accurate results and better performance. You should update your calls - ``qiskit.bar.foobar()`` calls to ``qiskit.foo()``. -``` +To create a new release note, first find either the issue or PR number associated with +your change from GitHub because Towncrier links every release note to a GitHub issue +or PR. If there is no associated issue and you haven't yet opened up the PR so you don't +yet have a PR number, you can use the value `todo` at first, then go back and rename the +file once you open up the PR and have its number. -You can also look at other release notes for other examples. +Then, identify which type of change your release note is: -You can use any restructured text feature in them (code sections, tables, -enumerated lists, bulleted list, etc) to express what is being changed as -needed. In general you want the release notes to include as much detail as -needed so that users will understand what has changed, why it changed, and how -they'll have to update their code. +- `feat` (new feature) +- `upgrade` (upgrade note) +- `deprecation` (deprecation) +- `bug` (bug fix) +- `other` (other note) -After you've finished writing your release notes you'll want to add the note -file to your commit with `git add` and commit them to your PR branch to make -sure they're included with the code in your PR. +Now, create a new file in the `release-notes/unreleased` folder in the format `..rst`, +such as `156.bug.rst` or `231.feat.rst`. -#### Linking to issues +Open up the new release note file and provide a description of the change, such as what users need +to do. The files use RST syntax and you can use mechanisms like code blocks and cross-references. -If you need to link to an issue or other github artifact as part of the release -note this should be done using an inline link with the text being the issue -number. For example you would write a release note with a link to issue 12345 -as: +Example notes: -```yaml -fixes: - - | - Fixes a race condition in the function ``foo()``. Refer to - `#12345 `_ for - more details. +```rst +Add ``dd_barrier`` optional input to +:class:`.PadDynamicalDecoupling` +constructor to identify portions of the circuit to apply dynamical +decoupling (dd) on selectively. If this string is contained in the +label of a barrier in the circuit, dd is applied on the delays ending +with it (on the same qubits); otherwise, it is not applied. ``` -#### Generating the release notes +``` +When a single backend is retrieved with the ``instance`` parameter, -After release notes have been added if you want to see what the full output of -the release notes. In general the output from reno that we'll get is a rst -(ReStructuredText) file that can be compiled by -[sphinx](https://www.sphinx-doc.org/en/master/). To generate the rst file you -use the ``reno report`` command. If you want to generate the full Qiskit IBM provider -release notes for all releases (since we started using reno during 0.9) you just -run:: +.. code:: python - reno report + service.backend('ibm_torino', instance='ibm-q/open/main') + # raises error if torino is not in ibm-q/open/main but in a different instance + # the user has access to + service = QiskitRuntimeService(channel="ibm_quantum", instance="ibm-q/open/main") + service.backend('ibm_torino') # raises the same error -but you can also use the ``--version`` argument to view a single release (after -it has been tagged:: +if the backend is not in the instance, but in a different one the user +has access to, an error will be raised. The same error will now be +raised if an instance is passed in at initialization and then a +backend not in that instance is retrieved. +``` - reno report --version 0.9.0 +In general, you want the release notes to include as much detail as +needed so that users will understand what has changed, why it changed, and how +they'll have to update their code. -At release time ``reno report`` is used to generate the release notes for the -release and the output will be submitted as a pull request to the documentation -repository's [release notes file]( -https://github.com/Qiskit/qiskit/blob/master/docs/release_notes.rst) +Towncrier will automatically add a link to the PR or Issue number you used in +the file name once we build the relesae notes during the release. + +After you've finished writing your release note, you need to add the note +file to your commit with `git add` and commit them to your PR branch to make +sure they're included with the code in your PR. + +#### Preview the release notes + +You can preview how the release notes look with the Sphinx docs build by +using Towncrier. First, install Towncrier with [`pipx`](https://pipx.pypa.io/stable/) by +running `pipx install tonwcrier`. + +Then, run `towncrier build --version=unreleased --keep`. Be careful to not save the file `unreleased.rst` to Git! + +Finally, preview the docs build by following the instructions in +[Building documentation locally](#building-documentation-locally). ### Building documentation locally -Building The release notes are part of the standard qiskit-ibm +Building The release notes are part of the standard qiskit-ibm-runtime documentation builds. To check what the rendered html output of the release notes will look like for the current state of the repo you can run: `tox -edocs` which will build all the documentation into `docs/_build/html` and the release notes in particular will be located at -`docs/_build/html/release_notes.html` +`docs/_build/html/release_notes.html`. ### Test @@ -314,19 +277,35 @@ merged to it are bugfixes. ### Release cycle -When it is time to release a new minor version of qiskit-ibm we will: +When it is time to release a new minor version of qiskit-ibm-runtime, first open a PR +to prepare the release notes. Install the tool `towncrier` with `pipx install towncrier`. +Then, in a new branch, run `towncrier build --version= --yes`, and replace +`` with the version like `0.22.0`. Add all the changes to Git and +open a PR. + +After landing the release notes preparation, checkout `main` and make sure that the last +commit is the release notes prep. Then, create a new Git tag from `main` for the full +version number, like `git tag 0.22.0`. Push the tag to GitHub. Also create a new branch like +`stable/0.22` and push it to GitHub. + +GitHub Actions will automatically build and upload the wheels to PyPI. The +qiskit-bot should also automatically create the GitHub Release for you. + +#### Patch releases -1. Create a new tag with the version number and push it to github -2. Change the `main` version to the next release version. +The `stable/*` branches should only receive changes in the form of bug fixes. +These bug fixes should first land on `main`, then be `git cherry-pick`ed to +the stable branch. Include the Towncrier release note in these cherry-picks. -The release automation processes will be triggered by the new tag and perform -the following steps: +When preparing a patch release, you also need to first land a PR against +the `stable/*` branch to prepare the release notes with +`towncrier build --version= --yes`, where `` is +the patch release like `0.21.1`. Then, from the `stable/*` branch, create a new +Git tag for the full version number, like `git tag 0.21.1`, and +push the tag to GitHub. -1. Create a stable branch for the new minor version from the release tag - on the `main` branch -2. Build and upload binary wheels to pypi -3. Create a github release page with a generated changelog -4. Generate a PR on the meta-repository to bump the Qiskit IBM Provider version - and meta-package version. +GitHub Actions will automatically build and upload the wheels to PyPI. The +qiskit-bot should also automatically create the GitHub Release for you. -The `stable/*` branches should only receive changes in the form of bug fixes. \ No newline at end of file +Finally, you need to cherry-pick the release notes prep from `stable/*` to +the `main` branch, such as from `stable/0.21` to `main`. diff --git a/docs/Makefile b/docs/Makefile index 8a08ac7a1..2caf79320 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -25,4 +25,5 @@ help: # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile + python ../tools/concat_release_notes.py @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/conf.py b/docs/conf.py index e6e7a2e1b..331ea5f0a 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -39,7 +39,6 @@ "sphinx.ext.linkcode", 'jupyter_sphinx', 'sphinx_autodoc_typehints', - 'reno.sphinxext', 'nbsphinx', 'sphinxcontrib.katex', 'matplotlib.sphinxext.plot_directive', diff --git a/docs/release_notes.rst b/docs/release_notes.rst deleted file mode 100644 index 6088a388c..000000000 --- a/docs/release_notes.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. - For some reason, Reno stopped including release notes - for 0.16+ starting on the stable/0.21 branch. We can get - things working by using two release-note entries. Refer to - https://github.com/Qiskit/documentation/issues/978 - -============= -Release Notes -============= - -.. release-notes:: - :earliest-version: 0.16.0 - -.. release-notes:: - :branch: stable/0.15 - :earliest-version: 0.1.0rc1 diff --git a/pyproject.toml b/pyproject.toml index ebb26241a..80ae81098 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,3 +5,35 @@ build-backend = "setuptools.build_meta" [tool.black] line-length = 100 target-versions = ['py38', 'py39', 'py310', 'py311', 'py312'] + +[tool.towncrier] +single_file = false +filename = "release-notes/{version}.rst" +directory = "release-notes/unreleased" +title_format = "{version} ({project_date})" +issue_format = "`{issue} `__" + + [[tool.towncrier.type]] + directory = "upgrade" + name = "Upgrade Notes" + showcontent = true + + [[tool.towncrier.type]] + directory = "deprecation" + name = "Deprecation Notes" + showcontent = true + + [[tool.towncrier.type]] + directory = "feat" + name = "New Features" + showcontent = true + + [[tool.towncrier.type]] + directory = "bug" + name = "Bug Fixes" + showcontent = true + + [[tool.towncrier.type]] + directory = "other" + name = "Other Notes" + showcontent = true diff --git a/release-notes/0.1.0.rst b/release-notes/0.1.0.rst new file mode 100644 index 000000000..6bda79256 --- /dev/null +++ b/release-notes/0.1.0.rst @@ -0,0 +1,121 @@ +0.1.0 +===== + +Prelude +------- + +qiskit-ibm-runtime is a new Python API client for accessing the quantum +programs, systems and simulators at IBM Quantum via the Qiskit Runtime +Service. + +This new package is built upon the work already done in +qiskit.providers.ibmq.runtime module in the qiskit-ibmq-provider package +and replaces it going forward. The runtime module in +qiskit-ibmq-provider package is now deprecated. + +qiskit-ibm-runtime is not included as part of Qiskit meta package and +thereby you have to install it separately using +``pip install qiskit-ibm-runtime``. + +New Features +------------ + +- ``qiskit_ibm_runtime.IBMRuntimeService.least_busy()`` will now allow + you find the least busy backend. + +Upgrade Notes +------------- + +- qiskit-ibm-runtime package no longer uses the $HOME/.qiskit/qiskitrc + file used by qiskit-ibmq-provider to save credentials. Credentials + are now stored in a JSON format in $HOME/.qiskit/qiskit-ibm.json file + when you use ``qiskit_ibm_runtime.IBMRuntimeService.save_account()`` + method. + + You can now save multiple credentials and give an optional name for + each credential. + +- Qiskit Runtime service is accessible using an IBM Quantum (legacy) + account or an IBM Cloud (cloud) account. qiskit-ibm-runtime enables + you to connect to either of these accounts: + + .. code:: python + + # Legacy + from qiskit_ibm_runtime import IBMRuntimeService + service = IBMRuntimeService(auth="legacy", token="abc") + + # Cloud + from qiskit_ibm_runtime import IBMRuntimeService + service = IBMRuntimeService(auth="cloud", token="abc", instance="IBM Cloud CRN or Service instance name") + +- ```qiskit_ibm_runtime.IBMBackend`` `__ + class now implements the ``qiskit.providers.BackendV2`` interface and + provides flatter access to the configuration of a backend, for + example: + + .. code:: python + + # BackendV1: + backend.configuration().n_qubits + + # BackendV2: + backend.num_qubits + + Only breaking change when compared to BackendV1 is backend.name is + now an attribute instead of a method. + + Refer to the + ```qiskit_ibm_runtime.IBMBackend`` `__ + class doc string for a list of all available attributes. + +- If you used qiskit.providers.ibmq.AccountProvider.get_backend method + (for example, ``provider.get_backend("ibmq_qasm_simulator")``) in the + qiskit-ibmq-provider package, it’s equivalent method in this new + package is ``qiskit_ibm_runtime.IBMRuntimeService.backend()``: + + .. code:: python + + service = IBMRuntimeService() + backend = service.backend("ibmq_qasm_simulator") + +- It is now optional to specify a hub/group/project upfront when + connecting to the legacy IBM Quantum account. The hub/group/project + is selected in the following order. + + - hub/group/project if passed via ``instance`` parameter when + initializing ``qiskit_ibm_runtime.IBMRuntimeService`` + - the specific hub/group/project required by the backend + specified when calling + ``qiskit_ibm_runtime.IBMRuntimeService.run()`` + - the default set previously via + ``qiskit_ibm_runtime.IBMRuntimeService.save_account()`` + - a premium hub/group/project in your account + - open access hub/group/project + +- It is now optional to specify backend_name in options when executing + ``qiskit_ibm_runtime.IBMRuntimeService.run()`` method when using + cloud runtime (IBM Cloud only). The server will automatically pick a + backend and return the name. + +- qiskit.providers.ibmq.runtime.IBMRuntimeService.logout method in + qiskit-ibmq-provider which was used to clear authorization cache on + the server has been removed. + +- Python 3.6 has reached end of life and will no longer be supported in + the new qiskit-ibm-runtime package. + +- qiskit.providers.ibmq.runtime.IBMRuntimeService.run_circuits method + in qiskit-ibmq-provider has been removed and will be replaced by the + ``Sampler`` primitive program. + +- ``qiskit_ibm_runtime.IBMRuntimeService.run()`` method now accepts + runtime execution options as + ```qiskit_ibm_runtime.RuntimeOptions`` `__ + class in addition to already supported Dict. backend_name, image and + log_level are the currently available options. + +- Final result is also streamed now after interim results when you + specify a ``callback`` to + ``qiskit_ibm_runtime.IBMRuntimeService.run()`` or + ```qiskit_ibm_runtime.RuntimeJob.stream_results()`` `__. diff --git a/release-notes/0.1.0rc1.rst b/release-notes/0.1.0rc1.rst new file mode 100644 index 000000000..93da05dee --- /dev/null +++ b/release-notes/0.1.0rc1.rst @@ -0,0 +1,40 @@ +0.1.0rc1 +======== + +New Features +------------ + +- You can now pass ``instance`` parameter in the hub/group/project + format to ``qiskit_ibm_runtime.IBMRuntimeService.jobs()`` to filter + jobs. Currently only supported for legacy authentication. + +- You can now use the + ```qiskit_ibm_runtime.RuntimeJob.interim_results()`` `__ + method to retrieve runtime program interim results. Note that interim + results will only be available for up to two days. + +Upgrade Notes +------------- + +- In order to be consistent with other properties in + ```qiskit_ibm_runtime.RuntimeJob`` `__ + class the job_id and backend methods have been converted to + properties. + +- When uploading a program with + ``qiskit_ibm_runtime.IBMRuntimeService.upload_program()``, the + program description is now optional. + +- When printing programs with + ``qiskit_ibm_runtime.IBMRuntimeService.pprint_programs()``, + ``backend_requirements`` will now be listed. + +Bug Fixes +--------- + +- Fixed an issue with JSON encoding and decoding when using + ``ParameterExpression``\ s in conjunction with Qiskit Terra 0.19.1 + and above. Previously, the ``Parameter`` instances reconstructed from + the JSON output would have different unique identifiers, causing them + to seem unequal to the input. They will now have the correct backing + identities. diff --git a/release-notes/0.1.0rc2.rst b/release-notes/0.1.0rc2.rst new file mode 100644 index 000000000..86c6c8489 --- /dev/null +++ b/release-notes/0.1.0rc2.rst @@ -0,0 +1,27 @@ +0.1.0rc2 +======== + +New Features +------------ + +- For convenience, you can now set the ``IBM Cloud service name`` as a + value for the account ``instance`` parameter. If you choose to set + the name instead of the ``CRN``, the initialization time of the + ``qiskit_ibm_runtime.IBMRuntimeService`` class is slightly higher + because the required ``CRN`` value is internally resolved via IBM + Cloud APIs. + +Bug Fixes +--------- + +- ```qiskit_ibm_runtime.utils.json.RuntimeEncoder`` `__ + and + ```qiskit_ibm_runtime.utils.json.RuntimeDecoder`` `__ + have been updated to handle instances of the Instruction class. + +- Fixed an issue where numpy ndarrays with object types could not be + serialized. + ```qiskit_ibm_runtime.utils.json.RuntimeEncoder`` `__ + and + ```qiskit_ibm_runtime.utils.json.RuntimeDecoder`` `__ + have been updated to handle these ndarrays. diff --git a/release-notes/0.10.0.rst b/release-notes/0.10.0.rst new file mode 100644 index 000000000..a39b4c23f --- /dev/null +++ b/release-notes/0.10.0.rst @@ -0,0 +1,25 @@ +0.10.0 +====== + +New Features +------------ + +- Python 3.11 is now supported. + +Upgrade Notes +------------- + +- Added error messages in case the user defines unsupported values for + ‘max_execution_time’. Previously, this validation was done on the + server side. + +Bug Fixes +--------- + +- Added deserialization of the params of RuntimeJob.inputs. Previously, + the circuits were returned in serialized format. Fixes issue + `#829 `__. + +- Allow for users to retrieve all backends even if one of the backends + has a missing configuration. The backend without a configuration will + not be returned. diff --git a/release-notes/0.11.0.rst b/release-notes/0.11.0.rst new file mode 100644 index 000000000..eb9157380 --- /dev/null +++ b/release-notes/0.11.0.rst @@ -0,0 +1,54 @@ +0.11.0 +====== + +New Features +------------ + +- When retrieving a job with + ``qiskit_ibm_runtime.IBMRuntimeService.job()`` the ``params`` will no + longer be returned from the API. They will instead be loaded loazily + when they are actually needed in + ```qiskit_ibm_runtime.RuntimeJob.inputs()`` `__. + +- Added warning when the backend is not active in + QiskitRuntimeService.run. + +- Support input of type ``CouplingMap`` when given as simulator option. + Previously we supported, for example: + + .. code:: python + + options.simulator = {"coupling_map": [[0, 1], [1, 0]]} + + Now we also support the following: + + .. code:: python + + options.simulator = {"coupling_map": CouplingMap.from_line(10)} + +Upgrade Notes +------------- + +- A default session is no longer open for you if you pass a backend + name or backend instance to + ```qiskit_ibm_runtime.Sampler`` `__ or + ```qiskit_ibm_runtime.Estimator`` `__ + constructors. The primitive will instead run without a session. In + addition, you should now use the ``backend`` parameter to pass a + backend name or instance instead of the ``session`` parameter (which + can continue to be used to pass a session). + +- The first parameter of the + ```qiskit_ibm_runtime.Sampler`` `__ and + ```qiskit_ibm_runtime.Estimator`` `__ + constructors is now ``backend`` instead of ``session``. + +Deprecation Notes +----------------- + +- Passing a backend name or backend instance to the ``session`` + parameter when initializing a + ```qiskit_ibm_runtime.Sampler`` `__ or + ```qiskit_ibm_runtime.Estimator`` `__ + has been deprecated. Please use the ``backend`` parameter instead. + You can continue to pass a session using the ``session`` parameter. diff --git a/release-notes/0.11.1.rst b/release-notes/0.11.1.rst new file mode 100644 index 000000000..864bf1e0a --- /dev/null +++ b/release-notes/0.11.1.rst @@ -0,0 +1,9 @@ +0.11.1 +====== + +Deprecation Notes +----------------- + +- In + ```qiskit_ibm_runtime.RuntimeJob.metrics()`` `__, + the bss field will be replaced by usage. diff --git a/release-notes/0.11.2.rst b/release-notes/0.11.2.rst new file mode 100644 index 000000000..1eb2f79ba --- /dev/null +++ b/release-notes/0.11.2.rst @@ -0,0 +1,34 @@ +0.11.2 +====== + +New Features +------------ + +- If a job has been cancelled, and job.result() is requested, throw an + exception rather than returning None. + +- A new method, + ```qiskit_ibm_runtime.options.SimulatorOptions.set_backend()`` `__, + allows users to more easily set simulator options for a backend. + + .. code:: python + + from qiskit.providers.fake_provider import FakeManila + from qiskit_aer.noise import NoiseModel + + # Make a noise model + fake_backend = FakeManila() + + # Set options to include the noise model + options = Options() + options.simulator.set_backend(fake_backend) + options.simulator.seed_simulator = 42 + +Bug Fixes +--------- + +- Fixed infinite recursion when attempting to deepcopy an IBMBackend. + Added a method ``qiskit_ibm_runtime.IBMBackend.deepcopy()``. + +- Fixed an issue where circuit metadata was not being serialized + correctly resulting in a type error. diff --git a/release-notes/0.11.3.rst b/release-notes/0.11.3.rst new file mode 100644 index 000000000..f0d24cc66 --- /dev/null +++ b/release-notes/0.11.3.rst @@ -0,0 +1,28 @@ +0.11.3 +====== + +New Features +------------ + +- Added reason for failure when invoking the method + ```error_message()`` `__. + +- Added a new property, + ```usage_estimation()`` `__ + that returns the estimated system execution time, + ``quantum_seconds``. System execution time represents the amount of + time that the system is dedicated to processing your job. + +- Raise an exception if the number of circuits passed to + ``_run_primitive()`` exceeds the number of circuits supported on the + backend. + +- There is a new method + ```update_tags()`` `__ + that can be used to update the ``job_tags`` of a job. + +- If ``instance`` is provided as parameter to + ```qiskit_ibm_runtime.QiskitRuntimeService`` `__, + then this is used as a filter in ``QiskitRuntimeService.backends()``. + If ``instance`` is not recognized as one of the provider instances, + an exception will be raised. Previously, we only issued a warning. diff --git a/release-notes/0.12.0.rst b/release-notes/0.12.0.rst new file mode 100644 index 000000000..b982d4050 --- /dev/null +++ b/release-notes/0.12.0.rst @@ -0,0 +1,70 @@ +0.12.0 +====== + +New Features +------------ + +- Added a ``global_service``, so that if the user defines a + QiskitRuntimeService, it will be used by the primitives, even if the + service is not passed to them explicitly. For example: + + .. code:: python + + from qiskit_ibm_runtime import QiskitRuntimeService, Sampler + service = QiskitRuntimeService(channel="ibm_quantum") + # Sampler._service field will be initialized to ``service`` + sampler = Sampler(backend="ibmq_qasm_simulator") + +- Added a new method, + ```qiskit_ibm_runtime.QiskitRuntimeService.instances()`` `__ + that returns all instances(hub/group/project) the user is in. This is + only for the ``ibm_quantum`` channel since the ``ibm_cloud`` channel + does not have multiple instances. + +- Added validations for options on the second level of the dict, i.e., + for each of resilience, simulator, execution, and transpilation, + check that their options are supported. Otherwise throw an exception. + +- There is a new parameter, ``channel_strategy`` that can be set in the + initialization of + ```qiskit_ibm_runtime.QiskitRuntimeService`` `__ + or saved in + ```qiskit_ibm_runtime.QiskitRuntimeService.save_account()`` `__. + If ``channel_strategy`` is set to ``q-ctrl``, all jobs within the + service will use the Q-CTRL error mitigation strategy. + +Upgrade Notes +------------- + +- Circuits and other input parameters will no longer be automatically + stored in runtime jobs. They can still be retrieved with + ```qiskit_ibm_runtime.RuntimeJob.inputs()`` `__. + + +Deprecation Notes +----------------- + +- The ``noise_amplifier`` resilience options is deprecated. After the + deprecation period, only local folding amplification will be + supported. Refer to https://github.com/qiskit-community/prototype-zne + for global folding amplification. + +Bug Fixes +--------- + +- When running on channel “ibm_cloud”, it is possible not to specify + the backend. In this case, the system selects one of the available + backends for this service. Issue #625 + https://github.com/Qiskit/qiskit-ibm-runtime/issues/625 reported that + the the backend returned by ``job.backend()`` was not always the + actual backend on which the job was run. This PR fixes this bug. + +- Fixes a race condition in the test test_cancel_running_job() in + test_job.py where job cancellation could not be performed. Refer to + #1019 \_ + for more details. + +- Previously we added validation when jobs were run to make sure the + number of circuits was not greater than the maximum for that backend, + ``backend.max_circuits``. This limit isn’t actually necessary for + primtives run from within a session. diff --git a/release-notes/0.12.1.rst b/release-notes/0.12.1.rst new file mode 100644 index 000000000..fd5ae6387 --- /dev/null +++ b/release-notes/0.12.1.rst @@ -0,0 +1,48 @@ +0.12.1 +====== + +New Features +------------ + +- Users can use a new environment variable, ``USAGE_DATA_OPT_OUT`` to + opt out of user module usage tracking by setting this value to + ``True``. Additionally, only certain qiskit modules will be tracked + instead of all modules that begin with qiskit or qiskit\_. + +- Users can now pass in a value of ``default`` to the + ``channel_strategy`` parameter in + ```qiskit_ibm_runtime.QiskitRuntimeService`` `__. + Now, if an account is configured with a certain channel strategy, the + user can override it by passing in ``default``. + +- The Sampler and Estimator primitives have been enhanced to + incorporate custom validation procedures when the channel_strategy + property within the :class:qiskit_ibm_runtime.QiskitRuntimeService is + configured as “q-ctrl.” This customized validation logic effectively + rectifies incorrect input options and safeguards users against + inadvertently disabling Q-CTRL’s performance enhancements. + +Bug Fixes +--------- + +- Retrieving backend properties with + ```properties()`` `__ now + supports passing a ``datetime`` parameter to retrieve properties from + a past date. + +- The ``noise_factors`` and ``extrapolator`` options in + ```qiskit_ibm_runtime.options.ResilienceOptions`` `__ + will now default to ``None`` unless ``resilience_level`` is set to 2. + Only options relevant to the resilience level will be set, so when + using ``resilience_level`` 2, ``noise_factors`` will still default to + ``(1, 3, 5)`` and ``extrapolator`` will default to + ``LinearExtrapolator``. Additionally, options with a value of + ``None`` will no longer be sent to the server. + +- Job error messages will no longer be returned in all uppercase. + +- The max_execution_time option is now based on system execution time + instead of wall clock time. System execution time is the amount of + time that the system is dedicated to processing your job. If a job + exceeds this time limit, it is forcibly cancelled. Simulator jobs + continue to use wall clock time. diff --git a/release-notes/0.12.2.rst b/release-notes/0.12.2.rst new file mode 100644 index 000000000..c181632e7 --- /dev/null +++ b/release-notes/0.12.2.rst @@ -0,0 +1,27 @@ +0.12.2 +====== + +New Features +------------ + +- If using a ``channel_strategy``, only backends that support that + ``channel_strategy`` will be accessible to the user. + +- Added the option to define a default account in the account json + file. To select an account as default, define ``set_as_default=True`` + in ``QiskitRuntimeService.save_account()``. + +- Added new method ``Session.from_id`` which creates a new session with + a given id. + +- There will now be a warning if a user submits a job that is predicted + to exceed their system execution time monthly quota of 10 minutes. + This only applies to jobs run on real hardware in the instance + ``ibm-q/open/main``. If the job does end up exceeding the quota, it + will be canceled. + +Upgrade Notes +------------- + +- Job error messages now include the error code. Error codes can be + found in `errors `__. diff --git a/release-notes/0.13.0.rst b/release-notes/0.13.0.rst new file mode 100644 index 000000000..97ded54ae --- /dev/null +++ b/release-notes/0.13.0.rst @@ -0,0 +1,47 @@ +0.13.0 +====== + +New Features +------------ + +- Added a new method, + ```details()`` `__ that returns + information about a session, including: maximum session time, active + time remaining, the current state, and whether or not the session is + accepting jobs. + + Also added ```status()`` `__, + which returns the current status of the session. + +- At initialization, if not passed in directly, the default + ``instance`` selected by the provider will be logged at the “INFO” + level. When running a job, if the backend selected is not in the + default instance but in a different instance the user also has access + to, that instance will also be logged. + +Upgrade Notes +------------- + +- ```qiskit_ibm_runtime.Session.close()`` `__ + has been updated to mark a ``Session`` as no longer accepting new + jobs. The session won’t accept more jobs but it will continue to run + any queued jobs until they are done or the max time expires. This + will also happen automatically when the session context manager is + exited. When a session that is not accepting jobs has run out of jobs + to run, it’s immediately closed, freeing up the backend to run more + jobs rather than wait for the interactive timeout. + + The old close method behavior has been moved to a new method, + ```qiskit_ibm_runtime.Session.cancel()`` `__, + where all queued jobs within a session are cancelled and terminated. + +Bug Fixes +--------- + +- Fixed a bug where ``shots`` passed in as a numpy type were not being + serialized correctly. + +- Fixed a bug in + ```target_history()`` `__ + where the datetime parameter was not being used to retrieve backend + properties from the specified date. diff --git a/release-notes/0.14.0.rst b/release-notes/0.14.0.rst new file mode 100644 index 000000000..93d247b88 --- /dev/null +++ b/release-notes/0.14.0.rst @@ -0,0 +1,22 @@ +0.14.0 +====== + +New Features +------------ + +- There is a new class, ``qiskit_ibm_runtime.Batch`` that currently + works the same way as + ```qiskit_ibm_runtime.Session`` `__ but + will later be updated to better support submitting multiple jobs at + once. + +- Arbitrary keys and values are no longer allowed in ``Options``. + +Deprecation Notes +----------------- + +- Custom programs are being deprecated as of qiskit-ibm-runtime 0.14.0 + and will be removed on November 27, 2023. Users can instead convert + their custom programs to use Qiskit Runtime primitives with Quantum + Serverless. Refer to the migration guide for instructions: + https://qiskit-extensions.github.io/quantum-serverless/migration/migration_from_qiskit_runtime_programs.html diff --git a/release-notes/0.15.0.rst b/release-notes/0.15.0.rst new file mode 100644 index 000000000..1c134f649 --- /dev/null +++ b/release-notes/0.15.0.rst @@ -0,0 +1,83 @@ +0.15.0 +====== + +New Features +------------ + +- A new module + ```qiskit_ibm_runtime.fake_provider`` `__, + has been added to provide access to a series of fake backends derived + from snapshots of IBM Quantum devices. This functionality was + originally provided by the ``qiskit.providers.fake_provider`` module, + but will soon be deprecated in favor of + ```qiskit_ibm_runtime.fake_provider`` `__. + + The snapshots provided by the fake backends are useful for local + testing of the transpiler and performing local noisy simulations of + the system before running on real devices. Here is an example of + using a fake backend for transpilation and simulation: + + .. code:: python + + from qiskit import QuantumCircuit + from qiskit import transpile + from qiskit_ibm_runtime.fake_provider import FakeManilaV2 + + # Get a fake backend from the fake provider + backend = FakeManilaV2() + + # Create a simple circuit + circuit = QuantumCircuit(3) + circuit.h(0) + circuit.cx(0,1) + circuit.cx(0,2) + circuit.measure_all() + + # Transpile the ideal circuit to a circuit that can be directly executed by the backend + transpiled_circuit = transpile(circuit, backend) + + # Run the transpiled circuit using the simulated fake backend + job = backend.run(transpiled_circuit) + counts = job.result().get_counts() + +- Added support for ``backend.run()``. The functionality is similar to + that in ``qiskit-ibm-provider``. + +- An error will be raised during initialization if ``q-ctrl`` is passed + in as the ``channel_strategy`` and the account instance does not have + ``q-ctrl`` enabled. + +- Removed storing result in ``RuntimeJob._results``. Instead retrieve + results every time the ``results()`` method is called. + +Deprecation Notes +----------------- + +- Usage of the ``~/.qiskit/qiskitrc.json`` file for account information + has been deprecated. Use ``~/.qiskit/qiskit-ibm.json`` instead. + +Bug Fixes +--------- + +- Fixed an issue where canceled and failed jobs would return an invalid + result that resulted in a type error, preventing the actual error + from being returned to the user. + +- A warning will be raised at initialization if the DE environment is + being used since not all features are supported there. + +- The ``backend`` parameter in + ```from_id()`` `__ is being + deprecated because sessions do not support multiple backends. + Additionally, the ``service`` parameter is no longer optional. + +- The ``circuit_indices`` and ``observable_indices`` run inputs for + ```Estimator`` `__ and + ```Sampler`` `__ have been completely + removed. + +Other Notes +----------- + +- Added migration code for running ``backend.run`` in + qiskit_ibm_runtime instead of in qiskit_ibm_provider. diff --git a/release-notes/0.15.1.rst b/release-notes/0.15.1.rst new file mode 100644 index 000000000..0c206e3a5 --- /dev/null +++ b/release-notes/0.15.1.rst @@ -0,0 +1,9 @@ +0.15.1 +====== + +Bug Fixes +--------- + +- Reverting 0.15.0 changes to + ```from_id()`` `__ because it was + a breaking change without proper deprecation. diff --git a/release-notes/0.16.0.rst b/release-notes/0.16.0.rst new file mode 100644 index 000000000..d5f0ae097 --- /dev/null +++ b/release-notes/0.16.0.rst @@ -0,0 +1,25 @@ +0.16.0 +====== + +Prelude +------- + +Sessions are now thread-safe and allow for multiple concurrent +interactive experiments. + +New Features +------------ + +- Sessions are now thread-safe. + +Upgrade Notes +------------- + +- Methods related to using custom programs are removed. + +Bug Fixes +--------- + +- If a cloud instance that is ``q-ctrl`` enabled is used while + ``q-ctrl`` is not passed in as the ``channel_strategy``, an error + will be raised. diff --git a/release-notes/0.17.0.rst b/release-notes/0.17.0.rst new file mode 100644 index 000000000..e888f5c29 --- /dev/null +++ b/release-notes/0.17.0.rst @@ -0,0 +1,35 @@ +0.17.0 +====== + +New Features +------------ + +- Added a new method + ```properties()`` `__ which + returns the backend properties of the job at the time the job was + run. + +- ```details()`` `__ has a new + field, activated_at, which is the timestamp of when the session was + changed to active. + +Bug Fixes +--------- + +- When a single backend is retrieved with the ``instance`` parameter, + + .. code:: python + + service.backend('ibm_torino', instance='ibm-q/open/main') + # raises error if torino is not in ibm-q/open/main but in a different instance + # the user has access to + service = QiskitRuntimeService(channel="ibm_quantum", instance="ibm-q/open/main") + service.backend('ibm_torino') # raises the same error + + if the backend is not in the instance but in a different one the user + has access to, an error will be raised. The same error will now be + raised if an instance is passed in at initialization and then a + backend not in that instance is retrieved. + +- Fixed an issue where retrieving the coupling_map of some backends + would result in a NameError. diff --git a/release-notes/0.18.0.rst b/release-notes/0.18.0.rst new file mode 100644 index 000000000..6bb613f01 --- /dev/null +++ b/release-notes/0.18.0.rst @@ -0,0 +1,30 @@ +0.18.0 +====== + +New Features +------------ + +- Added a new parameter, dynamic_circuits to + ```backends()`` `__ + to allow filtering of backends that support dynamic circuits. + +- Added ``max_time`` parameter to ``IBMBackend.open_session()``. + +- Added a method ``RuntimeJob.queue_info()`` to get the queue + information from the backend. This feature was transferred from + ``qiskit_ibm_provider``. + +Deprecation Notes +----------------- + +- ```runtime()`` `__ + has been deprecated. + +Bug Fixes +--------- + +- Many methods in ```RuntimeJob`` `__ + require retrieving the job data from the API with ``job_get()``. This + API call will now exclude the ``params`` field by default because + they are only necessary in + ```qiskit_ibm_runtime.RuntimeJob.inputs()`` `__. diff --git a/release-notes/0.19.0.rst b/release-notes/0.19.0.rst new file mode 100644 index 000000000..08b61ca91 --- /dev/null +++ b/release-notes/0.19.0.rst @@ -0,0 +1,11 @@ +0.19.0 +====== + +Upgrade Notes +------------- + +- qiskit-ibm-provider is pending deprecation, and therefore will no + longer be a dependency for qiskit-ibm-runtime. + +- qiskit-ibm-runtime is now compatible with Qiskit versions >= 0.45, + including 1.0.0. diff --git a/release-notes/0.19.1.rst b/release-notes/0.19.1.rst new file mode 100644 index 000000000..be116f22e --- /dev/null +++ b/release-notes/0.19.1.rst @@ -0,0 +1,21 @@ +0.19.1 +====== + +Upgrade Notes +------------- + +- Extend ``DynamicCircuitInstructions.from_backend()`` to extract and + patch durations from both ``BackendV1`` and ``BackendV2`` objects. + Also add ``DynamicCircuitInstructions.from_target()`` to use a + ``Target`` object instead. + +Bug Fixes +--------- + +- Fix the patching of ``DynamicCircuitInstructions`` for instructions + with durations that are not in units of ``dt``. + +- Fixed an issue with the ``qpy.dump()`` function, when the + ``use_symengine`` flag was set to a truthy object that evaluated to + ``True`` but was not actually the boolean ``True`` the generated QPY + payload would be corrupt. diff --git a/release-notes/0.2.0.rst b/release-notes/0.2.0.rst new file mode 100644 index 000000000..0716d8d06 --- /dev/null +++ b/release-notes/0.2.0.rst @@ -0,0 +1,20 @@ +0.2.0 +===== + +New Features +------------ + +- ``qiskit_ibm_runtime.IBMEstimator`` and + ``qiskit_ibm_runtime.IBMSampler`` classes now allow you to easily + interact with the ``estimator`` and ``sampler`` primitive programs. + Refer to the examples in the respective class doc strings to learn + more about how to use them. + +Bug Fixes +--------- + +- Fixed a bug where + ```qiskit_ibm_runtime.RuntimeJob.wait_for_final_state()`` `__ + would result in a NoneType error if the job already completed and + ```qiskit_ibm_runtime.RuntimeJob.status()`` `__ + was called beforehand. diff --git a/release-notes/0.20.0.rst b/release-notes/0.20.0.rst new file mode 100644 index 000000000..ad0eb5563 --- /dev/null +++ b/release-notes/0.20.0.rst @@ -0,0 +1,62 @@ +0.20.0 +====== + +New Features +------------ + +- Add ``dd_barrier`` optional input to + ```PadDynamicalDecoupling`` `__ + constructor to identify portions of the circuit to apply dynamical + decoupling (dd) on selectively. If this string is contained in the + label of a barrier in the circuit, dd is applied on the delays ending + with it (on the same qubits); otherwise, it is not applied. + +- Python 3.12 is now supported. + +- Sessions will now be started with a new ``/sessions`` endpoint that + allows for different execution modes. Batch mode is now supported + through ``Batch``, and ```Session`` `__ + will work the same as way as before. Please see + `run/sessions `__ for more information. + + Note that ``Session`` and ``Batch`` created from + ``qiskit-ibm-runtime`` prior to this release will no longer be + supported after March 31, 2024. Please update your + ``qiskit-ibm-runtime`` version as soon as possible before this date. + + Also note that using simulators with sessions is no longer supported. + Users can still start sessions with simulators without any issues but + a session will not actually be created. There will be no session ID. + +- Sessions started with + ```qiskit_ibm_runtime.IBMBackend.open_session()`` `__ + will use the new ``/sessions`` endpoint. + + The sessions functionality will not change but note that + ``backend.run()`` sessions prior to this release will no longer be + supported after March 31, 2024. Please update your + ``qiskit-ibm-runtime`` version as soon as possible before this date. + +Deprecation Notes +----------------- + +- Circuits that do not match the target hardware definition will no + longer be supported after March 1, 2024. See the transpilation + documentation (`transpile `__) for instructions to + transform circuits and the primitive examples + (`run/primitives-examples `__) to see this + coupled with operator transformations. + +Bug Fixes +--------- + +- Fix assignment of instruction durations when scheduling circuits with + control flow. Prior to this fix, the indices for instructions on + inner blocks were not mapped to the physical indices in the outer + dag. + +Other Notes +----------- + +- The ``InstructionDurations`` durations input is now also required for + the constructor of ``PadDelay``. diff --git a/release-notes/0.21.0.rst b/release-notes/0.21.0.rst new file mode 100644 index 000000000..f859dc996 --- /dev/null +++ b/release-notes/0.21.0.rst @@ -0,0 +1,37 @@ +0.21.0 +====== + +Upgrade Notes +------------- + +- Circuits that do not match the target hardware definition are no + longer supported by Qiskit Runtime primitives, unless + ``channel_strategy="q-ctrl"`` is used. See the transpilation + documentation (`transpile `__) for instructions to + transform circuits and the primitive examples + (`run/primitives-examples `__) to see this + coupled with operator transformations. + +Deprecation Notes +----------------- + +- In a future release, ``backend`` will be a required parameter for + ``qiskit_ibm_runtime.Sampler``, and ``qiskit_ibm_runtime.Estimator`` + if ``session`` is not specified, even when using the ``ibm_cloud`` + channel. + + It will also be a required parameter for + ``qiskit_ibm_runtime.Session`` and ``qiskit_ibm_runtime.Batch``. + +Bug Fixes +--------- + +- Fixed an issue with the ``IBMBackend.target`` where it would + incorrectly exclude supported control flow operations (``IfElseOp``, + ``WhileLoop``, etc.) if a given backend supported them. + +- Fixed a bug where retrieving a fake backend through + ``FakeProviderForBackendV2.backend()`` would result in a type error. + +- Fixes the check for ISA circuits to allow pulse gates and circuits + that don’t have layout. diff --git a/release-notes/0.21.1.rst b/release-notes/0.21.1.rst new file mode 100644 index 000000000..2709e35e1 --- /dev/null +++ b/release-notes/0.21.1.rst @@ -0,0 +1,8 @@ +0.21.1 +====== + +Bug Fixes +--------- + +- Fixed a bug where ``SamplerV1`` and ``EstimatorV1`` could not be + imported because of an issue with how the aliases were defined. diff --git a/release-notes/0.3.0.rst b/release-notes/0.3.0.rst new file mode 100644 index 000000000..fdcc5896a --- /dev/null +++ b/release-notes/0.3.0.rst @@ -0,0 +1,31 @@ +0.3.0 +===== + +Upgrade Notes +------------- + +- A new parameter ``channel`` has now been added to + ``qiskit_ibm_runtime.IBMRuntimeService`` class and also to methods + like ``save_account()``, ``saved_accounts()`` and + ``delete_account()``. It can be set to ``ibm_quantum`` or + ``ibm_cloud`` to authenticate to either of the two different channels + through which Qiskit Runtime service is currently offered. + ``channel`` replaces the ``auth`` parameter which has now been + deprecated. + +Deprecation Notes +----------------- + +- The ``auth`` parameter to ``qiskit_ibm_runtime.IBMRuntimeService`` + class and also to methods like ``save_account()``, + ``saved_accounts()`` and ``delete_account()`` has now been deprecated + and will be removed in a future release. Please use the new + ``channel`` parameter instead. + +Bug Fixes +--------- + +- Fixed + `#291 `__ + where passing a single ``QuantumCircuit`` to sampler or estimator + primitives was throwing an error. diff --git a/releasenotes/notes/0.4/deprecate-classes-ef077e50db9718bc.yaml b/release-notes/0.4.0.rst similarity index 56% rename from releasenotes/notes/0.4/deprecate-classes-ef077e50db9718bc.yaml rename to release-notes/0.4.0.rst index 59826d1d4..72bcf9883 100644 --- a/releasenotes/notes/0.4/deprecate-classes-ef077e50db9718bc.yaml +++ b/release-notes/0.4.0.rst @@ -1,30 +1,38 @@ ---- -upgrade: - - | - :class:`~qiskit_ibm_runtime.IBMRuntimeService` has been renamed to - :class:`~qiskit_ibm_runtime.QiskitRuntimeSerice`. - :class:`~qiskit_ibm_runtime.IBMRuntimeService` class is now deprecated - and will be removed in a future release. +0.4.0 +===== - Example: +Upgrade Notes +------------- - Before:: +- ``IBMRuntimeService`` has been renamed to ``QiskitRuntimeSerice``. + ``IBMRuntimeService`` class is now deprecated and will be removed in + a future release. + + Example: + + Before: + + .. code:: python from qiskit_ibm_runtime import IBMRuntimeService service = IBMRuntimeService(channel="ibm_cloud", token="...", instance="...") - After:: + After: + + .. code:: python from qiskit_ibm_runtime import QiskitRuntimeService service = QiskitRuntimeService(channel="ibm_cloud", token="...", instance="...") - - | - :class:`~qiskit_ibm_runtime.IBMEstimator` class is now deprecated and will - be removed in a future release. Use - :class:`~qiskit_ibm_runtime.Estimator` class going forward. - Example: +- ``IBMEstimator`` class is now deprecated and will be removed in a + future release. Use ```Estimator`` `__ + class going forward. + + Example: + + Before: - Before:: + .. code:: python from qiskit_ibm_runtime import IBMRuntimeService, IBMEstimator service = IBMRuntimeService(channel="ibm_cloud", token="...", instance="...") @@ -34,7 +42,9 @@ upgrade: with estimator_factory(circuits=[qc], observables="...", parameters="...") as estimator: result = estimator(circuit_indices=[0], ...) - After:: + After: + + .. code:: python from qiskit_ibm_runtime import QiskitRuntimeService, Estimator service = QiskitRuntimeService(channel="ibm_cloud", token="...", instance="...") @@ -47,14 +57,16 @@ upgrade: options={ "backend": "ibmq_qasm_simulator" }, # or IBMBackend<"ibmq_qasm_simulator"> ) as estimator: result = estimator(circuit_indices=[0], ...) - - | - :class:`~qiskit_ibm_runtime.IBMSampler` class is now deprecated and will - be removed in a future release. Use - :class:`~qiskit_ibm_runtime.Sampler` class going forward. - Example: +- ``IBMSampler`` class is now deprecated and will be removed in a + future release. Use ```Sampler`` `__ + class going forward. + + Example: + + Before: - Before:: + .. code:: python from qiskit_ibm_runtime import IBMRuntimeService, IBMSampler service = IBMRuntimeService(channel="ibm_cloud", token="...", instance="...") @@ -64,7 +76,9 @@ upgrade: with sampler_factory(circuits=[qc], parameters="...") as sampler: result = sampler(circuit_indices=[0], ...) - After:: + After: + + .. code:: python from qiskit_ibm_runtime import QiskitRuntimeService, Sampler service = QiskitRuntimeService(channel="ibm_cloud", token="...", instance="...") @@ -76,10 +90,13 @@ upgrade: options={ "backend": "ibmq_qasm_simulator" }, # or IBMBackend<"ibmq_qasm_simulator"> ) as sampler: result = sampler(circuit_indices=[0], ...) -deprecations: - - | - :class:`~qiskit_ibm_runtime.IBMRuntimeService`, :class:`~qiskit_ibm_runtime.IBMEstimator` - and :class:`~qiskit_ibm_runtime.IBMSampler` classes have been deprecated and will be removed - in a future release. Use :class:`~qiskit_ibm_runtime.QiskitRuntimeService`, - :class:`~qiskit_ibm_runtime.Estimator` and :class:`~qiskit_ibm_runtime.Sampler` classes - instead. See upgrade notes section for a detailed explanation with examples. \ No newline at end of file + +Deprecation Notes +----------------- + +- ``IBMRuntimeService``, ``IBMEstimator`` and ``IBMSampler`` classes + have been deprecated and will be removed in a future release. Use + ```QiskitRuntimeService`` `__, + ```Estimator`` `__ and + ```Sampler`` `__ classes instead. See + upgrade notes section for a detailed explanation with examples. diff --git a/release-notes/0.5.0.rst b/release-notes/0.5.0.rst new file mode 100644 index 000000000..f3d8202ea --- /dev/null +++ b/release-notes/0.5.0.rst @@ -0,0 +1,114 @@ +0.5.0 +===== + +Prelude +------- + +This release leverages the API and Queue enhancements to become more +runtime session aware. As a result when using the primitives (sampler +and estimator), runtime jobs in the same session will skip to the front +of the queue, thereby speeding up the runtime session, once it has +started. + +New Features +------------ + +- The ``service`` object which is an instance of + ```QiskitRuntimeService`` `__ + class can now be accessed from + ```IBMBackend`` `__ class using the + ``service`` property. + + Ex: + + .. code:: python + + backend = service.get_backend("ibmq_qasm_simulator") + backend.service # QiskitRuntimeService instance used to instantiate the backend + +Upgrade Notes +------------- + +- ```jobs()`` `__ has two + new parameters, ``created_after`` and ``created_before``. These can + be used to filter jobs by creation date in local time. + +- The parameters ``circuit_indices`` and ``observable_indices`` when + calling ``estimator`` are now deprecated and will be removed in a + future release. You can now pass either indices or objects using the + ``circuits`` and ``observables`` parameters. + + Ex: + + .. code:: python + + with Estimator( + circuits=[qc1, qc2], + observables=[H1, H2, H3], + service=service, + options=options + ) as estimator: + # pass circuits and observables as indices + result = estimator(circuits=[0, 1], observables=[0, 1], parameter_values=[theta1, theta2]) + + # pass circuits and observables as objects + result = estimator(circuits=[qc1, qc2], observables=[H1, H3], parameter_values=[theta1, theta3]) + +- The parameters ``circuit_indices`` and ``observable_indices`` when + calling ``estimator`` are now deprecated and will be removed in a + future release. You can now pass either indices or objects using the + ``circuits`` and ``observables`` parameters. + + Ex: + + .. code:: python + + with Sampler( + circuits=[qc1, qc2], + service=service, + options=options + ) as sampler: + # pass circuits as indices + result = sampler(circuits=[0, 1], parameter_values=[theta1, theta2]) + + # pass circuit as objects + result = sampler(circuits=[qc1, qc2], parameter_values=[theta2, theta3]) + +- The ``session_id``, which is the Job ID of the first job in a runtime + session can now be used as a filter in + ```jobs()`` `__ with + the parameter ``session_id``. + +- ```run()`` `__ now + supports a new parameter, ``job_tags``. These tags can be used when + filtering jobs with + ```jobs()`` `__. + +- ```run()`` `__ now + supports a new parameter, ``max_execution_time``, which can be used + to override the default program maximum execution time. It should be + less than or equal to the program maximum execution time. + +- ```jobs()`` `__ has a + new parameter, ``descending``. This parameter defaults to ``True``, + where jobs will be returned in descending order based on creation + date. + +- ``RuntimeJobTimeoutError`` is now raised when the ``timeout`` set in + ```result()`` `__ or + ```wait_for_final_state()`` `__ + expires. + +- When initializing + ```QiskitRuntimeService`` `__ + and an invalid token is used, ``IBMNotAuthorizedError`` will be + raised instead of ``RequestsApiError``. + +- ``IBMSampler`` class which was deprecated earlier is now removed. Use + ```Sampler`` `__ class going forward. + +- ```qubit_properties()`` `__ + will now return a sub class of ``QubitProperties`` called + ``IBMQubitProperties`` and will expose anharmonicity in addition to + the t1, t2 and frequency already exposed by the ``QubitProperties`` + class. diff --git a/release-notes/0.6.0.rst b/release-notes/0.6.0.rst new file mode 100644 index 000000000..3f3c0bce3 --- /dev/null +++ b/release-notes/0.6.0.rst @@ -0,0 +1,29 @@ +0.6.0 +===== + +Upgrade Notes +------------- + +- When migrating from ``qiskit-ibmq-provider`` your ``ibm_quantum`` + channel credentials will get automatically copied over from the + qiskitrc file and a qiskit-ibm.json file will get created if one + doesn’t exist. You have to just initialize + ```QiskitRuntimeService`` `__ + class without passing any parameters to use this copied over default + ``ibm_quantum`` account. + + Ex: + + .. code:: python + + from qiskit_ibm_runtime import QiskitRuntimeService + service = QiskitRuntimeService() + +- ``IBMEstimator`` class which was deprecated earlier is now removed. + Use ```Estimator`` `__ class going + forward. + +- ``IBMRuntimeService`` class which was deprecated earlier is now + removed. Use + ```QiskitRuntimeService`` `__ + class going forward. diff --git a/release-notes/0.7.0.rst b/release-notes/0.7.0.rst new file mode 100644 index 000000000..c55cc6265 --- /dev/null +++ b/release-notes/0.7.0.rst @@ -0,0 +1,49 @@ +0.7.0 +===== + +New Features +------------ + +- ``qiskit_ibm_runtime.Options`` class now accepts arbitrary keyword + arguments. This allows users to specify new options to the primitive + programs without upgrading ``qiskit_ibm_runtime``. These arbitrary + keyword arguments, however, are not validated. + +- The + ```qiskit_ibm_runtime.options.EnvironmentOptions`` `__ + class now accepts a ``callback`` parameter. This parameter can be + used to stream the interim and final results of the primitives. + +- The ``qiskit_ibm_runtime.Options`` class now accepts + ``max_execution_time`` as a first level option and ``job_tags`` as an + option under ``environment``. + ```qiskit_ibm_runtime.RuntimeOptions`` `__ + has also been updated to include these two parameters. + +Upgrade Notes +------------- + +- This version of qiskit-ibm-runtime requires qiskit-terra version 0.22 + or higher. The ``requirements.txt`` file has been updated + accordingly. + +Deprecation Notes +----------------- + +- Qiskit Runtime programs ``torch-train``, ``torch-infer``, + ``sample-expval``, ``sample-program``, and + ``quantum_kernal_alignment`` have been deprecated due to low usage. + +- Passing ``instance`` parameter to the + ```qiskit_ibm_runtime.QiskitRuntimeService.run()`` `__ + has been deprecated. Instead, you can pass the ``instance`` parameter + inside the ``options`` parameter. + +- Passing ``job_tags`` and ``max_execution_time`` as parameters to + ```qiskit_ibm_runtime.QiskitRuntimeService`` `__ + has been deprecated. Please pass them inside ``options``. + +Bug Fixes +--------- + +- Fixes the missing section on retrieving jobs in the how-to guide. diff --git a/release-notes/0.7.0rc1.rst b/release-notes/0.7.0rc1.rst new file mode 100644 index 000000000..8ee779dd4 --- /dev/null +++ b/release-notes/0.7.0rc1.rst @@ -0,0 +1,154 @@ +0.7.0rc1 +======== + +Prelude +------- + +There are significant changes to how primitives are invoked within a +session, and the options available to the primitives. Please review the +rest of the release notes and the tutorials for full information. + +New Features +------------ + +- You can now invoke the same or different primitive programs multiple + times within a session. For example: + + .. code:: python + + from qiskit_ibm_runtime import QiskitRuntimeService, Session, Sampler, Estimator, Options + from qiskit.test.reference_circuits import ReferenceCircuits + from qiskit.circuit.library import RealAmplitudes + from qiskit.quantum_info import SparsePauliOp + + # Initialize account. + service = QiskitRuntimeService() + + # Set options, which can be overwritten at job level. + options = Options(optimization_level=1) + + # Prepare inputs. + bell = ReferenceCircuits.bell() + psi = RealAmplitudes(num_qubits=2, reps=2) + H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)]) + theta = [0, 1, 1, 2, 3, 5] + + with Session(service=service, backend="ibmq_qasm_simulator") as session: + # Submit a request to the Sampler primitive within the session. + sampler = Sampler(session=session, options=options) + job = sampler.run(circuits=bell) + print(f"Sampler results: {job.result()}") + + # Submit a request to the Estimator primitive within the session. + estimator = Estimator(session=session, options=options) + job = estimator.run( + circuits=[psi], observables=[H1], parameter_values=[theta] + ) + print(f"Estimator results: {job.result()}") + +- A new ``qiskit_ibm_runtime.Options`` class is introduced. This class + allows you to auto-complete options related to primitive programs. + For example: + + .. code:: python + + from qiskit_ibm_runtime import Session, Sampler, Options + from qiskit.test.reference_circuits import ReferenceCircuits + + options = Options() + options.optimization_level = 3 # This can be done using auto-complete. + + with Session(backend="ibmq_qasm_simulator") as session: + # Pass the options to Sampler. + sampler = Sampler(session=session, options=options) + + # Or at job level. + job = sampler.run(circuits=ReferenceCircuits.bell(), shots=4000) + +- ```qiskit_ibm_runtime.RuntimeJob`` `__ + has a new method + ```metrics()`` `__. This + method returns the metrics of a job, which includes timestamp + information. + +- The + ```qiskit_ibm_runtime.QiskitRuntimeService`` `__ + ``channel`` can now be stored as an environment variable, + ``QISKIT_IBM_CHANNEL``. This way, when using Runtime Primitives, the + service does not have to be instantiated manually and can instead be + created directly from environment variables. + +Upgrade Notes +------------- + +- Raise ``RuntimeJobMaxTimeoutError`` when a job runs for too long so + that it can be handled appropriately by programs. + +- The experimental parameters ``transpilation_settings``, + ``resilience_settings``, and ``max_time`` to the + :class:\`qiskit_ibm_runtime.Sampler and + ```qiskit_ibm_runtime.Estimator`` `__ + constructors have been removed. You can instead use the + ``qiskit_ibm_runtime.Options`` class to specify the settings, and + ``max_time`` can be specified when starting a new session. For + example: + + .. code:: python + + from qiskit_ibm_runtime import Session, Sampler, Options + + options = Options() + # This can be done using auto-complete. + option.optimization_level = 3 + options.resilience_level = 1 + + with Session(max_time="2h") as session: + # Pass the options to Sampler. + sampler = Sampler(session=session, options=options) + +- Since some accounts have many runtime programs, caching a list of all + programs on the first call of ``programs()`` has been removed. + Instead, programs will only be cached up to the ``limit`` given, + which has a default value of 20. + +Deprecation Notes +----------------- + +- Invoking + ```qiskit_ibm_runtime.Sampler`` `__ and + ```qiskit_ibm_runtime.Estimator`` `__ + as context managers has been deprecated. You can instead use the + qiskit_ibm_runtime.Session class to create a new session and invoke + one or more primitives within the session. + + As a result, passing input parameters, such as ``circuits``, + ``observables``, and ``parameter_values``, as well as ``service`` to + the constructors of ``Sampler`` and ``Estimator`` has also been + deprecated. The inputs can now be passed to the ``run()`` method of + the primitive classes, and ``service`` can be passed to + ```qiskit_ibm_runtime.Session`` `__ when + starting a new session. + +- Passing ``skip_transpilation`` to the + :class:\`qiskit_ibm_runtime.Sampler and + ```qiskit_ibm_runtime.Estimator`` `__ + constructors has been deprecated. You can instead use the + ``qiskit_ibm_runtime.Options`` class to specify this option. For + example: + + .. code:: python + + from qiskit_ibm_runtime import Options + + options = Options() + # This can be done using auto-complete. + options.transpilation.skip_transpilation = True + +Bug Fixes +--------- + +- Fixes issue + `#428 `__ by + raising the minimum required ``qiskit-terra`` version to ``0.21.0``, + since latest version of ``qiskit-ibm-runtime`` is not compatible with + ``0.20.0`` or earlier of ``qiskit-terra``. diff --git a/release-notes/0.7.0rc2.rst b/release-notes/0.7.0rc2.rst new file mode 100644 index 000000000..9d229056a --- /dev/null +++ b/release-notes/0.7.0rc2.rst @@ -0,0 +1,33 @@ +0.7.0rc2 +======== + +Upgrade Notes +------------- + +- Added a validation check to + ```run()`` `__. It raises an error if + there is no classical bit. + +- ```Sampler`` `__ is updated to return + ``SamplerResult`` with ``SamplerResult.quasi_dists`` as a list of + ``QuasiDistrbution``. It used to set a list of ``dict`` as + ``SamplerResult.quasi_dists``, but it did not follow the design of + ``SamplerResult``. + +- The ```RuntimeJob`` `__ class is now a + subclass of ``qiskit.providers.Job``. + +Deprecation Notes +----------------- + +- ``job_id`` and ``backend`` attributes of + ```qiskit_ibm_runtime.RuntimeJob`` `__ + have been deprecated. Please use + ```qiskit_ibm_runtime.RuntimeJob.job_id()`` `__ + and + ```qiskit_ibm_runtime.RuntimeJob.backend()`` `__ + methods instead. + +- The ``backend_name`` attribute in + ```qiskit_ibm_runtime.RuntimeOptions`` `__ + is deprecated and replaced by ``backend``. diff --git a/release-notes/0.8.0.rst b/release-notes/0.8.0.rst new file mode 100644 index 000000000..5cfc6520b --- /dev/null +++ b/release-notes/0.8.0.rst @@ -0,0 +1,42 @@ +0.8.0 +===== + +New Features +------------ + +- Python 3.10 is now supported. + +- Advanced resilience options can now be set under + ``options.resilience``. See + ```qiskit_ibm_runtime.options.ResilienceOptions`` `__ + for all available options. + +- You can now specify a pair of result decoders for the + ``result_decoder`` parameter of + ```qiskit_ibm_runtime.QiskitRuntimeService.run()`` `__ + method. If a pair is specified, the first one is used to decode + interim results and the second the final results. + +Upgrade Notes +------------- + +- The default ``resilience_level`` option for has been changed from 0 + to 1. In addition, the default ``optimization_level`` option has been + changed from 1 to 3. + +Deprecation Notes +----------------- + +- The transpilation options ``translation_method`` and + ``timing_constraints`` have been deprecated. + +Bug Fixes +--------- + +- If a + ```qiskit_ibm_runtime.IBMBackend`` `__ + instance is passed to the + ```qiskit_ibm_runtime.Session`` `__ + constructor, the service used to initialize the ``IBMBackend`` + instance is used for the session instead of the default account + service. diff --git a/release-notes/0.9.0.rst b/release-notes/0.9.0.rst new file mode 100644 index 000000000..065944efb --- /dev/null +++ b/release-notes/0.9.0.rst @@ -0,0 +1,27 @@ +0.9.0 +===== + +Upgrade Notes +------------- + +- Changed the default values for ``optimization_level`` and for + ``resilience_level`` in ``qiskit_ibm_runtime.Options``. If their + values are defined by the user, they are not modified. If not set, if + the backend is a noiseless simulator then ``optimization_level`` is + set to 1 and ``resilience_level`` is set to 0; Otherwise, they are be + set to 3 and 1 respectively. + +- ```session_id()`` `__ and + ```tags()`` `__ were added for an + easy way to return the session_id and job_tags of a job. + +Bug Fixes +--------- + +- Fixed a bug where jobs that did not run before a session closes are + not actually run as a part of that session. Jobs should run as a part + of a session even if that session is closed by the exit of the + context manager. + +- Fixes the issue wherein submitting a large job fails due to write + operation timeout. diff --git a/release-notes/0.9.1.rst b/release-notes/0.9.1.rst new file mode 100644 index 000000000..6458bdd36 --- /dev/null +++ b/release-notes/0.9.1.rst @@ -0,0 +1,44 @@ +0.9.1 +===== + +Upgrade Notes +------------- + +- ```qiskit_ibm_runtime.QiskitRuntimeService.jobs()`` `__ + now has a ``backend_name`` parameter that can be used to only return + jobs run with the specified backend. + +- Allow the user to store account details in a file specified by the + user in the parameter. ``filename``. The default remains + ~/.qiskit/qiskit-ibm.json. Example of usage: Ex: + + .. code:: python + + QiskitRuntimeService.save_account(channel="ibm_quantum", + filename="~/my_account_file.json", + name = "my_account", + token="my_token") + service = QiskitRuntimeService(channel="ibm_quantum", + filename="~/my_account_file.json", + name = "my_account",) + +Deprecation Notes +----------------- + +- ``backend`` is no longer a supported option when using + ```qiskit_ibm_runtime.Session.run()`` `__. + Sessions do not support multiple cross backends. Additionally, an + exception will be raised if a backend passed in through options does + not match the original session backend in an active session. + +Bug Fixes +--------- + +- ``ECRGate`` and ``CZGate`` mappings have been added to the ``Target`` + constructor to fix a tranpile bug. + +Other Notes +----------- + +- Since error messages from a failing job may be long, we shortened + them so that they begin from the last ``Traceback`` in the message. diff --git a/release-notes/0.9.2.rst b/release-notes/0.9.2.rst new file mode 100644 index 000000000..78b16a151 --- /dev/null +++ b/release-notes/0.9.2.rst @@ -0,0 +1,61 @@ +0.9.2 +===== + +New Features +------------ + +- Added a new argument called ``session_time`` to the program_run + method and + ```qiskit_ibm_runtime.RuntimeOptions`` `__. + Now values entered by the user for session ``max_time`` will be sent + to the server side as ``session_time``. This allows users to specify + different values for session ``max_time`` and ``max_execution_time``. + +- Added the method + ```target_history()`` `__. + This method is similar to + ```target()`` `__. The + difference is that the new method enables the user to pass a datetime + parameter, to retrieve historical data from the backend. + +Upgrade Notes +------------- + +- Accept all options on given on level 1 and assign them to the + appropriate hierarchical option type. For example, if the user + provides ``options = {"shots": 10}`` as input to Sampler/Estimator, + this will be interpreted as + ``options = {"execution: {"shots": 10}}``. + +- If a job is returned without a backend, retrieving the backend + through + ```qiskit_ibm_runtime.RuntimeJob.backend()`` `__ + will re-retrieve data from the server and attempt to update the + backend. Additionally, ``job_id`` and ``backend``, which were + deprecated attributes of + ```qiskit_ibm_runtime.RuntimeJob`` `__ + have now been removed. + +- Added a user warning when the user passes an option that is not + supported in Options. + +Bug Fixes +--------- + +- Fixed a bug where the default values for ``optimization_level`` and + for ``resilience_level`` were not being set correctly. + +- Fixed an issue where if no backend was selected, + ``optimization_level`` and ``resilience_level`` would default to + ``None``, causing the job to fail. + +- If an instance is passed in to + ```qiskit_ibm_runtime.QiskitRuntimeService.get_backend()`` `__ + and then the backend is used in a session, all jobs within the + session will be run from the original instance passed in. + +- Removed additional decomposition of ``BlueprintCircuit``\ s in the + JSON encoder. This was introduced as a bugfix, but has since been + fixed. Still doing the decomposition led to possible problems if the + decomposed circuit was not in the correct basis set of the backend + anymore. diff --git a/release-notes/0.9.3.rst b/release-notes/0.9.3.rst new file mode 100644 index 000000000..3c48c8528 --- /dev/null +++ b/release-notes/0.9.3.rst @@ -0,0 +1,30 @@ +0.9.3 +===== + +Upgrade Notes +------------- + +- Added error messages in case the user defines unsupported values for + ‘optimization_level’ or for ‘resilience_level’. Added validation + checking for options given as input to ``resilience``. Previously, + this validation was done on the server side. By adding them on the + client side, response will be much faster upon failure. The + environment variable ``QISKIT_RUNTIME_SKIP_OPTIONS_VALIDATION`` is + used to control validation. If set, validation will be skipped. + +- Backend configurations are no longer loaded when + ```QiskitRuntimeService`` `__ + is initialized. Instead, the configuration is only loaded and cached + during + ```get_backend()`` `__ + and + ```backends()`` `__. + +Bug Fixes +--------- + +- When creating an Option object and passing an input option to + ``resilience_options``, this option was included in + ``resilience_options``, but the other, default options were removed. + This was fixed, so now inputs are handled correctly, like other + option types. diff --git a/release-notes/0.9.4.rst b/release-notes/0.9.4.rst new file mode 100644 index 000000000..809272e29 --- /dev/null +++ b/release-notes/0.9.4.rst @@ -0,0 +1,45 @@ +0.9.4 +===== + +New Features +------------ + +- Added methods to validate input options to ``transpilation`` and + ``environment`` options. + +Upgrade Notes +------------- + +- When constructing a backend ``qiskit.transpiler.Target``, faulty + qubits and gates from the backend configuration will be filtered out. + +Deprecation Notes +----------------- + +- The deprecated arguments ``circuits``, ``parameters``, ``service``, + and ``skip_transpilation`` have been removed from + ```Sampler`` `__. + + Similarly, the deprecated arguments ``circuits``, ``observables``, + ``parameters``, ``service``, and ``skip_transpilation`` have been + removed from ```Estimator`` `__. + + In + ```QiskitRuntimeService`` `__, + the ``auth`` parameter has been removed. Additionally, the + ``instance``, ``job_tags``, and ``max_execution_time`` paramters have + been removed from + ```qiskit_ibm_runtime.QiskitRuntimeService.run()`` `__. + They can be passed in through + ```RuntimeOptions`` `__ instead. + + Within ```RuntimeOptions`` `__, + ``backend_name`` is no longer supported. Please use ``backend`` + instead. + +Bug Fixes +--------- + +- Fixed a bug where retrieving a job from a backend without + ``noise_model`` or ``seed_simulator`` options would result in a key + error. diff --git a/release-notes/unreleased/.gitkeep b/release-notes/unreleased/.gitkeep new file mode 100644 index 000000000..701fee01e --- /dev/null +++ b/release-notes/unreleased/.gitkeep @@ -0,0 +1,2 @@ +Empty file to make sure Git preserves this folder even +when it's empty. diff --git a/release-notes/unreleased/1409.upgrade.rst b/release-notes/unreleased/1409.upgrade.rst new file mode 100644 index 000000000..ca9d1dcc2 --- /dev/null +++ b/release-notes/unreleased/1409.upgrade.rst @@ -0,0 +1,4 @@ +Modify ``skip_reset_qubits`` optional flag to the constructor for +:class:`.PadDynamicalDecoupling`. If ``False``, dynamical decoupling is applied on +qubits regardless of their state, even on delays that are at the beginning +of a circuit. This option now matches the behavior in Qiskit. diff --git a/releasenotes/config.yaml b/releasenotes/config.yaml deleted file mode 100644 index 68addb37d..000000000 --- a/releasenotes/config.yaml +++ /dev/null @@ -1,3 +0,0 @@ ---- -encoding: utf8 -default_branch: main \ No newline at end of file diff --git a/releasenotes/notes/0.1/account-management-b9908e0b62dc1d81.yaml b/releasenotes/notes/0.1/account-management-b9908e0b62dc1d81.yaml deleted file mode 100644 index 27459c39f..000000000 --- a/releasenotes/notes/0.1/account-management-b9908e0b62dc1d81.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -upgrade: - - | - `qiskit-ibm-runtime` package no longer uses the `$HOME/.qiskit/qiskitrc` file used by - `qiskit-ibmq-provider` to save credentials. Credentials are now stored in a - JSON format in `$HOME/.qiskit/qiskit-ibm.json` file when you use - :meth:`qiskit_ibm_runtime.IBMRuntimeService.save_account` method. - - You can now save multiple credentials and give an optional `name` for each credential. diff --git a/releasenotes/notes/0.1/authentication-79b90822d430688f.yaml b/releasenotes/notes/0.1/authentication-79b90822d430688f.yaml deleted file mode 100644 index 5f1bdbfc5..000000000 --- a/releasenotes/notes/0.1/authentication-79b90822d430688f.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -upgrade: - - | - Qiskit Runtime service is accessible using an IBM Quantum (`legacy`) account - or an IBM Cloud (`cloud`) account. - `qiskit-ibm-runtime` enables you to connect to either of these accounts:: - - # Legacy - from qiskit_ibm_runtime import IBMRuntimeService - service = IBMRuntimeService(auth="legacy", token="abc") - - # Cloud - from qiskit_ibm_runtime import IBMRuntimeService - service = IBMRuntimeService(auth="cloud", token="abc", instance="IBM Cloud CRN or Service instance name") - diff --git a/releasenotes/notes/0.1/backend-v2-15bbe03ff572b6da.yaml b/releasenotes/notes/0.1/backend-v2-15bbe03ff572b6da.yaml deleted file mode 100644 index 63304edeb..000000000 --- a/releasenotes/notes/0.1/backend-v2-15bbe03ff572b6da.yaml +++ /dev/null @@ -1,18 +0,0 @@ ---- -upgrade: - - | - :class:`qiskit_ibm_runtime.IBMBackend` class now implements the - :class:`qiskit.providers.BackendV2` interface and provides flatter access to the configuration - of a backend, for example:: - - # BackendV1: - backend.configuration().n_qubits - - # BackendV2: - backend.num_qubits - - Only breaking change when compared to `BackendV1` is backend.name is now an attribute - instead of a method. - - Refer to the :class:`qiskit_ibm_runtime.IBMBackend` class doc string for a list of all - available attributes. diff --git a/releasenotes/notes/0.1/backend-vs-get-backend-18b2dcf4b8434e00.yaml b/releasenotes/notes/0.1/backend-vs-get-backend-18b2dcf4b8434e00.yaml deleted file mode 100644 index 3d3b3fb75..000000000 --- a/releasenotes/notes/0.1/backend-vs-get-backend-18b2dcf4b8434e00.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -upgrade: - - | - If you used `qiskit.providers.ibmq.AccountProvider.get_backend` method (for example, - ``provider.get_backend("ibmq_qasm_simulator")``) in the `qiskit-ibmq-provider` package, it's - equivalent method in this new package is :meth:`qiskit_ibm_runtime.IBMRuntimeService.backend`:: - - service = IBMRuntimeService() - backend = service.backend("ibmq_qasm_simulator") diff --git a/releasenotes/notes/0.1/convert-runtime-methods-5d5d76f4d20332f1.yaml b/releasenotes/notes/0.1/convert-runtime-methods-5d5d76f4d20332f1.yaml deleted file mode 100644 index 1451cc154..000000000 --- a/releasenotes/notes/0.1/convert-runtime-methods-5d5d76f4d20332f1.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -upgrade: - - | - In order to be consistent with other properties in - :class:`qiskit_ibm_runtime.RuntimeJob` class - the `job_id` and `backend` methods have been converted to properties. diff --git a/releasenotes/notes/0.1/encoder-instructions-f99e128a02a10714.yaml b/releasenotes/notes/0.1/encoder-instructions-f99e128a02a10714.yaml deleted file mode 100644 index 8b57e9285..000000000 --- a/releasenotes/notes/0.1/encoder-instructions-f99e128a02a10714.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - :class:`qiskit_ibm_runtime.utils.json.RuntimeEncoder` and - :class:`qiskit_ibm_runtime.utils.json.RuntimeDecoder` have been updated to handle - instances of the `Instruction` class. diff --git a/releasenotes/notes/0.1/filter-jobs-by-provider-dead04faaf223840.yaml b/releasenotes/notes/0.1/filter-jobs-by-provider-dead04faaf223840.yaml deleted file mode 100644 index 5604b28de..000000000 --- a/releasenotes/notes/0.1/filter-jobs-by-provider-dead04faaf223840.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -features: - - | - You can now pass ``instance`` parameter in the hub/group/project format to - :meth:`qiskit_ibm_runtime.IBMRuntimeService.jobs` to filter jobs. Currently - only supported for legacy authentication. \ No newline at end of file diff --git a/releasenotes/notes/0.1/fix-qpy-v3-serialisation-20ddba46e7c6ba09.yaml b/releasenotes/notes/0.1/fix-qpy-v3-serialisation-20ddba46e7c6ba09.yaml deleted file mode 100644 index b0f88357d..000000000 --- a/releasenotes/notes/0.1/fix-qpy-v3-serialisation-20ddba46e7c6ba09.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -fixes: - - | - Fixed an issue with JSON encoding and decoding when using - ``ParameterExpression``\ s in conjunction with Qiskit Terra 0.19.1 and - above. Previously, the ``Parameter`` instances reconstructed from the JSON - output would have different unique identifiers, causing them to seem unequal - to the input. They will now have the correct backing identities. diff --git a/releasenotes/notes/0.1/interim-results-b5a18a3784063d56.yaml b/releasenotes/notes/0.1/interim-results-b5a18a3784063d56.yaml deleted file mode 100644 index b6c3c9f18..000000000 --- a/releasenotes/notes/0.1/interim-results-b5a18a3784063d56.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -features: - - | - You can now use the :meth:`qiskit_ibm_runtime.RuntimeJob.interim_results` - method to retrieve runtime program interim results. - Note that interim results will only be available for - up to two days. \ No newline at end of file diff --git a/releasenotes/notes/0.1/least-busy-4a7040c00f605635.yaml b/releasenotes/notes/0.1/least-busy-4a7040c00f605635.yaml deleted file mode 100644 index 9639f5f57..000000000 --- a/releasenotes/notes/0.1/least-busy-4a7040c00f605635.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -features: - - | - :meth:`qiskit_ibm_runtime.IBMRuntimeService.least_busy` will now allow you find - the least busy backend. diff --git a/releasenotes/notes/0.1/legacy-optional-hgp-299a0fd8ee029734.yaml b/releasenotes/notes/0.1/legacy-optional-hgp-299a0fd8ee029734.yaml deleted file mode 100644 index 030a6a7fb..000000000 --- a/releasenotes/notes/0.1/legacy-optional-hgp-299a0fd8ee029734.yaml +++ /dev/null @@ -1,14 +0,0 @@ ---- -upgrade: - - | - It is now optional to specify a hub/group/project upfront when connecting to the `legacy` IBM - Quantum account. The hub/group/project is selected in the following order. - - - hub/group/project if passed via ``instance`` parameter when initializing - :class:`qiskit_ibm_runtime.IBMRuntimeService` - - the specific hub/group/project required by the backend specified when - calling :meth:`qiskit_ibm_runtime.IBMRuntimeService.run` - - the default set previously via :meth:`qiskit_ibm_runtime.IBMRuntimeService.save_account` - - a premium hub/group/project in your account - - open access hub/group/project - diff --git a/releasenotes/notes/0.1/numpy-ndarray-encoder-919d6a344e131fee.yaml b/releasenotes/notes/0.1/numpy-ndarray-encoder-919d6a344e131fee.yaml deleted file mode 100644 index ed390208c..000000000 --- a/releasenotes/notes/0.1/numpy-ndarray-encoder-919d6a344e131fee.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -fixes: - - | - Fixed an issue where numpy ndarrays with object types could not be - serialized. :class:`qiskit_ibm_runtime.utils.json.RuntimeEncoder` and - :class:`qiskit_ibm_runtime.utils.json.RuntimeDecoder` have been updated - to handle these ndarrays. - diff --git a/releasenotes/notes/0.1/optional-backend-name-4d120e2645b5831e.yaml b/releasenotes/notes/0.1/optional-backend-name-4d120e2645b5831e.yaml deleted file mode 100644 index 608d7474d..000000000 --- a/releasenotes/notes/0.1/optional-backend-name-4d120e2645b5831e.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -upgrade: - - | - It is now optional to specify `backend_name` in `options` when executing - :meth:`qiskit_ibm_runtime.IBMRuntimeService.run` method when using `cloud` runtime - (IBM Cloud only). The server will automatically pick a backend and return the name. diff --git a/releasenotes/notes/0.1/optional-program-description-f6e3aceca8223af7.yaml b/releasenotes/notes/0.1/optional-program-description-f6e3aceca8223af7.yaml deleted file mode 100644 index 900810157..000000000 --- a/releasenotes/notes/0.1/optional-program-description-f6e3aceca8223af7.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -upgrade: - - | - When uploading a program with :meth:`qiskit_ibm_runtime.IBMRuntimeService.upload_program`, - the program description is now optional. \ No newline at end of file diff --git a/releasenotes/notes/0.1/prelude-96ed7aae53f9932a.yaml b/releasenotes/notes/0.1/prelude-96ed7aae53f9932a.yaml deleted file mode 100644 index 30c049018..000000000 --- a/releasenotes/notes/0.1/prelude-96ed7aae53f9932a.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -prelude: > - `qiskit-ibm-runtime` is a new Python API client for accessing the quantum programs, - systems and simulators at IBM Quantum via the Qiskit Runtime Service. - - - This new package is built upon the work already done in `qiskit.providers.ibmq.runtime` - module in the `qiskit-ibmq-provider` package and replaces it going forward. The `runtime` - module in `qiskit-ibmq-provider` package is now deprecated. - - - `qiskit-ibm-runtime` is not included as part of `Qiskit` meta package and thereby you have to - install it separately using ``pip install qiskit-ibm-runtime``. diff --git a/releasenotes/notes/0.1/print-backend-requirements-a682e98ded7977d7.yaml b/releasenotes/notes/0.1/print-backend-requirements-a682e98ded7977d7.yaml deleted file mode 100644 index 93cbfa760..000000000 --- a/releasenotes/notes/0.1/print-backend-requirements-a682e98ded7977d7.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -upgrade: - - | - When printing programs with :meth:`qiskit_ibm_runtime.IBMRuntimeService.pprint_programs`, - ``backend_requirements`` will now be listed. - diff --git a/releasenotes/notes/0.1/remove-logout-207163e4d4a6adf8.yaml b/releasenotes/notes/0.1/remove-logout-207163e4d4a6adf8.yaml deleted file mode 100644 index 9d83f4f8a..000000000 --- a/releasenotes/notes/0.1/remove-logout-207163e4d4a6adf8.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -upgrade: - - | - `qiskit.providers.ibmq.runtime.IBMRuntimeService.logout` method in `qiskit-ibmq-provider` - which was used to clear authorization cache on the server has been removed. diff --git a/releasenotes/notes/0.1/remove-python-3.6-f7ff43b6d84e4e7c.yaml b/releasenotes/notes/0.1/remove-python-3.6-f7ff43b6d84e4e7c.yaml deleted file mode 100644 index f682b7d37..000000000 --- a/releasenotes/notes/0.1/remove-python-3.6-f7ff43b6d84e4e7c.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -upgrade: - - | - Python 3.6 has reached end of life and will no longer be supported in the new - `qiskit-ibm-runtime` package. diff --git a/releasenotes/notes/0.1/remove-run-circuits-6d43cf46e509d55e.yaml b/releasenotes/notes/0.1/remove-run-circuits-6d43cf46e509d55e.yaml deleted file mode 100644 index 1c807a205..000000000 --- a/releasenotes/notes/0.1/remove-run-circuits-6d43cf46e509d55e.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -upgrade: - - | - `qiskit.providers.ibmq.runtime.IBMRuntimeService.run_circuits` method in `qiskit-ibmq-provider` - has been removed and will be replaced by the ``Sampler`` primitive program. diff --git a/releasenotes/notes/0.1/resolve-crn-b2cc1c35f5306bea.yaml b/releasenotes/notes/0.1/resolve-crn-b2cc1c35f5306bea.yaml deleted file mode 100644 index 094498443..000000000 --- a/releasenotes/notes/0.1/resolve-crn-b2cc1c35f5306bea.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -features: - - | - For convenience, you can now set the ``IBM Cloud service name`` as a value for the account ``instance`` - parameter. If you choose to set the name instead of the ``CRN``, the initialization time of the - :class:`qiskit_ibm_runtime.IBMRuntimeService` class is slightly higher because the required ``CRN`` - value is internally resolved via IBM Cloud APIs. \ No newline at end of file diff --git a/releasenotes/notes/0.1/runtime-options-175692ee0417ff30.yaml b/releasenotes/notes/0.1/runtime-options-175692ee0417ff30.yaml deleted file mode 100644 index 172b1278b..000000000 --- a/releasenotes/notes/0.1/runtime-options-175692ee0417ff30.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -upgrade: - - | - :meth:`qiskit_ibm_runtime.IBMRuntimeService.run` method now accepts runtime - execution options as :class:`qiskit_ibm_runtime.RuntimeOptions` class in addition to - already supported Dict. `backend_name`, `image` and `log_level` are the - currently available options. diff --git a/releasenotes/notes/0.1/stream-results-6ff5f240bbe21fc0.yaml b/releasenotes/notes/0.1/stream-results-6ff5f240bbe21fc0.yaml deleted file mode 100644 index bf72e5225..000000000 --- a/releasenotes/notes/0.1/stream-results-6ff5f240bbe21fc0.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -upgrade: - - | - Final result is also streamed now after interim results when you specify a ``callback`` - to :meth:`qiskit_ibm_runtime.IBMRuntimeService.run` or - :meth:`qiskit_ibm_runtime.RuntimeJob.stream_results`. diff --git a/releasenotes/notes/0.1/wait-for-final-state-bug-02ebbe8df7a252d0.yaml b/releasenotes/notes/0.1/wait-for-final-state-bug-02ebbe8df7a252d0.yaml deleted file mode 100644 index 0dc3b888a..000000000 --- a/releasenotes/notes/0.1/wait-for-final-state-bug-02ebbe8df7a252d0.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -fixes: - - | - Fixed a bug where :meth:`qiskit_ibm_runtime.RuntimeJob.wait_for_final_state` - would result in a NoneType error if the job already completed and - :meth:`qiskit_ibm_runtime.RuntimeJob.status` was called beforehand. - - diff --git a/releasenotes/notes/0.10/deserialization_of_job_params-79abdfebac8fa6f6.yaml b/releasenotes/notes/0.10/deserialization_of_job_params-79abdfebac8fa6f6.yaml deleted file mode 100644 index c5dfed9bf..000000000 --- a/releasenotes/notes/0.10/deserialization_of_job_params-79abdfebac8fa6f6.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -fixes: - - | - Added deserialization of the params of RuntimeJob.inputs. Previously, - the circuits were returned in serialized format. Fixes issue - `#829 `_. - diff --git a/releasenotes/notes/0.10/error_msg_max_execution_time-e401d353ae2a7d86.yaml b/releasenotes/notes/0.10/error_msg_max_execution_time-e401d353ae2a7d86.yaml deleted file mode 100644 index 63423dd79..000000000 --- a/releasenotes/notes/0.10/error_msg_max_execution_time-e401d353ae2a7d86.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -upgrade: - - | - Added error messages in case the user defines unsupported values - for 'max_execution_time'. - Previously, this validation was done on the server side. diff --git a/releasenotes/notes/0.10/python-3.11-support-edb6c144032bf483.yaml b/releasenotes/notes/0.10/python-3.11-support-edb6c144032bf483.yaml deleted file mode 100644 index 861b20f2f..000000000 --- a/releasenotes/notes/0.10/python-3.11-support-edb6c144032bf483.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -features: - - | - Python 3.11 is now supported. diff --git a/releasenotes/notes/0.10/retrieve-backends-no-config-5d51fdf5fe9af648.yaml b/releasenotes/notes/0.10/retrieve-backends-no-config-5d51fdf5fe9af648.yaml deleted file mode 100644 index 13750d0ea..000000000 --- a/releasenotes/notes/0.10/retrieve-backends-no-config-5d51fdf5fe9af648.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -fixes: - - | - Allow for users to retrieve all backends even if one of the backends has a missing - configuration. The backend without a configuration will not be returned. diff --git a/releasenotes/notes/0.11/backend_deepcopy-965f6a19a6d17cb2.yaml b/releasenotes/notes/0.11/backend_deepcopy-965f6a19a6d17cb2.yaml deleted file mode 100644 index 733d556f6..000000000 --- a/releasenotes/notes/0.11/backend_deepcopy-965f6a19a6d17cb2.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - Fixed infinite recursion when attempting to deepcopy an IBMBackend. Added - a method :meth:`qiskit_ibm_runtime.IBMBackend.deepcopy`. - diff --git a/releasenotes/notes/0.11/deprecate-bss-seconds-565fc01de679084f.yaml b/releasenotes/notes/0.11/deprecate-bss-seconds-565fc01de679084f.yaml deleted file mode 100644 index 0301693c1..000000000 --- a/releasenotes/notes/0.11/deprecate-bss-seconds-565fc01de679084f.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -deprecations: - - | - In :meth:`qiskit_ibm_runtime.RuntimeJob.metrics`, the `bss` field will be replaced - by `usage`. diff --git a/releasenotes/notes/0.11/error_message-a93bc462baa0cb8a.yaml b/releasenotes/notes/0.11/error_message-a93bc462baa0cb8a.yaml deleted file mode 100644 index cb8120e5f..000000000 --- a/releasenotes/notes/0.11/error_message-a93bc462baa0cb8a.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -features: - - | - Added reason for failure when invoking the method - :meth:`~qiskit_ibm_runtime.RuntimeJob.error_message`. - diff --git a/releasenotes/notes/0.11/exception_cancelled_job-9104b4e513590548.yaml b/releasenotes/notes/0.11/exception_cancelled_job-9104b4e513590548.yaml deleted file mode 100644 index bd1ce8838..000000000 --- a/releasenotes/notes/0.11/exception_cancelled_job-9104b4e513590548.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -features: - - | - If a job has been cancelled, and job.result() is requested, throw an exception - rather than returning None. diff --git a/releasenotes/notes/0.11/exclude-job-params-397b0b918aa4f6f9.yaml b/releasenotes/notes/0.11/exclude-job-params-397b0b918aa4f6f9.yaml deleted file mode 100644 index 7a85567ce..000000000 --- a/releasenotes/notes/0.11/exclude-job-params-397b0b918aa4f6f9.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -features: - - | - When retrieving a job with :meth:`qiskit_ibm_runtime.IBMRuntimeService.job` the ``params`` - will no longer be returned from the API. They will instead be loaded loazily when they are actually needed - in :meth:`qiskit_ibm_runtime.RuntimeJob.inputs`. \ No newline at end of file diff --git a/releasenotes/notes/0.11/job-cost-estimation-d0ba83dbc95c3f67.yaml b/releasenotes/notes/0.11/job-cost-estimation-d0ba83dbc95c3f67.yaml deleted file mode 100644 index be82253c9..000000000 --- a/releasenotes/notes/0.11/job-cost-estimation-d0ba83dbc95c3f67.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -features: - - | - Added a new property, :meth:`~qiskit_ibm_runtime.RuntimeJob.usage_estimation` - that returns the estimated system execution time, ``quantum_seconds``. System execution time - represents the amount of time that the system is dedicated to processing your job. diff --git a/releasenotes/notes/0.11/max_circuits-b773c860f8df1cf4.yaml b/releasenotes/notes/0.11/max_circuits-b773c860f8df1cf4.yaml deleted file mode 100644 index 6e492d83e..000000000 --- a/releasenotes/notes/0.11/max_circuits-b773c860f8df1cf4.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -features: - - | - Raise an exception if the number of circuits passed to - :meth:`~qiskit_ibm_runtime.BasePrimitive._run_primitive` - exceeds the number of circuits supported on the backend. - diff --git a/releasenotes/notes/0.11/metadata-serialization-bug-dfd7fd86702b6ce7.yaml b/releasenotes/notes/0.11/metadata-serialization-bug-dfd7fd86702b6ce7.yaml deleted file mode 100644 index 77990c666..000000000 --- a/releasenotes/notes/0.11/metadata-serialization-bug-dfd7fd86702b6ce7.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -fixes: - - | - Fixed an issue where circuit metadata was not being serialized correctly - resulting in a type error. diff --git a/releasenotes/notes/0.11/non_active_backend-2fcdbbc3d902f2a3.yaml b/releasenotes/notes/0.11/non_active_backend-2fcdbbc3d902f2a3.yaml deleted file mode 100644 index c11895de7..000000000 --- a/releasenotes/notes/0.11/non_active_backend-2fcdbbc3d902f2a3.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -features: - - | - Added warning when the backend is not active in - QiskitRuntimeService.run. diff --git a/releasenotes/notes/0.11/remove-default-session-ba05e48362567d5b.yaml b/releasenotes/notes/0.11/remove-default-session-ba05e48362567d5b.yaml deleted file mode 100644 index 817c6093d..000000000 --- a/releasenotes/notes/0.11/remove-default-session-ba05e48362567d5b.yaml +++ /dev/null @@ -1,21 +0,0 @@ ---- -upgrade: - - | - A default session is no longer open for you if you pass a backend name or - backend instance to :class:`qiskit_ibm_runtime.Sampler` or - :class:`qiskit_ibm_runtime.Estimator` constructors. The primitive will - instead run without a session. In addition, you should now use the - ``backend`` parameter to pass a backend name or instance instead of - the ``session`` parameter (which can continue to be used to pass a - session). - - | - The first parameter of the :class:`qiskit_ibm_runtime.Sampler` and - :class:`qiskit_ibm_runtime.Estimator` constructors is now ``backend`` - instead of ``session``. -deprecations: - - | - Passing a backend name or backend instance to the ``session`` parameter - when initializing a :class:`qiskit_ibm_runtime.Sampler` or - :class:`qiskit_ibm_runtime.Estimator` has been deprecated. Please use - the ``backend`` parameter instead. You can continue to pass a session - using the ``session`` parameter. diff --git a/releasenotes/notes/0.11/simulator-options-set-backend-796e2ae4517be689.yaml b/releasenotes/notes/0.11/simulator-options-set-backend-796e2ae4517be689.yaml deleted file mode 100644 index e1dd29d22..000000000 --- a/releasenotes/notes/0.11/simulator-options-set-backend-796e2ae4517be689.yaml +++ /dev/null @@ -1,20 +0,0 @@ ---- -features: - - | - A new method, :meth:`qiskit_ibm_runtime.options.SimulatorOptions.set_backend`, allows users - to more easily set simulator options for a backend. - - .. code-block:: - - from qiskit.providers.fake_provider import FakeManila - from qiskit_aer.noise import NoiseModel - - # Make a noise model - fake_backend = FakeManila() - - # Set options to include the noise model - options = Options() - options.simulator.set_backend(fake_backend) - options.simulator.seed_simulator = 42 - - diff --git a/releasenotes/notes/0.11/support-update-tags-43eb9478a315c2b3.yaml b/releasenotes/notes/0.11/support-update-tags-43eb9478a315c2b3.yaml deleted file mode 100644 index 589b65bdb..000000000 --- a/releasenotes/notes/0.11/support-update-tags-43eb9478a315c2b3.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -features: - - | - There is a new method :meth:`~qiskit_ibm_runtime.RuntimeJob.update_tags` that can be used - to update the ``job_tags`` of a job. diff --git a/releasenotes/notes/0.11/support_coupling_map-3695cd8c7e5ad848.yaml b/releasenotes/notes/0.11/support_coupling_map-3695cd8c7e5ad848.yaml deleted file mode 100644 index 4ca8a5c01..000000000 --- a/releasenotes/notes/0.11/support_coupling_map-3695cd8c7e5ad848.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -features: - - | - Support input of type ``CouplingMap`` when given as simulator option. - Previously we supported, for example:: - - options.simulator = {"coupling_map": [[0, 1], [1, 0]]} - - Now we also support the following:: - - options.simulator = {"coupling_map": CouplingMap.from_line(10)} - diff --git a/releasenotes/notes/0.12/backend-properties-datetime-0fe6a364c0a291d2.yaml b/releasenotes/notes/0.12/backend-properties-datetime-0fe6a364c0a291d2.yaml deleted file mode 100644 index 72c922864..000000000 --- a/releasenotes/notes/0.12/backend-properties-datetime-0fe6a364c0a291d2.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - Retrieving backend properties with :meth:`~qiskit_ibm_runtime.IBMBackend.properties` - now supports passing a ``datetime`` parameter to retrieve properties from a past date. - diff --git a/releasenotes/notes/0.12/channel-strategy-backend-filter-a4fe5248d9aea9c1.yaml b/releasenotes/notes/0.12/channel-strategy-backend-filter-a4fe5248d9aea9c1.yaml deleted file mode 100644 index 58c7cf712..000000000 --- a/releasenotes/notes/0.12/channel-strategy-backend-filter-a4fe5248d9aea9c1.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -features: - - | - If using a ``channel_strategy``, only backends that support that ``channel_strategy`` - will be accessible to the user. - diff --git a/releasenotes/notes/0.12/data-tracking-updates-97327c62c51b5891.yaml b/releasenotes/notes/0.12/data-tracking-updates-97327c62c51b5891.yaml deleted file mode 100644 index fa1a8c5ba..000000000 --- a/releasenotes/notes/0.12/data-tracking-updates-97327c62c51b5891.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -features: - - | - Users can use a new environment variable, ``USAGE_DATA_OPT_OUT`` to - opt out of user module usage tracking by setting this value to ``True``. - Additionally, only certain qiskit modules will be tracked instead of - all modules that begin with `qiskit` or `qiskit_`. diff --git a/releasenotes/notes/0.12/default-channel-strategy-6899049ad4a7321b.yaml b/releasenotes/notes/0.12/default-channel-strategy-6899049ad4a7321b.yaml deleted file mode 100644 index 32aa93f6e..000000000 --- a/releasenotes/notes/0.12/default-channel-strategy-6899049ad4a7321b.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -features: - - | - Users can now pass in a value of ``default`` to the ``channel_strategy`` parameter - in :class:`qiskit_ibm_runtime.QiskitRuntimeService`. Now, if an account is configured - with a certain channel strategy, the user can override it by passing in ``default``. diff --git a/releasenotes/notes/0.12/default-resilience-options-7929458af000314f.yaml b/releasenotes/notes/0.12/default-resilience-options-7929458af000314f.yaml deleted file mode 100644 index 74c9e9dc9..000000000 --- a/releasenotes/notes/0.12/default-resilience-options-7929458af000314f.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -fixes: - - | - The ``noise_factors`` and ``extrapolator`` options in :class:`qiskit_ibm_runtime.options.ResilienceOptions` - will now default to ``None`` unless ``resilience_level`` is set to 2. - Only options relevant to the resilience level will be set, so when using ``resilience_level`` - 2, ``noise_factors`` will still default to ``(1, 3, 5)`` and ``extrapolator`` will default to - ``LinearExtrapolator``. Additionally, options with a value of ``None`` will no longer be sent to - the server. - diff --git a/releasenotes/notes/0.12/default_account-13d86d50f5b1d972.yaml b/releasenotes/notes/0.12/default_account-13d86d50f5b1d972.yaml deleted file mode 100644 index b84f81d21..000000000 --- a/releasenotes/notes/0.12/default_account-13d86d50f5b1d972.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -features: - - | - Added the option to define a default account in the account json file. - To select an account as default, define ``set_as_default=True`` in - ``QiskitRuntimeService.save_account()``. diff --git a/releasenotes/notes/0.12/deprecate_noise_amplifier-e656cc98a962a81b.yaml b/releasenotes/notes/0.12/deprecate_noise_amplifier-e656cc98a962a81b.yaml deleted file mode 100644 index 35e6f626a..000000000 --- a/releasenotes/notes/0.12/deprecate_noise_amplifier-e656cc98a962a81b.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -deprecations: - - | - The ``noise_amplifier`` resilience options is deprecated. - After the deprecation period, only local folding amplification will be supported. - Refer to https://github.com/qiskit-community/prototype-zne for global folding - amplification. diff --git a/releasenotes/notes/0.12/dont-store-circuit-params-9d87ffefc2a7d257.yaml b/releasenotes/notes/0.12/dont-store-circuit-params-9d87ffefc2a7d257.yaml deleted file mode 100644 index b15bc7ec4..000000000 --- a/releasenotes/notes/0.12/dont-store-circuit-params-9d87ffefc2a7d257.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -upgrade: - - | - Circuits and other input parameters will no longer be automatically stored in runtime jobs. - They can still be retrieved with :meth:`qiskit_ibm_runtime.RuntimeJob.inputs`. diff --git a/releasenotes/notes/0.12/error-codes-82a392efad5963da.yaml b/releasenotes/notes/0.12/error-codes-82a392efad5963da.yaml deleted file mode 100644 index 5f95903a0..000000000 --- a/releasenotes/notes/0.12/error-codes-82a392efad5963da.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -upgrade: - - | - Job error messages now include the error code. Error codes can be found in - https://docs.quantum-computing.ibm.com/errors. \ No newline at end of file diff --git a/releasenotes/notes/0.12/error-message-case-31b4b2b7a5a2f624.yaml b/releasenotes/notes/0.12/error-message-case-31b4b2b7a5a2f624.yaml deleted file mode 100644 index 696ce5db0..000000000 --- a/releasenotes/notes/0.12/error-message-case-31b4b2b7a5a2f624.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -fixes: - - | - Job error messages will no longer be returned in all uppercase. diff --git a/releasenotes/notes/0.12/filter_instance-a7203041b5ab85d9.yaml b/releasenotes/notes/0.12/filter_instance-a7203041b5ab85d9.yaml deleted file mode 100644 index da0cd3732..000000000 --- a/releasenotes/notes/0.12/filter_instance-a7203041b5ab85d9.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -features: - - | - If ``instance`` is provided as parameter to - :class:`qiskit_ibm_runtime.QiskitRuntimeService`, - then this is used as a filter in :meth:`QiskitRuntimeService.backends()`. - If ``instance`` is not recognized as one of the provider instances, - an exception will be raised. Previously, we only issued a warning. diff --git a/releasenotes/notes/0.12/fix_job_backend-2760075856605bf0.yaml b/releasenotes/notes/0.12/fix_job_backend-2760075856605bf0.yaml deleted file mode 100644 index 9260c71cf..000000000 --- a/releasenotes/notes/0.12/fix_job_backend-2760075856605bf0.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -fixes: - - | - When running on channel "ibm_cloud", it is possible not to specify - the backend. In this case, the system selects one of the available - backends for this service. Issue - `#625 https://github.com/Qiskit/qiskit-ibm-runtime/issues/625` - reported that the the backend returned by ``job.backend()`` was not - always the actual backend on which the job was run. This PR fixes - this bug. diff --git a/releasenotes/notes/0.12/fix_test_cancel_job_running-771511870d82d4e4.yaml b/releasenotes/notes/0.12/fix_test_cancel_job_running-771511870d82d4e4.yaml deleted file mode 100644 index 92c4ccf03..000000000 --- a/releasenotes/notes/0.12/fix_test_cancel_job_running-771511870d82d4e4.yaml +++ /dev/null @@ -1,6 +0,0 @@ -fixes: - - | - Fixes a race condition in the test `test_cancel_running_job()` in `test_job.py` - where job cancellation could not be performed. - Refer to #1019 _ for - more details. diff --git a/releasenotes/notes/0.12/from_id-23fc85f3fbf01e0b.yaml b/releasenotes/notes/0.12/from_id-23fc85f3fbf01e0b.yaml deleted file mode 100644 index 7e61ea5a5..000000000 --- a/releasenotes/notes/0.12/from_id-23fc85f3fbf01e0b.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -features: - - | - Added new method ``Session.from_id`` which creates a new session with a given id. - - diff --git a/releasenotes/notes/0.12/global_service-ad56a0209e7b9891.yaml b/releasenotes/notes/0.12/global_service-ad56a0209e7b9891.yaml deleted file mode 100644 index c0f657edc..000000000 --- a/releasenotes/notes/0.12/global_service-ad56a0209e7b9891.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -features: - - | - Added a ``global_service``, so that if the user defines a `QiskitRuntimeService`, it will - be used by the primitives, even if the service is not passed to them explicitly. - For example:: - - from qiskit_ibm_runtime import QiskitRuntimeService, Sampler - service = QiskitRuntimeService(channel="ibm_quantum") - # Sampler._service field will be initialized to ``service`` - sampler = Sampler(backend="ibmq_qasm_simulator") diff --git a/releasenotes/notes/0.12/instances-method-02fda1de98638e59.yaml b/releasenotes/notes/0.12/instances-method-02fda1de98638e59.yaml deleted file mode 100644 index c35846b36..000000000 --- a/releasenotes/notes/0.12/instances-method-02fda1de98638e59.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -features: - - | - Added a new method, :meth:`qiskit_ibm_runtime.QiskitRuntimeService.instances` that returns - all instances(hub/group/project) the user is in. This is only for the ``ibm_quantum`` channel - since the ``ibm_cloud`` channel does not have multiple instances. diff --git a/releasenotes/notes/0.12/job-quota-warning-0512f30571897f53.yaml b/releasenotes/notes/0.12/job-quota-warning-0512f30571897f53.yaml deleted file mode 100644 index a484c733b..000000000 --- a/releasenotes/notes/0.12/job-quota-warning-0512f30571897f53.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -features: - - | - There will now be a warning if a user submits a job that is predicted to - exceed their system execution time monthly quota of 10 minutes. - This only applies to jobs run on real hardware in the instance ``ibm-q/open/main``. - If the job does end up exceeding the quota, it will be canceled. diff --git a/releasenotes/notes/0.12/max-execution-time-definition-196cb6297693c0f2.yaml b/releasenotes/notes/0.12/max-execution-time-definition-196cb6297693c0f2.yaml deleted file mode 100644 index 70f55273e..000000000 --- a/releasenotes/notes/0.12/max-execution-time-definition-196cb6297693c0f2.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -fixes: - - | - The `max_execution_time` option is now based on system execution time instead of wall clock time. - System execution time is the amount of time that the system is dedicated to processing your job. - If a job exceeds this time limit, it is forcibly cancelled. - Simulator jobs continue to use wall clock time. diff --git a/releasenotes/notes/0.12/option_validation-79d26018ab770519.yaml b/releasenotes/notes/0.12/option_validation-79d26018ab770519.yaml deleted file mode 100644 index d2fd97b48..000000000 --- a/releasenotes/notes/0.12/option_validation-79d26018ab770519.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -features: - - | - Added validations for options on the second level of the dict, - i.e., for each of resilience, simulator, execution, and - transpilation, check that their options are supported. - Otherwise throw an exception. - diff --git a/releasenotes/notes/0.12/q-ctrl-support-157170386477dfbd.yaml b/releasenotes/notes/0.12/q-ctrl-support-157170386477dfbd.yaml deleted file mode 100644 index 7adf9eb74..000000000 --- a/releasenotes/notes/0.12/q-ctrl-support-157170386477dfbd.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -features: - - | - There is a new parameter, ``channel_strategy`` that can be set in the initialization of - :class:`qiskit_ibm_runtime.QiskitRuntimeService` or saved in - :meth:`qiskit_ibm_runtime.QiskitRuntimeService.save_account`. If ``channel_strategy`` - is set to ``q-ctrl``, all jobs within the service will use - the Q-CTRL error mitigation strategy. - diff --git a/releasenotes/notes/0.12/q-ctrl-validation-08d249f1e84a43a5.yaml b/releasenotes/notes/0.12/q-ctrl-validation-08d249f1e84a43a5.yaml deleted file mode 100644 index 897bb1614..000000000 --- a/releasenotes/notes/0.12/q-ctrl-validation-08d249f1e84a43a5.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -features: - - | - The Sampler and Estimator primitives have been enhanced to incorporate custom validation procedures when - the channel_strategy property within the :class:qiskit_ibm_runtime.QiskitRuntimeService is configured as "q-ctrl." - This customized validation logic effectively rectifies incorrect input options and safeguards users against - inadvertently disabling Q-CTRL's performance enhancements. diff --git a/releasenotes/notes/0.12/remove-backend-circuits-limit-b804b58dc97ed276.yaml b/releasenotes/notes/0.12/remove-backend-circuits-limit-b804b58dc97ed276.yaml deleted file mode 100644 index 538fcb9b7..000000000 --- a/releasenotes/notes/0.12/remove-backend-circuits-limit-b804b58dc97ed276.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - Previously we added validation when jobs were run to make sure the number - of circuits was not greater than the maximum for that backend, ``backend.max_circuits``. - This limit isn't actually necessary for primtives run from within a session. diff --git a/releasenotes/notes/0.13/expose-session-details-c4a44316d30dad33.yaml b/releasenotes/notes/0.13/expose-session-details-c4a44316d30dad33.yaml deleted file mode 100644 index 6e525c509..000000000 --- a/releasenotes/notes/0.13/expose-session-details-c4a44316d30dad33.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -features: - - | - Added a new method, :meth:`~qiskit_ibm_runtime.Session.details` that returns information - about a session, including: maximum session time, active time remaining, the current state, - and whether or not the session is accepting jobs. - - Also added :meth:`~qiskit_ibm_runtime.Session.status`, which returns the current status of - the session. - diff --git a/releasenotes/notes/0.13/fix_np_int64-864b605a88f57419.yaml b/releasenotes/notes/0.13/fix_np_int64-864b605a88f57419.yaml deleted file mode 100644 index 106c68469..000000000 --- a/releasenotes/notes/0.13/fix_np_int64-864b605a88f57419.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -fixes: - - | - Fixed a bug where ``shots`` passed in as a numpy type were not being - serialized correctly. diff --git a/releasenotes/notes/0.13/log-instance-selected-a18c4791418b5e0d.yaml b/releasenotes/notes/0.13/log-instance-selected-a18c4791418b5e0d.yaml deleted file mode 100644 index 3d78f85d1..000000000 --- a/releasenotes/notes/0.13/log-instance-selected-a18c4791418b5e0d.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -features: - - | - At initialization, if not passed in directly, the default ``instance`` selected by the provider - will be logged at the "INFO" level. When running a job, if the backend selected is not in - the default instance but in a different instance the user also has access to, that instance - will also be logged. diff --git a/releasenotes/notes/0.13/session-accepting-jobs-d7ef6b60c0f5527b.yaml b/releasenotes/notes/0.13/session-accepting-jobs-d7ef6b60c0f5527b.yaml deleted file mode 100644 index 1a3421a49..000000000 --- a/releasenotes/notes/0.13/session-accepting-jobs-d7ef6b60c0f5527b.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -upgrade: - - | - :meth:`qiskit_ibm_runtime.Session.close` has been updated to mark a ``Session`` as no longer - accepting new jobs. The session won't accept more jobs but it will continue to run any - queued jobs until they are done or the max time expires. This will also happen - automatically when the session context manager is exited. When a session that is not accepting - jobs has run out of jobs to run, it's immediately closed, freeing up the backend to run more jobs rather - than wait for the interactive timeout. - - The old close method behavior has been moved to a new method, - :meth:`qiskit_ibm_runtime.Session.cancel`, where all queued jobs within a session are - cancelled and terminated. diff --git a/releasenotes/notes/0.13/target-history-date-bug-7d6dad84fc5b3d2e.yaml b/releasenotes/notes/0.13/target-history-date-bug-7d6dad84fc5b3d2e.yaml deleted file mode 100644 index 5c26b3065..000000000 --- a/releasenotes/notes/0.13/target-history-date-bug-7d6dad84fc5b3d2e.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - Fixed a bug in :meth:`~qiskit_ibm_runtime.IBMBackend.target_history` where - the datetime parameter was not being used to retrieve backend properties from the - specified date. diff --git a/releasenotes/notes/0.14/batch-class-b7a3befcfce8860e.yaml b/releasenotes/notes/0.14/batch-class-b7a3befcfce8860e.yaml deleted file mode 100644 index 8e2bf7e06..000000000 --- a/releasenotes/notes/0.14/batch-class-b7a3befcfce8860e.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -features: - - | - There is a new class, :class:`qiskit_ibm_runtime.Batch` that currently works - the same way as :class:`qiskit_ibm_runtime.Session` but will later be updated - to better support submitting multiple jobs at once. diff --git a/releasenotes/notes/0.14/deprecate-custom-programs-274e6ea20d1027a1.yaml b/releasenotes/notes/0.14/deprecate-custom-programs-274e6ea20d1027a1.yaml deleted file mode 100644 index dd8ec9d4e..000000000 --- a/releasenotes/notes/0.14/deprecate-custom-programs-274e6ea20d1027a1.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -deprecations: - - | - Custom programs are being deprecated as of qiskit-ibm-runtime 0.14.0 and will be - removed on November 27, 2023. Users can instead convert their custom programs to use - Qiskit Runtime primitives with Quantum Serverless. Refer to the migration guide for - instructions: - https://qiskit-extensions.github.io/quantum-serverless/migration/migration_from_qiskit_runtime_programs.html - diff --git a/releasenotes/notes/0.14/remove_kwargs_options-9024d3ec6572a53e.yaml b/releasenotes/notes/0.14/remove_kwargs_options-9024d3ec6572a53e.yaml deleted file mode 100644 index e40a4f40c..000000000 --- a/releasenotes/notes/0.14/remove_kwargs_options-9024d3ec6572a53e.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -features: - - | - Arbitrary keys and values are no longer allowed in ``Options``. diff --git a/releasenotes/notes/0.15/add-fake-provider-and-backends-ae20e788b45433ba.yaml b/releasenotes/notes/0.15/add-fake-provider-and-backends-ae20e788b45433ba.yaml deleted file mode 100644 index 6014d50fb..000000000 --- a/releasenotes/notes/0.15/add-fake-provider-and-backends-ae20e788b45433ba.yaml +++ /dev/null @@ -1,32 +0,0 @@ ---- -features: - - | - A new module :mod:`qiskit_ibm_runtime.fake_provider`, has been added to provide access - to a series of fake backends derived from snapshots of IBM Quantum devices. This - functionality was originally provided by the :mod:`qiskit.providers.fake_provider` - module, but will soon be deprecated in favor of :mod:`qiskit_ibm_runtime.fake_provider`. - - The snapshots provided by the fake backends are useful for local testing of the transpiler - and performing local noisy simulations of the system before running on real devices. - Here is an example of using a fake backend for transpilation and simulation:: - - from qiskit import QuantumCircuit - from qiskit import transpile - from qiskit_ibm_runtime.fake_provider import FakeManilaV2 - - # Get a fake backend from the fake provider - backend = FakeManilaV2() - - # Create a simple circuit - circuit = QuantumCircuit(3) - circuit.h(0) - circuit.cx(0,1) - circuit.cx(0,2) - circuit.measure_all() - - # Transpile the ideal circuit to a circuit that can be directly executed by the backend - transpiled_circuit = transpile(circuit, backend) - - # Run the transpiled circuit using the simulated fake backend - job = backend.run(transpiled_circuit) - counts = job.result().get_counts() diff --git a/releasenotes/notes/0.15/backend_run-d5a92a4d677da6c1.yaml b/releasenotes/notes/0.15/backend_run-d5a92a4d677da6c1.yaml deleted file mode 100644 index 4391ff74f..000000000 --- a/releasenotes/notes/0.15/backend_run-d5a92a4d677da6c1.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -features: - - | - Added support for ``backend.run()``. The functionality is similar to that in ``qiskit-ibm-provider``. - diff --git a/releasenotes/notes/0.15/byte-result-bug-7afb5abe813f5b1b.yaml b/releasenotes/notes/0.15/byte-result-bug-7afb5abe813f5b1b.yaml deleted file mode 100644 index 66e9d3c31..000000000 --- a/releasenotes/notes/0.15/byte-result-bug-7afb5abe813f5b1b.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - Fixed an issue where canceled and failed jobs would return an invalid result that - resulted in a type error, preventing the actual error from being returned - to the user. \ No newline at end of file diff --git a/releasenotes/notes/0.15/channel-strategy-instance-validate-639b18b8c5d44678.yaml b/releasenotes/notes/0.15/channel-strategy-instance-validate-639b18b8c5d44678.yaml deleted file mode 100644 index 6c74e2fb6..000000000 --- a/releasenotes/notes/0.15/channel-strategy-instance-validate-639b18b8c5d44678.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -features: - - | - An error will be raised during initialization if ``q-ctrl`` is passed in as the ``channel_strategy`` and - the account instance does not have ``q-ctrl`` enabled. diff --git a/releasenotes/notes/0.15/de-warning-6cf474f11578339c.yaml b/releasenotes/notes/0.15/de-warning-6cf474f11578339c.yaml deleted file mode 100644 index 6248078b0..000000000 --- a/releasenotes/notes/0.15/de-warning-6cf474f11578339c.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - A warning will be raised at initialization if the DE environment is being used since not all - features are supported there. - diff --git a/releasenotes/notes/0.15/deprecate_qiskitrc-1fd8afc6d599fc0e.yaml b/releasenotes/notes/0.15/deprecate_qiskitrc-1fd8afc6d599fc0e.yaml deleted file mode 100644 index 12d59babd..000000000 --- a/releasenotes/notes/0.15/deprecate_qiskitrc-1fd8afc6d599fc0e.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -deprecations: - - | - Usage of the ``~/.qiskit/qiskitrc.json`` file for account information has been - deprecated. Use ``~/.qiskit/qiskit-ibm.json`` instead. diff --git a/releasenotes/notes/0.15/from-id-params-659a2adb727b9d18.yaml b/releasenotes/notes/0.15/from-id-params-659a2adb727b9d18.yaml deleted file mode 100644 index 2d16c3895..000000000 --- a/releasenotes/notes/0.15/from-id-params-659a2adb727b9d18.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - The ``backend`` parameter in :meth:`~qiskit_ibm_runtime.Session.from_id` is being deprecated because - sessions do not support multiple backends. Additionally, the ``service`` parameter is no longer optional. - diff --git a/releasenotes/notes/0.15/migrate_backend_run-06c4b0579f28061a.yaml b/releasenotes/notes/0.15/migrate_backend_run-06c4b0579f28061a.yaml deleted file mode 100644 index fc290de6e..000000000 --- a/releasenotes/notes/0.15/migrate_backend_run-06c4b0579f28061a.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -other: - - | - Added migration code for running ``backend.run`` in `qiskit_ibm_runtime` instead of in `qiskit_ibm_provider`. diff --git a/releasenotes/notes/0.15/no_cached_results-54d063390b9b0ae6.yaml b/releasenotes/notes/0.15/no_cached_results-54d063390b9b0ae6.yaml deleted file mode 100644 index 5740d00b6..000000000 --- a/releasenotes/notes/0.15/no_cached_results-54d063390b9b0ae6.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -features: - - | - Removed storing result in ``RuntimeJob._results``. Instead retrieve results every time the - ``results()`` method is called. diff --git a/releasenotes/notes/0.15/remove-circuit-indicies-e8af9da213e463e9.yaml b/releasenotes/notes/0.15/remove-circuit-indicies-e8af9da213e463e9.yaml deleted file mode 100644 index ca2d327fd..000000000 --- a/releasenotes/notes/0.15/remove-circuit-indicies-e8af9da213e463e9.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - The ``circuit_indices`` and ``observable_indices`` run inputs for - :class:`~qiskit_ibm_runtime.Estimator` and :class:`~qiskit_ibm_runtime.Sampler` - have been completely removed. \ No newline at end of file diff --git a/releasenotes/notes/0.15/revert-from-id-9b87ea2d948251d6.yaml b/releasenotes/notes/0.15/revert-from-id-9b87ea2d948251d6.yaml deleted file mode 100644 index 02a46f518..000000000 --- a/releasenotes/notes/0.15/revert-from-id-9b87ea2d948251d6.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - Reverting `0.15.0` changes to :meth:`~qiskit_ibm_runtime.Session.from_id` because it was - a breaking change without proper deprecation. - diff --git a/releasenotes/notes/0.16/q-ctrl-instance-check-46181d51f16d18bc.yaml b/releasenotes/notes/0.16/q-ctrl-instance-check-46181d51f16d18bc.yaml deleted file mode 100644 index a48934c7f..000000000 --- a/releasenotes/notes/0.16/q-ctrl-instance-check-46181d51f16d18bc.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -fixes: - - | - If a cloud instance that is ``q-ctrl`` enabled is used while ``q-ctrl`` is not - passed in as the ``channel_strategy``, an error will be raised. diff --git a/releasenotes/notes/0.16/remove-custom-programs-aea76f4dd19cd481.yaml b/releasenotes/notes/0.16/remove-custom-programs-aea76f4dd19cd481.yaml deleted file mode 100644 index 8823cfb37..000000000 --- a/releasenotes/notes/0.16/remove-custom-programs-aea76f4dd19cd481.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -upgrade: - - | - Methods related to using custom programs are removed. diff --git a/releasenotes/notes/0.16/thread-safe-sessions-d08c8367e98447e7.yaml b/releasenotes/notes/0.16/thread-safe-sessions-d08c8367e98447e7.yaml deleted file mode 100644 index 4880e2d53..000000000 --- a/releasenotes/notes/0.16/thread-safe-sessions-d08c8367e98447e7.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -prelude: > - Sessions are now thread-safe and allow for multiple concurrent interactive - experiments. -features: - - Sessions are now thread-safe. diff --git a/releasenotes/notes/0.17/backend-instance-filter-20d69b3951437f19.yaml b/releasenotes/notes/0.17/backend-instance-filter-20d69b3951437f19.yaml deleted file mode 100644 index b23198477..000000000 --- a/releasenotes/notes/0.17/backend-instance-filter-20d69b3951437f19.yaml +++ /dev/null @@ -1,16 +0,0 @@ ---- -fixes: - - | - When a single backend is retrieved with the ``instance`` parameter, - - .. code-block:: - - service.backend('ibm_torino', instance='ibm-q/open/main') - # raises error if torino is not in ibm-q/open/main but in a different instance - # the user has access to - service = QiskitRuntimeService(channel="ibm_quantum", instance="ibm-q/open/main") - service.backend('ibm_torino') # raises the same error - - if the backend is not in the instance but in a different one the user has access to, an error - will be raised. The same error will now be raised if an instance is passed in at initialization - and then a backend not in that instance is retrieved. diff --git a/releasenotes/notes/0.17/faulity-qubits-name-error-f03b90f21cd2d9bf.yaml b/releasenotes/notes/0.17/faulity-qubits-name-error-f03b90f21cd2d9bf.yaml deleted file mode 100644 index 9765774a2..000000000 --- a/releasenotes/notes/0.17/faulity-qubits-name-error-f03b90f21cd2d9bf.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - Fixed an issue where retrieving the `coupling_map` of some backends would result - in a `NameError`. - diff --git a/releasenotes/notes/0.17/job-properties-2b5c2f66c50d7d2d.yaml b/releasenotes/notes/0.17/job-properties-2b5c2f66c50d7d2d.yaml deleted file mode 100644 index cd9bfcad4..000000000 --- a/releasenotes/notes/0.17/job-properties-2b5c2f66c50d7d2d.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -features: - - | - Added a new method :meth:`~qiskit_ibm_runtime.RuntimeJob.properties` which returns the - backend properties of the job at the time the job was run. - diff --git a/releasenotes/notes/0.17/new-session-details-field-48311b4d3313ad94.yaml b/releasenotes/notes/0.17/new-session-details-field-48311b4d3313ad94.yaml deleted file mode 100644 index ef6b210dc..000000000 --- a/releasenotes/notes/0.17/new-session-details-field-48311b4d3313ad94.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -features: - - | - :meth:`~qiskit_ibm_runtime.Session.details` has a new field, `activated_at`, which - is the timestamp of when the session was changed to active. - diff --git a/releasenotes/notes/0.18/deprecate-service-runtime-1138cb5ec43fc4ff.yaml b/releasenotes/notes/0.18/deprecate-service-runtime-1138cb5ec43fc4ff.yaml deleted file mode 100644 index 7e7f786b1..000000000 --- a/releasenotes/notes/0.18/deprecate-service-runtime-1138cb5ec43fc4ff.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -deprecations: - - | - :meth:`~qiskit_ibm_runtime.QiskitRuntimeService.runtime` has been deprecated. diff --git a/releasenotes/notes/0.18/dynamic-circuits-filter-59f771a9b43c00cd.yaml b/releasenotes/notes/0.18/dynamic-circuits-filter-59f771a9b43c00cd.yaml deleted file mode 100644 index ede5247f3..000000000 --- a/releasenotes/notes/0.18/dynamic-circuits-filter-59f771a9b43c00cd.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -features: - - | - Added a new parameter, `dynamic_circuits` to :meth:`~qiskit_ibm_runtime.QiskitRuntimeService.backends` - to allow filtering of backends that support dynamic circuits. diff --git a/releasenotes/notes/0.18/exclude-job-params-default-00133498a5c5c15d.yaml b/releasenotes/notes/0.18/exclude-job-params-default-00133498a5c5c15d.yaml deleted file mode 100644 index 6d500c8e1..000000000 --- a/releasenotes/notes/0.18/exclude-job-params-default-00133498a5c5c15d.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - Many methods in :class:`~qiskit_ibm_runtime.RuntimeJob` require retrieving the job data from the API with - ``job_get()``. This API call will now exclude the ``params`` field by default because they are only necessary in - :meth:`qiskit_ibm_runtime.RuntimeJob.inputs`. diff --git a/releasenotes/notes/0.18/max_session_time-0bd8665656bf439c.yaml b/releasenotes/notes/0.18/max_session_time-0bd8665656bf439c.yaml deleted file mode 100644 index f5e0cf933..000000000 --- a/releasenotes/notes/0.18/max_session_time-0bd8665656bf439c.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -features: - - | - Added ``max_time`` parameter to ``IBMBackend.open_session()``. diff --git a/releasenotes/notes/0.18/queueinfo-5e1bb815228425bb.yaml b/releasenotes/notes/0.18/queueinfo-5e1bb815228425bb.yaml deleted file mode 100644 index 4ac119346..000000000 --- a/releasenotes/notes/0.18/queueinfo-5e1bb815228425bb.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -features: - - | - Added a method ``RuntimeJob.queue_info()`` to get the queue information - from the backend. This feature was transferred from ``qiskit_ibm_provider``. diff --git a/releasenotes/notes/0.19/consolidate-provider-code-b07fea8644aa8f43.yaml b/releasenotes/notes/0.19/consolidate-provider-code-b07fea8644aa8f43.yaml deleted file mode 100644 index 5edb74f18..000000000 --- a/releasenotes/notes/0.19/consolidate-provider-code-b07fea8644aa8f43.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -upgrade: - - | - `qiskit-ibm-provider` is pending deprecation, and therefore will no longer be a - dependency for `qiskit-ibm-runtime`. diff --git a/releasenotes/notes/0.19/fix-duration-patching-b80d45d77481dfa6.yaml b/releasenotes/notes/0.19/fix-duration-patching-b80d45d77481dfa6.yaml deleted file mode 100644 index bfe9cf25e..000000000 --- a/releasenotes/notes/0.19/fix-duration-patching-b80d45d77481dfa6.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -fixes: - - | - Fix the patching of :class:`.DynamicCircuitInstructions` for instructions - with durations that are not in units of ``dt``. -upgrade: - - | - Extend :meth:`.DynamicCircuitInstructions.from_backend` to extract and - patch durations from both :class:`.BackendV1` and :class:`.BackendV2` - objects. Also add :meth:`.DynamicCircuitInstructions.from_target` to use a - :class:`.Target` object instead. diff --git a/releasenotes/notes/0.19/fix-qpy-bug-739cefc2c9018d0b.yaml b/releasenotes/notes/0.19/fix-qpy-bug-739cefc2c9018d0b.yaml deleted file mode 100644 index 8969fba28..000000000 --- a/releasenotes/notes/0.19/fix-qpy-bug-739cefc2c9018d0b.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -fixes: - - | - Fixed an issue with the :func:`.qpy.dump` function, when the - ``use_symengine`` flag was set to a truthy object that evaluated to - ``True`` but was not actually the boolean ``True`` the generated QPY - payload would be corrupt. - diff --git a/releasenotes/notes/0.19/qiskit-1.0-compatible-6fbf17d2dd28cb48.yaml b/releasenotes/notes/0.19/qiskit-1.0-compatible-6fbf17d2dd28cb48.yaml deleted file mode 100644 index 53deecd60..000000000 --- a/releasenotes/notes/0.19/qiskit-1.0-compatible-6fbf17d2dd28cb48.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -upgrade: - - | - `qiskit-ibm-runtime` is now compatible with Qiskit versions `>= 0.45`, - including `1.0.0`. - - diff --git a/releasenotes/notes/0.2/primitives-sampler-estimator-93c361d72a4f28de.yaml b/releasenotes/notes/0.2/primitives-sampler-estimator-93c361d72a4f28de.yaml deleted file mode 100644 index 93d2f9e72..000000000 --- a/releasenotes/notes/0.2/primitives-sampler-estimator-93c361d72a4f28de.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -features: - - | - :class:`qiskit_ibm_runtime.IBMEstimator` and :class:`qiskit_ibm_runtime.IBMSampler` - classes now allow you to easily interact with the ``estimator`` and ``sampler`` - primitive programs. Refer to the examples in the respective class doc strings to learn - more about how to use them. \ No newline at end of file diff --git a/releasenotes/notes/0.20/dd-named-barrier-4f32f6fcb92e20f2.yaml b/releasenotes/notes/0.20/dd-named-barrier-4f32f6fcb92e20f2.yaml deleted file mode 100644 index 8f4a734db..000000000 --- a/releasenotes/notes/0.20/dd-named-barrier-4f32f6fcb92e20f2.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -features: - - | - Add ``dd_barrier`` optional input to :class:`.PadDynamicalDecoupling` - constructor to identify portions of the circuit to apply dynamical - decoupling (dd) on selectively. If this string is contained in the label of - a barrier in the circuit, dd is applied on the delays ending with it (on - the same qubits); otherwise, it is not applied. \ No newline at end of file diff --git a/releasenotes/notes/0.20/deprecate-abstract-circuits-d9bdc94b2be7ea21.yaml b/releasenotes/notes/0.20/deprecate-abstract-circuits-d9bdc94b2be7ea21.yaml deleted file mode 100644 index 666ce3e4b..000000000 --- a/releasenotes/notes/0.20/deprecate-abstract-circuits-d9bdc94b2be7ea21.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -deprecations: - - | - Circuits that do not match the target hardware definition will no longer be supported after March 1, 2024. - See the transpilation documentation (https://docs.quantum.ibm.com/transpile) for instructions to - transform circuits and the primitive examples (https://docs.quantum.ibm.com/run/primitives-examples) - to see this coupled with operator transformations. \ No newline at end of file diff --git a/releasenotes/notes/0.20/fix-durations-with-control-flow-0cf6b5c48c387ca8.yaml b/releasenotes/notes/0.20/fix-durations-with-control-flow-0cf6b5c48c387ca8.yaml deleted file mode 100644 index 5a3905e35..000000000 --- a/releasenotes/notes/0.20/fix-durations-with-control-flow-0cf6b5c48c387ca8.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -fixes: - - | - Fix assignment of instruction durations when scheduling circuits with - control flow. Prior to this fix, the indices for instructions on inner - blocks were not mapped to the physical indices in the outer dag. -other: - - | - The :class:`~InstructionDurations` `durations` input is now also required - for the constructor of :class:`~PadDelay`. diff --git a/releasenotes/notes/0.20/python-3-12-support-a0390cacfe596e5b.yaml b/releasenotes/notes/0.20/python-3-12-support-a0390cacfe596e5b.yaml deleted file mode 100644 index 9ff247953..000000000 --- a/releasenotes/notes/0.20/python-3-12-support-a0390cacfe596e5b.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -features: - - | - Python 3.12 is now supported. diff --git a/releasenotes/notes/0.20/session-modes-5c22b68620f8d690.yaml b/releasenotes/notes/0.20/session-modes-5c22b68620f8d690.yaml deleted file mode 100644 index f885fca4c..000000000 --- a/releasenotes/notes/0.20/session-modes-5c22b68620f8d690.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -features: - - | - Sessions will now be started with a new ``/sessions`` endpoint that allows for different - execution modes. Batch mode is now supported through :class:`~qiskit_ibm_runtime.Batch`, and - :class:`~qiskit_ibm_runtime.Session` will work the same as way as before. - Please see https://docs.quantum.ibm.com/run/sessions for more information. - - Note that ``Session`` and ``Batch`` created from ``qiskit-ibm-runtime`` prior to this release will no longer be - supported after March 31, 2024. Please update your ``qiskit-ibm-runtime`` version as soon as possible before this date. - - Also note that using simulators with sessions is no longer supported. Users can still start - sessions with simulators without any issues but a session will not actually be created. There will be no session ID. diff --git a/releasenotes/notes/0.20/sessions-endpoint-e617b028fe4a68c4.yaml b/releasenotes/notes/0.20/sessions-endpoint-e617b028fe4a68c4.yaml deleted file mode 100644 index 72012e5c4..000000000 --- a/releasenotes/notes/0.20/sessions-endpoint-e617b028fe4a68c4.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -features: - - | - Sessions started with :meth:`qiskit_ibm_runtime.IBMBackend.open_session` will use the - new ``/sessions`` endpoint. - - The sessions functionality will not change but note that ``backend.run()`` sessions - prior to this release will no longer be supported after March 31, 2024. - Please update your ``qiskit-ibm-runtime`` version as soon as possible before this date. \ No newline at end of file diff --git a/releasenotes/notes/0.21/fix-control-flow-d5a61dd5647acb42.yaml b/releasenotes/notes/0.21/fix-control-flow-d5a61dd5647acb42.yaml deleted file mode 100644 index 0031db5cc..000000000 --- a/releasenotes/notes/0.21/fix-control-flow-d5a61dd5647acb42.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - Fixed an issue with the :attr:`.IBMBackend.target` where it would - incorrectly exclude supported control flow operations (:class:`.IfElseOp`, - :class:`.WhileLoop`, etc.) if a given backend supported them. diff --git a/releasenotes/notes/0.21/isa-circuit-required-ed361bd65cef5ed8.yaml b/releasenotes/notes/0.21/isa-circuit-required-ed361bd65cef5ed8.yaml deleted file mode 100644 index 64301c557..000000000 --- a/releasenotes/notes/0.21/isa-circuit-required-ed361bd65cef5ed8.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -upgrade: - - | - Circuits that do not match the target hardware definition are no longer - supported by Qiskit Runtime primitives, unless ``channel_strategy="q-ctrl"`` - is used. See the transpilation documentation - (https://docs.quantum.ibm.com/transpile) for instructions to transform - circuits and the primitive examples - (https://docs.quantum.ibm.com/run/primitives-examples) to see - this coupled with operator transformations. diff --git a/releasenotes/notes/0.21/require-cloud-backend-38a74144347c735d.yaml b/releasenotes/notes/0.21/require-cloud-backend-38a74144347c735d.yaml deleted file mode 100644 index 9326e4323..000000000 --- a/releasenotes/notes/0.21/require-cloud-backend-38a74144347c735d.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -deprecations: - - | - In a future release, ``backend`` will be a required parameter for :class:`qiskit_ibm_runtime.Sampler`, and - :class:`qiskit_ibm_runtime.Estimator` if ``session`` is not specified, - even when using the ``ibm_cloud`` channel. - - It will also be a required parameter for - :class:`qiskit_ibm_runtime.Session` and - :class:`qiskit_ibm_runtime.Batch`. diff --git a/releasenotes/notes/0.21/retrieve-fake-backend-13fd3088aaac69e5.yaml b/releasenotes/notes/0.21/retrieve-fake-backend-13fd3088aaac69e5.yaml deleted file mode 100644 index e008a7b54..000000000 --- a/releasenotes/notes/0.21/retrieve-fake-backend-13fd3088aaac69e5.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -fixes: - - | - Fixed a bug where retrieving a fake backend through ``FakeProviderForBackendV2.backend()`` - would result in a type error. diff --git a/releasenotes/notes/0.21/update-isa-circuit-check-493b6e95d969abdb.yaml b/releasenotes/notes/0.21/update-isa-circuit-check-493b6e95d969abdb.yaml deleted file mode 100644 index eb522ffb1..000000000 --- a/releasenotes/notes/0.21/update-isa-circuit-check-493b6e95d969abdb.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -fixes: - - | - Fixes the check for ISA circuits to allow pulse gates and circuits that - don't have layout. diff --git a/releasenotes/notes/0.21/v2-primitives-ada671f4df7caa39.yaml b/releasenotes/notes/0.21/v2-primitives-ada671f4df7caa39.yaml deleted file mode 100644 index 9c64c8891..000000000 --- a/releasenotes/notes/0.21/v2-primitives-ada671f4df7caa39.yaml +++ /dev/null @@ -1,14 +0,0 @@ ---- -features: - - | - This release add a version 2 of the primitives - - :class:`~qiskit_ibm_runtime.SamplerV2` and - :class:`~qiskit_ibm_runtime.EstimatorV2`. - The emphasis of this new version is on performing vectorized calls to the - primitive ``run()`` methods, so that sweeps over parameter value sets and - observables can be efficiently specified. The sampler has also been - changed to return the outputs (e.g. bitstrings) from every shot, - rather than providing a counts-like return. - See the - `Migration Guide `_ - for more details on the changes and migration steps. diff --git a/releasenotes/notes/0.3/add-channel-deprecate-auth-4e021efeb527818c.yaml b/releasenotes/notes/0.3/add-channel-deprecate-auth-4e021efeb527818c.yaml deleted file mode 100644 index 089b27b2d..000000000 --- a/releasenotes/notes/0.3/add-channel-deprecate-auth-4e021efeb527818c.yaml +++ /dev/null @@ -1,17 +0,0 @@ ---- -upgrade: - - | - A new parameter ``channel`` has now been added to :class:`qiskit_ibm_runtime.IBMRuntimeService` - class and also to methods like :meth:`~qiskit_ibm_runtime.IBMRuntimeService.save_account`, - :meth:`~qiskit_ibm_runtime.IBMRuntimeService.saved_accounts` and - :meth:`~qiskit_ibm_runtime.IBMRuntimeService.delete_account`. It can be set to ``ibm_quantum`` - or ``ibm_cloud`` to authenticate to either of the two different channels through which - Qiskit Runtime service is currently offered. ``channel`` replaces the ``auth`` parameter which - has now been deprecated. -deprecations: - - | - The ``auth`` parameter to :class:`qiskit_ibm_runtime.IBMRuntimeService` class - and also to methods like :meth:`~qiskit_ibm_runtime.IBMRuntimeService.save_account`, - :meth:`~qiskit_ibm_runtime.IBMRuntimeService.saved_accounts` and - :meth:`~qiskit_ibm_runtime.IBMRuntimeService.delete_account` has now been deprecated - and will be removed in a future release. Please use the new ``channel`` parameter instead. diff --git a/releasenotes/notes/0.3/fix-error-single-circuit-89a0e7b64deedbaa.yaml b/releasenotes/notes/0.3/fix-error-single-circuit-89a0e7b64deedbaa.yaml deleted file mode 100644 index 184a4f2de..000000000 --- a/releasenotes/notes/0.3/fix-error-single-circuit-89a0e7b64deedbaa.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - Fixed `#291 `__ - where passing a single ``QuantumCircuit`` to sampler or estimator primitives - was throwing an error. diff --git a/releasenotes/notes/0.5/add-service-property-d6a076214c131d7a.yaml b/releasenotes/notes/0.5/add-service-property-d6a076214c131d7a.yaml deleted file mode 100644 index 55e814148..000000000 --- a/releasenotes/notes/0.5/add-service-property-d6a076214c131d7a.yaml +++ /dev/null @@ -1,11 +0,0 @@ ---- -features: - - | - The ``service`` object which is an instance of :class:`~qiskit_ibm_runtime.QiskitRuntimeService` - class can now be accessed from :class:`~qiskit_ibm_runtime.IBMBackend` class using the ``service`` - property. - - Ex:: - - backend = service.get_backend("ibmq_qasm_simulator") - backend.service # QiskitRuntimeService instance used to instantiate the backend diff --git a/releasenotes/notes/0.5/creation-date-filters-871a1ca3c0d96fda.yaml b/releasenotes/notes/0.5/creation-date-filters-871a1ca3c0d96fda.yaml deleted file mode 100644 index 5f00564ef..000000000 --- a/releasenotes/notes/0.5/creation-date-filters-871a1ca3c0d96fda.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -upgrade: - - | - :meth:`~qiskit_ibm_runtime.QiskitRuntimeService.jobs` has two new parameters, ``created_after`` - and ``created_before``. These can be used to filter jobs by creation date in local time. - diff --git a/releasenotes/notes/0.5/deprecate-indices-estimator-b5a2228d91431b91.yaml b/releasenotes/notes/0.5/deprecate-indices-estimator-b5a2228d91431b91.yaml deleted file mode 100644 index c8752b01d..000000000 --- a/releasenotes/notes/0.5/deprecate-indices-estimator-b5a2228d91431b91.yaml +++ /dev/null @@ -1,20 +0,0 @@ ---- -upgrade: - - | - The parameters ``circuit_indices`` and ``observable_indices`` when calling ``estimator`` - are now deprecated and will be removed in a future release. - You can now pass either indices or objects using the ``circuits`` and ``observables`` parameters. - - Ex:: - - with Estimator( - circuits=[qc1, qc2], - observables=[H1, H2, H3], - service=service, - options=options - ) as estimator: - # pass circuits and observables as indices - result = estimator(circuits=[0, 1], observables=[0, 1], parameter_values=[theta1, theta2]) - - # pass circuits and observables as objects - result = estimator(circuits=[qc1, qc2], observables=[H1, H3], parameter_values=[theta1, theta3]) diff --git a/releasenotes/notes/0.5/deprecate-indices-sampler-13a0b76158ad1392.yaml b/releasenotes/notes/0.5/deprecate-indices-sampler-13a0b76158ad1392.yaml deleted file mode 100644 index b999e4c6d..000000000 --- a/releasenotes/notes/0.5/deprecate-indices-sampler-13a0b76158ad1392.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -upgrade: - - | - The parameters ``circuit_indices`` and ``observable_indices`` when calling ``estimator`` - are now deprecated and will be removed in a future release. - You can now pass either indices or objects using the ``circuits`` and ``observables`` parameters. - - Ex:: - - with Sampler( - circuits=[qc1, qc2], - service=service, - options=options - ) as sampler: - # pass circuits as indices - result = sampler(circuits=[0, 1], parameter_values=[theta1, theta2]) - - # pass circuit as objects - result = sampler(circuits=[qc1, qc2], parameter_values=[theta2, theta3]) diff --git a/releasenotes/notes/0.5/filter-jobs-session-id-e8296c55ad75f789.yaml b/releasenotes/notes/0.5/filter-jobs-session-id-e8296c55ad75f789.yaml deleted file mode 100644 index f763b9d2d..000000000 --- a/releasenotes/notes/0.5/filter-jobs-session-id-e8296c55ad75f789.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -upgrade: - - | - The ``session_id``, which is the Job ID of the first job in a runtime session can now be used - as a filter in :meth:`~qiskit_ibm_runtime.QiskitRuntimeService.jobs` with the parameter - ``session_id``. diff --git a/releasenotes/notes/0.5/job-tags-support-465d3be18b20b306.yaml b/releasenotes/notes/0.5/job-tags-support-465d3be18b20b306.yaml deleted file mode 100644 index fb1f3480f..000000000 --- a/releasenotes/notes/0.5/job-tags-support-465d3be18b20b306.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -upgrade: - - | - :meth:`~qiskit_ibm_runtime.QiskitRuntimeService.run` now supports a new parameter, - ``job_tags``. These tags can be used when filtering jobs with - :meth:`~qiskit_ibm_runtime.QiskitRuntimeService.jobs`. diff --git a/releasenotes/notes/0.5/max-execution-time-ecdb69210afe3d89.yaml b/releasenotes/notes/0.5/max-execution-time-ecdb69210afe3d89.yaml deleted file mode 100644 index 3cb9a8237..000000000 --- a/releasenotes/notes/0.5/max-execution-time-ecdb69210afe3d89.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -upgrade: - - | - :meth:`~qiskit_ibm_runtime.QiskitRuntimeService.run` now supports a new parameter, - ``max_execution_time``, which can be used to override the default - program maximum execution time. It should be less than or equal to the - program maximum execution time. - diff --git a/releasenotes/notes/0.5/session-aware-scheduling-00a294cc67b7d13e.yaml b/releasenotes/notes/0.5/session-aware-scheduling-00a294cc67b7d13e.yaml deleted file mode 100644 index 0de962c73..000000000 --- a/releasenotes/notes/0.5/session-aware-scheduling-00a294cc67b7d13e.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -prelude: > - This release leverages the API and Queue enhancements to become - more runtime session aware. As a result when using the primitives (sampler and estimator), - runtime jobs in the same session will skip to the front of the queue, - thereby speeding up the runtime session, once it has started. \ No newline at end of file diff --git a/releasenotes/notes/0.5/sort-jobs-by-date-7df02bb34fec3055.yaml b/releasenotes/notes/0.5/sort-jobs-by-date-7df02bb34fec3055.yaml deleted file mode 100644 index 7dc50d3d0..000000000 --- a/releasenotes/notes/0.5/sort-jobs-by-date-7df02bb34fec3055.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -upgrade: - - | - :meth:`~qiskit_ibm_runtime.QiskitRuntimeService.jobs` has a new parameter, ``descending``. - This parameter defaults to ``True``, where jobs will be returned in descending order based on - creation date. - diff --git a/releasenotes/notes/0.5/upgrade-runtime-job-timeout-error-3e01617412bbc37f.yaml b/releasenotes/notes/0.5/upgrade-runtime-job-timeout-error-3e01617412bbc37f.yaml deleted file mode 100644 index 5ebf4f81a..000000000 --- a/releasenotes/notes/0.5/upgrade-runtime-job-timeout-error-3e01617412bbc37f.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -upgrade: - - | - ``RuntimeJobTimeoutError`` is now raised when the ``timeout`` set in - :meth:`~qiskit_ibm_runtime.RuntimeJob.result` or - :meth:`~qiskit_ibm_runtime.RuntimeJob.wait_for_final_state` expires. diff --git a/releasenotes/notes/0.6/load-qiskitrc-creds-4aac54737333e248.yaml b/releasenotes/notes/0.6/load-qiskitrc-creds-4aac54737333e248.yaml deleted file mode 100644 index ad1132e91..000000000 --- a/releasenotes/notes/0.6/load-qiskitrc-creds-4aac54737333e248.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -upgrade: - - | - When migrating from ``qiskit-ibmq-provider`` your ``ibm_quantum`` channel credentials - will get automatically copied over from the qiskitrc file - and a qiskit-ibm.json file will get created if one doesn't exist. - You have to just initialize :class:`~qiskit_ibm_runtime.QiskitRuntimeService` class without - passing any parameters to use this copied over default ``ibm_quantum`` account. - - Ex:: - - from qiskit_ibm_runtime import QiskitRuntimeService - service = QiskitRuntimeService() diff --git a/releasenotes/notes/0.6/not-authorized-error-31241cd68d8a26d7.yaml b/releasenotes/notes/0.6/not-authorized-error-31241cd68d8a26d7.yaml deleted file mode 100644 index cb368acc5..000000000 --- a/releasenotes/notes/0.6/not-authorized-error-31241cd68d8a26d7.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -upgrade: - - | - When initializing :class:`~qiskit_ibm_runtime.QiskitRuntimeService` and an invalid - token is used, ``IBMNotAuthorizedError`` will be raised instead of ``RequestsApiError``. diff --git a/releasenotes/notes/0.6/remove-ibm-estimator-7f0b4da07c23e859.yaml b/releasenotes/notes/0.6/remove-ibm-estimator-7f0b4da07c23e859.yaml deleted file mode 100644 index f90a4fa54..000000000 --- a/releasenotes/notes/0.6/remove-ibm-estimator-7f0b4da07c23e859.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -upgrade: - - | - ``IBMEstimator`` class which was deprecated earlier is now removed. Use - :class:`~qiskit_ibm_runtime.Estimator` class going forward. diff --git a/releasenotes/notes/0.6/remove-ibm-runtime-aa92d6051b8dcf53.yaml b/releasenotes/notes/0.6/remove-ibm-runtime-aa92d6051b8dcf53.yaml deleted file mode 100644 index d887b423e..000000000 --- a/releasenotes/notes/0.6/remove-ibm-runtime-aa92d6051b8dcf53.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -upgrade: - - | - ``IBMRuntimeService`` class which was deprecated earlier is now removed. Use - :class:`~qiskit_ibm_runtime.QiskitRuntimeService` class going forward. diff --git a/releasenotes/notes/0.6/remove-ibm-sampler-7779165095fd2a5f.yaml b/releasenotes/notes/0.6/remove-ibm-sampler-7779165095fd2a5f.yaml deleted file mode 100644 index 0244b4cca..000000000 --- a/releasenotes/notes/0.6/remove-ibm-sampler-7779165095fd2a5f.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -upgrade: - - | - ``IBMSampler`` class which was deprecated earlier is now removed. Use - :class:`~qiskit_ibm_runtime.Sampler` class going forward. diff --git a/releasenotes/notes/0.6/upgrade-qubit-properties-b5ff4a168ed0cc07.yaml b/releasenotes/notes/0.6/upgrade-qubit-properties-b5ff4a168ed0cc07.yaml deleted file mode 100644 index 72b038b87..000000000 --- a/releasenotes/notes/0.6/upgrade-qubit-properties-b5ff4a168ed0cc07.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -upgrade: - - | - :meth:`~qiskit_ibm_runtime.IBMBackend.qubit_properties` will now return a sub class - of :class:`~qiskit.providers.backend.QubitProperties` called - :class:`~qiskit_ibm_runtime.ibm_qubit_properties.IBMQubitProperties` and - will expose `anharmonicity` in addition to the `t1`, `t2` and `frequency` already exposed - by the :class:`~qiskit.providers.backend.QubitProperties` class. diff --git a/releasenotes/notes/0.7/add-sampler-error-check-20e5672c7ff17004.yaml b/releasenotes/notes/0.7/add-sampler-error-check-20e5672c7ff17004.yaml deleted file mode 100644 index 881012228..000000000 --- a/releasenotes/notes/0.7/add-sampler-error-check-20e5672c7ff17004.yaml +++ /dev/null @@ -1,7 +0,0 @@ - ---- -upgrade: - - | - Added a validation check to :meth:`~qiskit_ibm_runtime.Sampler.run`. - It raises an error if there is no classical bit. - diff --git a/releasenotes/notes/0.7/deprecated-programs-53fa730f52792bce.yaml b/releasenotes/notes/0.7/deprecated-programs-53fa730f52792bce.yaml deleted file mode 100644 index 6b5de13e2..000000000 --- a/releasenotes/notes/0.7/deprecated-programs-53fa730f52792bce.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -deprecations: - - | - Qiskit Runtime programs ``torch-train``, ``torch-infer``, ``sample-expval``, - ``sample-program``, and ``quantum_kernal_alignment`` have been deprecated - due to low usage. diff --git a/releasenotes/notes/0.7/exception-when-program-runs-too-long-cf80743eda83d601.yaml b/releasenotes/notes/0.7/exception-when-program-runs-too-long-cf80743eda83d601.yaml deleted file mode 100644 index 20f62d65f..000000000 --- a/releasenotes/notes/0.7/exception-when-program-runs-too-long-cf80743eda83d601.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -upgrade: - - | - Raise ``RuntimeJobMaxTimeoutError`` when a job runs for too long so that it can be handled appropriately by programs. \ No newline at end of file diff --git a/releasenotes/notes/0.7/fix-howto-retrieve-job-ef991e8d6b444096.yaml b/releasenotes/notes/0.7/fix-howto-retrieve-job-ef991e8d6b444096.yaml deleted file mode 100644 index 40b77e0e2..000000000 --- a/releasenotes/notes/0.7/fix-howto-retrieve-job-ef991e8d6b444096.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -fixes: - - | - Fixes the missing section on retrieving jobs in the how-to guide. diff --git a/releasenotes/notes/0.7/fix-sampler-result-509548c466fa3139.yaml b/releasenotes/notes/0.7/fix-sampler-result-509548c466fa3139.yaml deleted file mode 100644 index 4a8fceaab..000000000 --- a/releasenotes/notes/0.7/fix-sampler-result-509548c466fa3139.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -upgrade: - - | - :class:`~qiskit_ibm_runtime.Sampler` is updated to return ``SamplerResult`` - with ``SamplerResult.quasi_dists`` as a list of ``QuasiDistrbution``. - It used to set a list of ``dict`` as ``SamplerResult.quasi_dists``, - but it did not follow the design of ``SamplerResult``. diff --git a/releasenotes/notes/0.7/fix-terra-min-version-613f427851adfab0.yaml b/releasenotes/notes/0.7/fix-terra-min-version-613f427851adfab0.yaml deleted file mode 100644 index e0f8b71ba..000000000 --- a/releasenotes/notes/0.7/fix-terra-min-version-613f427851adfab0.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - Fixes issue `#428 `_ - by raising the minimum required ``qiskit-terra`` version to ``0.21.0``, since latest version - of ``qiskit-ibm-runtime`` is not compatible with ``0.20.0`` or earlier of ``qiskit-terra``. diff --git a/releasenotes/notes/0.7/flexible-options-d3f7ea8b9cd5c5c3.yaml b/releasenotes/notes/0.7/flexible-options-d3f7ea8b9cd5c5c3.yaml deleted file mode 100644 index 4ebd02c89..000000000 --- a/releasenotes/notes/0.7/flexible-options-d3f7ea8b9cd5c5c3.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -deprecations: - - | - Passing ``instance`` parameter to the - :meth:`qiskit_ibm_runtime.QiskitRuntimeService.run` has been deprecated. - Instead, you can pass the ``instance`` parameter inside the ``options`` - parameter. diff --git a/releasenotes/notes/0.7/flexible-session-16ee0d1cba4863cd.yaml b/releasenotes/notes/0.7/flexible-session-16ee0d1cba4863cd.yaml deleted file mode 100644 index ccd47c830..000000000 --- a/releasenotes/notes/0.7/flexible-session-16ee0d1cba4863cd.yaml +++ /dev/null @@ -1,98 +0,0 @@ ---- -prelude: > - There are significant changes to how primitives are invoked within a - session, and the options available to the primitives. Please review the - rest of the release notes and the tutorials for full information. -features: - - | - You can now invoke the same or different primitive programs multiple times - within a session. For example:: - - from qiskit_ibm_runtime import QiskitRuntimeService, Session, Sampler, Estimator, Options - from qiskit.test.reference_circuits import ReferenceCircuits - from qiskit.circuit.library import RealAmplitudes - from qiskit.quantum_info import SparsePauliOp - - # Initialize account. - service = QiskitRuntimeService() - - # Set options, which can be overwritten at job level. - options = Options(optimization_level=1) - - # Prepare inputs. - bell = ReferenceCircuits.bell() - psi = RealAmplitudes(num_qubits=2, reps=2) - H1 = SparsePauliOp.from_list([("II", 1), ("IZ", 2), ("XI", 3)]) - theta = [0, 1, 1, 2, 3, 5] - - with Session(service=service, backend="ibmq_qasm_simulator") as session: - # Submit a request to the Sampler primitive within the session. - sampler = Sampler(session=session, options=options) - job = sampler.run(circuits=bell) - print(f"Sampler results: {job.result()}") - - # Submit a request to the Estimator primitive within the session. - estimator = Estimator(session=session, options=options) - job = estimator.run( - circuits=[psi], observables=[H1], parameter_values=[theta] - ) - print(f"Estimator results: {job.result()}") - - | - A new :class:`qiskit_ibm_runtime.Options` class is introduced. This class - allows you to auto-complete options related to primitive programs. For example:: - - from qiskit_ibm_runtime import Session, Sampler, Options - from qiskit.test.reference_circuits import ReferenceCircuits - - options = Options() - options.optimization_level = 3 # This can be done using auto-complete. - - with Session(backend="ibmq_qasm_simulator") as session: - # Pass the options to Sampler. - sampler = Sampler(session=session, options=options) - - # Or at job level. - job = sampler.run(circuits=ReferenceCircuits.bell(), shots=4000) -upgrade: - - | - The experimental parameters ``transpilation_settings``, ``resilience_settings``, - and ``max_time`` to the `:class:`qiskit_ibm_runtime.Sampler` and - :class:`qiskit_ibm_runtime.Estimator` constructors have been removed. - You can instead use the :class:`qiskit_ibm_runtime.Options` class to specify - the settings, and ``max_time`` can be specified when starting a new session. - For example:: - - from qiskit_ibm_runtime import Session, Sampler, Options - - options = Options() - # This can be done using auto-complete. - option.optimization_level = 3 - options.resilience_level = 1 - - with Session(max_time="2h") as session: - # Pass the options to Sampler. - sampler = Sampler(session=session, options=options) -deprecations: - - | - Invoking :class:`qiskit_ibm_runtime.Sampler` and - :class:`qiskit_ibm_runtime.Estimator` as context managers has been deprecated. - You can instead use the `qiskit_ibm_runtime.Session` class to create a new - session and invoke one or more primitives within the session. - - As a result, passing input parameters, such as ``circuits``, ``observables``, - and ``parameter_values``, as well as ``service`` - to the constructors of ``Sampler`` and - ``Estimator`` has also been deprecated. The inputs can now be passed to the - ``run()`` method of the primitive classes, and ``service`` can be passed - to :class:`qiskit_ibm_runtime.Session` when starting a new session. - - | - Passing ``skip_transpilation`` to the `:class:`qiskit_ibm_runtime.Sampler` and - :class:`qiskit_ibm_runtime.Estimator` constructors - has been deprecated. You can instead use the :class:`qiskit_ibm_runtime.Options` - class to specify this option. For example:: - - from qiskit_ibm_runtime import Options - - options = Options() - # This can be done using auto-complete. - options.transpilation.skip_transpilation = True diff --git a/releasenotes/notes/0.7/job-metrics-endpoint-82d61cf269c27933.yaml b/releasenotes/notes/0.7/job-metrics-endpoint-82d61cf269c27933.yaml deleted file mode 100644 index d38270829..000000000 --- a/releasenotes/notes/0.7/job-metrics-endpoint-82d61cf269c27933.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -features: - - | - :class:`qiskit_ibm_runtime.RuntimeJob` has a new method - :meth:`~qiskit_ibm_runtime.RuntimeJob.metrics`. This method returns - the metrics of a job, which includes timestamp information. diff --git a/releasenotes/notes/0.7/job_id_backend_attr-20dffa6335e508f4.yaml b/releasenotes/notes/0.7/job_id_backend_attr-20dffa6335e508f4.yaml deleted file mode 100644 index 0c3f9f6bb..000000000 --- a/releasenotes/notes/0.7/job_id_backend_attr-20dffa6335e508f4.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -deprecations: - - | - ``job_id`` and ``backend`` attributes of :class:`qiskit_ibm_runtime.RuntimeJob` - have been deprecated. Please use :meth:`qiskit_ibm_runtime.RuntimeJob.job_id` - and :meth:`qiskit_ibm_runtime.RuntimeJob.backend` methods instead. -upgrade: - - | - The :class:`~qiskit_ibm_runtime.RuntimeJob` class is now a subclass of - :class:`qiskit.providers.Job`. diff --git a/releasenotes/notes/0.7/options_kwargs-70805bc4464691a4.yaml b/releasenotes/notes/0.7/options_kwargs-70805bc4464691a4.yaml deleted file mode 100644 index 27b499d6f..000000000 --- a/releasenotes/notes/0.7/options_kwargs-70805bc4464691a4.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -features: - - | - :class:`qiskit_ibm_runtime.Options` class now accepts arbitrary - keyword arguments. This allows users to specify new options to the - primitive programs without upgrading ``qiskit_ibm_runtime``. These - arbitrary keyword arguments, however, are not validated. diff --git a/releasenotes/notes/0.7/parameterize-service-channel-d14de7391dfb5ee1.yaml b/releasenotes/notes/0.7/parameterize-service-channel-d14de7391dfb5ee1.yaml deleted file mode 100644 index 20888ad56..000000000 --- a/releasenotes/notes/0.7/parameterize-service-channel-d14de7391dfb5ee1.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -features: - - | - The :class:`qiskit_ibm_runtime.QiskitRuntimeService` ``channel`` can now be stored - as an environment variable, ``QISKIT_IBM_CHANNEL``. This way, when using Runtime - Primitives, the service does not have to be instantiated manually and can instead - be created directly from environment variables. - diff --git a/releasenotes/notes/0.7/primitives-callback-80a7c2dcda960f4d.yaml b/releasenotes/notes/0.7/primitives-callback-80a7c2dcda960f4d.yaml deleted file mode 100644 index 393b8562b..000000000 --- a/releasenotes/notes/0.7/primitives-callback-80a7c2dcda960f4d.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -features: - - | - The :class:`qiskit_ibm_runtime.options.EnvironmentOptions` class now - accepts a ``callback`` parameter. - This parameter can be used to stream the interim and final results of the - primitives. diff --git a/releasenotes/notes/0.7/refactor-caching-programs-c49b517df7d2f702.yaml b/releasenotes/notes/0.7/refactor-caching-programs-c49b517df7d2f702.yaml deleted file mode 100644 index 743643b96..000000000 --- a/releasenotes/notes/0.7/refactor-caching-programs-c49b517df7d2f702.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -upgrade: - - | - Since some accounts have many runtime programs, caching a list of all programs - on the first call of :meth:`~qiskit_ibm_runtime.QiskitRuntimeService.programs` - has been removed. Instead, programs will only be cached up to the ``limit`` given, - which has a default value of 20. - - diff --git a/releasenotes/notes/0.7/runtime-options-38915f0a5cee60cb.yaml b/releasenotes/notes/0.7/runtime-options-38915f0a5cee60cb.yaml deleted file mode 100644 index 695e3f3c8..000000000 --- a/releasenotes/notes/0.7/runtime-options-38915f0a5cee60cb.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -deprecations: - - | - The ``backend_name`` attribute in :class:`qiskit_ibm_runtime.RuntimeOptions` - is deprecated and replaced by ``backend``. diff --git a/releasenotes/notes/0.7/tags-max-time-dc170df8d1bc8c25.yaml b/releasenotes/notes/0.7/tags-max-time-dc170df8d1bc8c25.yaml deleted file mode 100644 index ea612f540..000000000 --- a/releasenotes/notes/0.7/tags-max-time-dc170df8d1bc8c25.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -features: - - | - The :class:`qiskit_ibm_runtime.Options` class now accepts - ``max_execution_time`` as a first level option and ``job_tags`` - as an option under ``environment``. - :class:`qiskit_ibm_runtime.RuntimeOptions` has also been updated - to include these two parameters. -deprecations: - - | - Passing ``job_tags`` and ``max_execution_time`` as parameters to - :class:`qiskit_ibm_runtime.QiskitRuntimeService` has been deprecated. Please - pass them inside ``options``. diff --git a/releasenotes/notes/0.7/upgrade-terra-80a543c559e259ce.yaml b/releasenotes/notes/0.7/upgrade-terra-80a543c559e259ce.yaml deleted file mode 100644 index bbefa523d..000000000 --- a/releasenotes/notes/0.7/upgrade-terra-80a543c559e259ce.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -upgrade: - - | - This version of qiskit-ibm-runtime requires qiskit-terra version 0.22 or - higher. The ``requirements.txt`` file has been updated accordingly. diff --git a/releasenotes/notes/0.8/default-resilience-level-8122033dd1369bc8.yaml b/releasenotes/notes/0.8/default-resilience-level-8122033dd1369bc8.yaml deleted file mode 100644 index eab412dfb..000000000 --- a/releasenotes/notes/0.8/default-resilience-level-8122033dd1369bc8.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -upgrade: - - | - The default ``resilience_level`` option for has been changed from 0 to 1. - In addition, the default ``optimization_level`` option has been changed - from 1 to 3. -deprecations: - - | - The transpilation options ``translation_method`` and ``timing_constraints`` - have been deprecated. diff --git a/releasenotes/notes/0.8/python-3.10-support-904322454d2d504e.yaml b/releasenotes/notes/0.8/python-3.10-support-904322454d2d504e.yaml deleted file mode 100644 index b64cf8f84..000000000 --- a/releasenotes/notes/0.8/python-3.10-support-904322454d2d504e.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -features: - - | - Python 3.10 is now supported. diff --git a/releasenotes/notes/0.8/resilience_settings-80eb23a095f0381c.yaml b/releasenotes/notes/0.8/resilience_settings-80eb23a095f0381c.yaml deleted file mode 100644 index 41ce7a26b..000000000 --- a/releasenotes/notes/0.8/resilience_settings-80eb23a095f0381c.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -features: - - | - Advanced resilience options can now be set under ``options.resilience``. - See :class:`qiskit_ibm_runtime.options.ResilienceOptions` for all - available options. diff --git a/releasenotes/notes/0.8/separate-decoders-dde5bf7d051038e6.yaml b/releasenotes/notes/0.8/separate-decoders-dde5bf7d051038e6.yaml deleted file mode 100644 index 201a14c37..000000000 --- a/releasenotes/notes/0.8/separate-decoders-dde5bf7d051038e6.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -features: - - | - You can now specify a pair of result decoders for the ``result_decoder`` - parameter of :meth:`qiskit_ibm_runtime.QiskitRuntimeService.run` method. - If a pair is specified, the first one is used to decode interim results - and the second the final results. diff --git a/releasenotes/notes/0.8/use-backend-service-020daf6e4a4d044e.yaml b/releasenotes/notes/0.8/use-backend-service-020daf6e4a4d044e.yaml deleted file mode 100644 index 8fd174637..000000000 --- a/releasenotes/notes/0.8/use-backend-service-020daf6e4a4d044e.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -fixes: - - | - If a :class:`qiskit_ibm_runtime.IBMBackend` instance is passed to - the :class:`qiskit_ibm_runtime.Session` constructor, the service used - to initialize the ``IBMBackend`` instance is used for the session - instead of the default account service. diff --git a/releasenotes/notes/0.9/accept_level_1_options-06c09a67a9c23feb.yaml b/releasenotes/notes/0.9/accept_level_1_options-06c09a67a9c23feb.yaml deleted file mode 100644 index 1384093ec..000000000 --- a/releasenotes/notes/0.9/accept_level_1_options-06c09a67a9c23feb.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -upgrade: - - | - Accept all options on given on level 1 and assign them to the appropriate hierarchical option type. - For example, if the user provides ``options = {"shots": 10}`` as input to Sampler/Estimator, this will - be interpreted as ``options = {"execution: {"shots": 10}}``. diff --git a/releasenotes/notes/0.9/additional-options-validation-999888470cbd206e.yaml b/releasenotes/notes/0.9/additional-options-validation-999888470cbd206e.yaml deleted file mode 100644 index df609f671..000000000 --- a/releasenotes/notes/0.9/additional-options-validation-999888470cbd206e.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -features: - - | - Added methods to validate input options to ``transpilation`` and ``environment`` options. diff --git a/releasenotes/notes/0.9/closing-session-a64edf80ee35fee2.yaml b/releasenotes/notes/0.9/closing-session-a64edf80ee35fee2.yaml deleted file mode 100644 index ee6f368fa..000000000 --- a/releasenotes/notes/0.9/closing-session-a64edf80ee35fee2.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -fixes: - - | - Fixed a bug where jobs that did not run before a session closes - are not actually run as a part of that session. Jobs should run as a part - of a session even if that session is closed by the exit of the - context manager. diff --git a/releasenotes/notes/0.9/custom-gate-transpile-bug-61b64e4937269f28.yaml b/releasenotes/notes/0.9/custom-gate-transpile-bug-61b64e4937269f28.yaml deleted file mode 100644 index aae4a3a8f..000000000 --- a/releasenotes/notes/0.9/custom-gate-transpile-bug-61b64e4937269f28.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - ``ECRGate`` and ``CZGate`` mappings have been added to the ``Target`` - constructor to fix a tranpile bug. - diff --git a/releasenotes/notes/0.9/default-optimization-level-3197ff933dfcfa4f.yaml b/releasenotes/notes/0.9/default-optimization-level-3197ff933dfcfa4f.yaml deleted file mode 100644 index fe2612fbe..000000000 --- a/releasenotes/notes/0.9/default-optimization-level-3197ff933dfcfa4f.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -upgrade: - - | - Changed the default values for ``optimization_level`` and for ``resilience_level`` - in :class:`qiskit_ibm_runtime.Options`. If their values are defined by the user, they are not modified. - If not set, if the backend is a noiseless simulator then ``optimization_level`` is set to 1 and - ``resilience_level`` is set to 0; Otherwise, they are be set to 3 and 1 respectively. diff --git a/releasenotes/notes/0.9/error-level-default-bug-64335ef05f1547fa.yaml b/releasenotes/notes/0.9/error-level-default-bug-64335ef05f1547fa.yaml deleted file mode 100644 index 743d8e4ca..000000000 --- a/releasenotes/notes/0.9/error-level-default-bug-64335ef05f1547fa.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - Fixed a bug where the default values for ``optimization_level`` and for ``resilience_level`` - were not being set correctly. - diff --git a/releasenotes/notes/0.9/error-lvl-defaults-no-backend-95fba0e99884314a.yaml b/releasenotes/notes/0.9/error-lvl-defaults-no-backend-95fba0e99884314a.yaml deleted file mode 100644 index ef2f4f33f..000000000 --- a/releasenotes/notes/0.9/error-lvl-defaults-no-backend-95fba0e99884314a.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -fixes: - - | - Fixed an issue where if no backend was selected, ``optimization_level`` and ``resilience_level`` - would default to ``None``, causing the job to fail. diff --git a/releasenotes/notes/0.9/filter-faulty-qubits-caacabd23a7bd0d4.yaml b/releasenotes/notes/0.9/filter-faulty-qubits-caacabd23a7bd0d4.yaml deleted file mode 100644 index c497c043a..000000000 --- a/releasenotes/notes/0.9/filter-faulty-qubits-caacabd23a7bd0d4.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -upgrade: - - | - When constructing a backend :class:`qiskit.transpiler.Target`, faulty qubits and gates from the backend - configuration will be filtered out. \ No newline at end of file diff --git a/releasenotes/notes/0.9/fix_resilience_input-0a7497265109794e.yaml b/releasenotes/notes/0.9/fix_resilience_input-0a7497265109794e.yaml deleted file mode 100644 index 586247978..000000000 --- a/releasenotes/notes/0.9/fix_resilience_input-0a7497265109794e.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - When creating an Option object and passing an input option to ``resilience_options``, this option was - included in ``resilience_options``, but the other, default options were removed. - This was fixed, so now inputs are handled correctly, like other option types. diff --git a/releasenotes/notes/0.9/honor-instance-param-37b14111489364b0.yaml b/releasenotes/notes/0.9/honor-instance-param-37b14111489364b0.yaml deleted file mode 100644 index cfa57acdd..000000000 --- a/releasenotes/notes/0.9/honor-instance-param-37b14111489364b0.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - If an instance is passed in to :meth:`qiskit_ibm_runtime.QiskitRuntimeService.get_backend` and then the - backend is used in a session, all jobs within the session will be run from the original - instance passed in. diff --git a/releasenotes/notes/0.9/input_validation-53a3d9a3a860a323.yaml b/releasenotes/notes/0.9/input_validation-53a3d9a3a860a323.yaml deleted file mode 100644 index cc2c72ed4..000000000 --- a/releasenotes/notes/0.9/input_validation-53a3d9a3a860a323.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -upgrade: - - | - Added error messages in case the user defines unsupported values - for 'optimization_level' or for 'resilience_level'. - Added validation checking for options given as input to ``resilience``. - Previously, this validation was done on the server side. By adding them - on the client side, response will be much faster upon failure. - The environment variable ``QISKIT_RUNTIME_SKIP_OPTIONS_VALIDATION`` - is used to control validation. If set, validation will be skipped. diff --git a/releasenotes/notes/0.9/jobs-backend-filter-05c55c56a7ebaa05.yaml b/releasenotes/notes/0.9/jobs-backend-filter-05c55c56a7ebaa05.yaml deleted file mode 100644 index 956950b9a..000000000 --- a/releasenotes/notes/0.9/jobs-backend-filter-05c55c56a7ebaa05.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -upgrade: - - | - :meth:`qiskit_ibm_runtime.QiskitRuntimeService.jobs` now has a ``backend_name`` parameter - that can be used to only return jobs run with the specified backend. diff --git a/releasenotes/notes/0.9/lazy-loading-backend-configs-0b82bdc374ed962c.yaml b/releasenotes/notes/0.9/lazy-loading-backend-configs-0b82bdc374ed962c.yaml deleted file mode 100644 index 6bcb937fc..000000000 --- a/releasenotes/notes/0.9/lazy-loading-backend-configs-0b82bdc374ed962c.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -upgrade: - - | - Backend configurations are no longer loaded when :class:`~qiskit_ibm_runtime.QiskitRuntimeService` - is initialized. Instead, the configuration is only loaded and cached during - :meth:`~qiskit_ibm_runtime.QiskitRuntimeService.get_backend` and - :meth:`~qiskit_ibm_runtime.QiskitRuntimeService.backends`. \ No newline at end of file diff --git a/releasenotes/notes/0.9/post-timeout-a0928a23941f503b.yaml b/releasenotes/notes/0.9/post-timeout-a0928a23941f503b.yaml deleted file mode 100644 index 70ab4137d..000000000 --- a/releasenotes/notes/0.9/post-timeout-a0928a23941f503b.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -fixes: - - | - Fixes the issue wherein submitting a large job fails due to write operation - timeout. diff --git a/releasenotes/notes/0.9/refresh-job-backend-1c4f9cbfa30edad4.yaml b/releasenotes/notes/0.9/refresh-job-backend-1c4f9cbfa30edad4.yaml deleted file mode 100644 index 537f65ac1..000000000 --- a/releasenotes/notes/0.9/refresh-job-backend-1c4f9cbfa30edad4.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -upgrade: - - | - If a job is returned without a backend, retrieving the backend through - :meth:`qiskit_ibm_runtime.RuntimeJob.backend` will re-retrieve data from - the server and attempt to update the backend. Additionally, ``job_id`` and ``backend``, - which were deprecated attributes of :class:`qiskit_ibm_runtime.RuntimeJob` have now - been removed. - diff --git a/releasenotes/notes/0.9/remove-blueprint-decompose-e40327f8a1d7fc7a.yaml b/releasenotes/notes/0.9/remove-blueprint-decompose-e40327f8a1d7fc7a.yaml deleted file mode 100644 index 2f597f1ab..000000000 --- a/releasenotes/notes/0.9/remove-blueprint-decompose-e40327f8a1d7fc7a.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -fixes: - - | - Removed additional decomposition of ``BlueprintCircuit``\s in the JSON encoder. This was - introduced as a bugfix, but has since been fixed. Still doing the decomposition led to - possible problems if the decomposed circuit was not in the correct basis set of the backend - anymore. diff --git a/releasenotes/notes/0.9/remove-depreacted-f9abe2c7a47c3062.yaml b/releasenotes/notes/0.9/remove-depreacted-f9abe2c7a47c3062.yaml deleted file mode 100644 index 335b040d9..000000000 --- a/releasenotes/notes/0.9/remove-depreacted-f9abe2c7a47c3062.yaml +++ /dev/null @@ -1,16 +0,0 @@ ---- -deprecations: - - | - The deprecated arguments ``circuits``, ``parameters``, ``service``, and - ``skip_transpilation`` have been removed from :class:`~qiskit_ibm_runtime.Sampler`. - - Similarly, the deprecated arguments ``circuits``, ``observables``, ``parameters``, ``service``, and - ``skip_transpilation`` have been removed from :class:`~qiskit_ibm_runtime.Estimator`. - - In :class:`~qiskit_ibm_runtime.QiskitRuntimeService`, the ``auth`` parameter has been removed. Additionally, - the ``instance``, ``job_tags``, and ``max_execution_time`` paramters have been removed from - :meth:`qiskit_ibm_runtime.QiskitRuntimeService.run`. They can be passed in through - :class:`~qiskit_ibm_runtime.RuntimeOptions` instead. - - Within :class:`~qiskit_ibm_runtime.RuntimeOptions`, ``backend_name`` is no longer supported. Please use - ``backend`` instead. diff --git a/releasenotes/notes/0.9/retrieve-options-bug-edaed4cd5286f915.yaml b/releasenotes/notes/0.9/retrieve-options-bug-edaed4cd5286f915.yaml deleted file mode 100644 index 536774893..000000000 --- a/releasenotes/notes/0.9/retrieve-options-bug-edaed4cd5286f915.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - Fixed a bug where retrieving a job from a backend without ``noise_model`` - or ``seed_simulator`` options would result in a key error. - diff --git a/releasenotes/notes/0.9/runtime-job-properties-4b85f754bc84d56f.yaml b/releasenotes/notes/0.9/runtime-job-properties-4b85f754bc84d56f.yaml deleted file mode 100644 index de6184a85..000000000 --- a/releasenotes/notes/0.9/runtime-job-properties-4b85f754bc84d56f.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -upgrade: - - | - :meth:`~qiskit_ibm_runtime.RuntimeJob.session_id` and :meth:`~qiskit_ibm_runtime.RuntimeJob.tags` - were added for an easy way to return the session_id and job_tags of a job. diff --git a/releasenotes/notes/0.9/session-backend-option-26ad05fcb7c96dc6.yaml b/releasenotes/notes/0.9/session-backend-option-26ad05fcb7c96dc6.yaml deleted file mode 100644 index 7cced4225..000000000 --- a/releasenotes/notes/0.9/session-backend-option-26ad05fcb7c96dc6.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -deprecations: - - | - ``backend`` is no longer a supported option when using :meth:`qiskit_ibm_runtime.Session.run`. - Sessions do not support multiple cross backends. Additionally, an exception will be raised - if a backend passed in through options does not match the original session backend in an - active session. - diff --git a/releasenotes/notes/0.9/session-time-param-b02d1513d9754b52.yaml b/releasenotes/notes/0.9/session-time-param-b02d1513d9754b52.yaml deleted file mode 100644 index db923b514..000000000 --- a/releasenotes/notes/0.9/session-time-param-b02d1513d9754b52.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -features: - - | - Added a new argument called ``session_time`` to the program_run method and - :class:`qiskit_ibm_runtime.RuntimeOptions`. Now values entered by the user for session ``max_time`` - will be sent to the server side as ``session_time``. This allows users to specify different values - for session ``max_time`` and ``max_execution_time``. \ No newline at end of file diff --git a/releasenotes/notes/0.9/shorten-error-messages-8f955bf26ad17f96.yaml b/releasenotes/notes/0.9/shorten-error-messages-8f955bf26ad17f96.yaml deleted file mode 100644 index 496f6972c..000000000 --- a/releasenotes/notes/0.9/shorten-error-messages-8f955bf26ad17f96.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -other: - - | - Since error messages from a failing job may be long, we shortened them so that they begin from the last - ``Traceback`` in the message. diff --git a/releasenotes/notes/0.9/target-history-93e8eca3abf49230.yaml b/releasenotes/notes/0.9/target-history-93e8eca3abf49230.yaml deleted file mode 100644 index 880cd306a..000000000 --- a/releasenotes/notes/0.9/target-history-93e8eca3abf49230.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -features: - - | - Added the method :meth:`~qiskit_ibm_runtime.IBMBackend.target_history`. - This method is similar to :meth:`~qiskit_ibm_runtime.IBMBackend.target`. - The difference is that the new method enables the user to pass a `datetime` parameter, - to retrieve historical data from the backend. diff --git a/releasenotes/notes/0.9/user-defined-filename-for-account-710cb32e812b3bd8.yaml b/releasenotes/notes/0.9/user-defined-filename-for-account-710cb32e812b3bd8.yaml deleted file mode 100644 index e3b61a698..000000000 --- a/releasenotes/notes/0.9/user-defined-filename-for-account-710cb32e812b3bd8.yaml +++ /dev/null @@ -1,17 +0,0 @@ ---- -upgrade: - - | - Allow the user to store account details in a file specified by the user in the parameter. - ``filename``. The default remains `~/.qiskit/qiskit-ibm.json`. Example of usage: - Ex:: - - QiskitRuntimeService.save_account(channel="ibm_quantum", - filename="~/my_account_file.json", - name = "my_account", - token="my_token") - service = QiskitRuntimeService(channel="ibm_quantum", - filename="~/my_account_file.json", - name = "my_account",) - - - diff --git a/releasenotes/notes/0.9/warning_on_unsupported_options-9a96d7f32a487d00.yaml b/releasenotes/notes/0.9/warning_on_unsupported_options-9a96d7f32a487d00.yaml deleted file mode 100644 index 013cc6ea6..000000000 --- a/releasenotes/notes/0.9/warning_on_unsupported_options-9a96d7f32a487d00.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -upgrade: - - | - Added a user warning when the user passes an option that is not supported - in Options. diff --git a/requirements-dev.txt b/requirements-dev.txt index 7236cd015..9cc86ef00 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -22,5 +22,5 @@ Sphinx>=6 sphinx-automodapi sphinx-autodoc-typehints<=1.19.2 jupyter-sphinx -reno>=2.11.0 -sphinxcontrib-katex==0.9.9 \ No newline at end of file +sphinxcontrib-katex==0.9.9 +packaging diff --git a/tools/concat_release_notes.py b/tools/concat_release_notes.py new file mode 100644 index 000000000..5692d4579 --- /dev/null +++ b/tools/concat_release_notes.py @@ -0,0 +1,47 @@ +from packaging import version +from pathlib import Path + + +def get_root_path() -> Path: + return Path(__file__).resolve().parent.parent + + +def get_version_from_path(path: Path) -> str: + # For unreleased.rst, use a high version number we'll never reach so that + # unreleased always shows up as the newest entry. + return "99.0.9" if path.stem == "unreleased" else path.stem + + +def sort_release_notes_paths(release_notes_paths: Path) -> list[Path]: + return sorted( + (fp for fp in release_notes_paths.iterdir() if fp.suffix == ".rst"), + key=lambda x: version.parse(get_version_from_path(x)), + reverse=True, + ) + + +def generate_header(output_file: Path) -> None: + output_file.write_text( + "=======================================\n\ +Qiskit Runtime IBM Client release notes\n\ +=======================================\n\ +\n\ +.. towncrier release notes start\n" + ) + + +def concat_release_notes(output_file: Path, release_notes_paths: list[Path]) -> None: + with output_file.open("a") as file: + for release_note in release_notes_paths: + file.write(f"\n{release_note.read_text()}") + + +def main() -> None: + output_file = get_root_path() / "docs/release_notes.rst" + release_notes_paths = sort_release_notes_paths(get_root_path() / "release-notes") + generate_header(output_file) + concat_release_notes(output_file, release_notes_paths) + + +if __name__ == "__main__": + main() diff --git a/tox.ini b/tox.ini index 5280da0e9..35580b13c 100644 --- a/tox.ini +++ b/tox.ini @@ -40,6 +40,7 @@ envdir = .tox/docs deps = -r requirements-dev.txt commands = + python tools/concat_release_notes.py sphinx-build -j auto -W -b html {posargs} {toxinidir}/docs {toxinidir}/docs/_build/html [testenv:docs-clean]