Skip to content

Commit

Permalink
Prepare release 0.24.0 (#1738)
Browse files Browse the repository at this point in the history
* Prepare release 0.24.0

* add latest release note
  • Loading branch information
kt474 authored Jun 11, 2024
1 parent 4ae764b commit b2b47d0
Show file tree
Hide file tree
Showing 21 changed files with 119 additions and 88 deletions.
114 changes: 114 additions & 0 deletions release-notes/0.24.0.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
0.24.0 (2024-06-10)
===================

Deprecation Notes
-----------------

- ``name`` will now be a required parameter in
`backend() <https://docs.quantum.ibm.com/api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService#backend>`__.
``backend()`` will no longer return the first backend out of all backends if ``name`` is not provided. (`1147 <https://github.com/Qiskit/qiskit-ibm-runtime/pull/1147>`__)
- After the removal of custom programs, the following methods are being deprecated and renamed.
:meth:`qiskit_ibm_runtime.QiskitRuntimeService.run` is deprecated and will be replaced by a private method
:meth:`qiskit_ibm_runtime.QiskitRuntimeService._run`.

:meth:`qiskit_ibm_runtime.Session.run` is deprecated and will be replaced by a private method
:meth:`qiskit_ibm_runtime.Session._run`.

:meth:`qiskit_ibm_runtime.RuntimeJob.program_id` is deprecated and will be replaced by
:meth:`qiskit_ibm_runtime.RuntimeJob.primitive_id`. (`1238 <https://github.com/Qiskit/qiskit-ibm-runtime/pull/1238>`__)
- The ``backend`` argument in `Sampler <https://docs.quantum.ibm.com/run/primitives-get-started#3-initialize-the-qiskit-runtime-sampler>`__
and `Estimator <https://docs.quantum.ibm.com/run/primitives-get-started#3-initialize-qiskit-runtime-estimator>`__ has been deprecated.
Please use ``mode`` instead.
The ``session`` argument in `Sampler <https://docs.quantum.ibm.com/run/primitives-get-started#3-initialize-the-qiskit-runtime-sampler>`__
and `Estimator <https://docs.quantum.ibm.com/run/primitives-get-started#3-initialize-qiskit-runtime-estimator>`__ has also been deprecated.
Please use ``mode`` instead. (`1556 <https://github.com/Qiskit/qiskit-ibm-runtime/pull/1556>`__)
- :meth:`qiskit_ibm_runtime.QiskitRuntimeService.get_backend` is deprecated. Please
:meth:`qiskit_ibm_runtime.QiskitRuntimeService.backend` use instead.
The V1 fake backends, :class:`.FakeBackend`, along with :class:`.FakeProvider` are also
being deprecated in favor of the V2 fake backends and :class:`.FakeProviderForBackendV2`. (`1689 <https://github.com/Qiskit/qiskit-ibm-runtime/pull/1689>`__)
- Specifying options without the full dictionary structure is deprecated. Instead, pass
in a fully structured dictionary. For example, use ``{'environment': {'log_level': 'INFO'}}``
instead of ``{'log_level': 'INFO'}``. (`1731 <https://github.com/Qiskit/qiskit-ibm-runtime/pull/1731>`__)


New Features
------------

- Related to the execution modes, Sampler and Estimator now include a ``mode`` argument. The ``mode`` parameter
can be a Backend, Session, Batch, or None. As a result, the backend name has been deprecated, and will
no longer be supported as a valid execution mode. (`1556 <https://github.com/Qiskit/qiskit-ibm-runtime/pull/1556>`__)
- The `ZneOptions.amplifier` option was added, which can be one of these strings:

* ``"gate_folding"`` (default) uses 2-qubit gate folding to amplify noise. If the noise
factor requires amplifying only a subset of the gates, then these gates are chosen
randomly.
* ``"gate_folding_front"`` uses 2-qubit gate folding to amplify noise. If the noise
factor requires amplifying only a subset of the gates, then these gates are selected
from the front of the topologically ordered DAG circuit.
* ``"gate_folding_back"`` uses 2-qubit gate folding to amplify noise. If the noise
factor requires amplifying only a subset of the gates, then these gates are selected
from the back of the topologically ordered DAG circuit. (`1679 <https://github.com/Qiskit/qiskit-ibm-runtime/pull/1679>`__)

- When saving an account, there is a new parameter, ``private_endpoint`` that if set to ``True``, allows
users to connect to a private IBM Cloud API. This parameter can also be used when the service is initialized, for example:
``QiskitRuntimeService(private_endpoint = True)``. (`1699 <https://github.com/Qiskit/qiskit-ibm-runtime/pull/1699>`__)
- New opt-in feature to support fractional gates is added to :class:`.IBMBackend`.
IBM backends currently support dynamic circuits and fractional gates exclusively and
the two features cannot be used in the same primitive job.
In addition, some error mitigation protocols you can use with the estimator primitive,
such as PEC or PEA, may not support gate twirling with the fractional gates.
Since Qiskit Target model doesn't represent such constraint,
we adopted the opt-in approach, where your backend target includes only
fractional gates (control flow instructions) when the backend is (not) opted.
This feature is controlled when you retrieve the target backend from the :class:`.QiskitRuntimeService`.

.. code-block:: python
from qiskit_ibm_runtime import QiskitRuntimeService
backend = QiskitRuntimeService(channel="ibm_quantum").backends(
"name_of_your_backend",
use_fractional_gates=True,
)[0]
When the fractional feature is enabled, transpiled circuits may have
shorter depth compared with the conventional IBM basis gates, e.g. [sx, rz, ecr].

When you use control flow instructions, e.g. ``if_else``, in your circuit,
you must disable the fractional gate feature to get executable ISA circuits.
The choice of the instruction set is now responsibility of users.

Note that this pattern may be modified or removed without deprecation
when the IBM backends is updated in future development. (`1715 <https://github.com/Qiskit/qiskit-ibm-runtime/pull/1715>`__)
- You can now use the experimental option in :class:`qiskit_ibm_runtime.options.EstimatorOptions` to enable Probabilistic Error Amplification (PEA) error mitigation method for your estimator jobs. (`1728 <https://github.com/Qiskit/qiskit-ibm-runtime/pull/1728>`__)
- Qiskit version ``1.1`` is now supported and required. (`1700 <https://github.com/Qiskit/qiskit-ibm-runtime/pull/1700>`__)

Upgrade Notes
-------------

- :meth:`.QiskitRuntimeService.backends` now always returns a
new :class:`IBMBackend` instance even when the same query is used.
The backend properties and defaults data are retrieved from the server
for every instance when they are accessed for the first time,
while the configuration data is cached internally in the service instance. (`1732 <https://github.com/Qiskit/qiskit-ibm-runtime/pull/1732>`__)


Bug Fixes
---------

- Fixed an issue where retrieving jobs with
`job() <https://docs.quantum.ibm.com/api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService#job>`__
and `jobs() <https://docs.quantum.ibm.com/api/qiskit-ibm-runtime/qiskit_ibm_runtime.QiskitRuntimeService#jobs>`__
would only return ``RuntimeJob`` instances, even if the job was run with a V2 primitive. Now,
V2 primitive jobs will be returned correctly as ``RuntimeJobV2`` instances. (`1471 <https://github.com/Qiskit/qiskit-ibm-runtime/pull/1471>`__)
- To avoid network disruptions during long job processes, websocket errors will no longer be raised. (`1518 <https://github.com/Qiskit/qiskit-ibm-runtime/pull/1518>`__)
- Fixed the combination of ``insert_multiple_cycles`` and ``coupling_map`` options in
:class:`.PadDynamicalDecoupling`. This combination allows to select staggered
dynamical decoupling with multiple sequence cycles in each delay that crosses
the threshold set by ``sequence_min_length_ratios``. (`1630 <https://github.com/Qiskit/qiskit-ibm-runtime/pull/1630>`__)
- Fixed a serialization issue where decoding job metadata resulted in an error. (`1682 <https://github.com/Qiskit/qiskit-ibm-runtime/pull/1682>`__)
- Fixed measurement twirling docstring which incorrectly indicated it's enabled by default for Sampler. (`1722 <https://github.com/Qiskit/qiskit-ibm-runtime/pull/1722>`__)
- Fixed nested experimental suboptions override non-experimental suboptions. (`1731 <https://github.com/Qiskit/qiskit-ibm-runtime/pull/1731>`__)
- The backend utils method ``convert_to_target`` has been replaced with the
`convert_to_target <https://docs.quantum.ibm.com/api/qiskit/qiskit.providers.convert_to_target>`__ method from Qiskit.
This fixes some issues related to target generation and calibration data. (`1600 <https://github.com/Qiskit/qiskit-ibm-runtime/pull/1600>`__)
3 changes: 0 additions & 3 deletions release-notes/unreleased/1147.deprecation.rst

This file was deleted.

9 changes: 0 additions & 9 deletions release-notes/unreleased/1238.deprecation.rst

This file was deleted.

5 changes: 0 additions & 5 deletions release-notes/unreleased/1471.bug.rst

This file was deleted.

1 change: 0 additions & 1 deletion release-notes/unreleased/1518.bug.rst

This file was deleted.

2 changes: 0 additions & 2 deletions release-notes/unreleased/1556.deprecation.rst

This file was deleted.

3 changes: 0 additions & 3 deletions release-notes/unreleased/1556.feat.rst

This file was deleted.

4 changes: 0 additions & 4 deletions release-notes/unreleased/1630.bug.rst

This file was deleted.

11 changes: 0 additions & 11 deletions release-notes/unreleased/1679.feat.rst

This file was deleted.

1 change: 0 additions & 1 deletion release-notes/unreleased/1682.bug.rst

This file was deleted.

4 changes: 0 additions & 4 deletions release-notes/unreleased/1689.deprecation.rst

This file was deleted.

2 changes: 0 additions & 2 deletions release-notes/unreleased/1699.feat.rst

This file was deleted.

28 changes: 0 additions & 28 deletions release-notes/unreleased/1715.feat.rst

This file was deleted.

1 change: 0 additions & 1 deletion release-notes/unreleased/1722.bug.rst

This file was deleted.

1 change: 0 additions & 1 deletion release-notes/unreleased/1728.feat.rst

This file was deleted.

1 change: 0 additions & 1 deletion release-notes/unreleased/1731.bug.rst

This file was deleted.

3 changes: 0 additions & 3 deletions release-notes/unreleased/1731.deprecation.rst

This file was deleted.

5 changes: 0 additions & 5 deletions release-notes/unreleased/1732.upgrade.rst

This file was deleted.

2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"websocket-client>=1.5.1",
"ibm-platform-services>=0.22.6",
"pydantic",
"qiskit>=1.0.0",
"qiskit>=1.1.0",
]

# Handle version.
Expand Down
4 changes: 4 additions & 0 deletions test/integration/test_ibm_job.py
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,10 @@ def test_retrieve_completed_jobs(self):

def test_retrieve_pending_jobs(self):
"""Test retrieving jobs with the pending filter."""
if self.dependencies.channel == "ibm_quantum":
raise SkipTest(
"Intermittently failing on ibm quantum channel, needs more investigation."
)
pending_job_list = self.service.jobs(
program_id="sampler", limit=3, pending=True, created_after=self.last_month
)
Expand Down
3 changes: 0 additions & 3 deletions test/unit/transpiler/passes/scheduling/test_scheduler.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@

"""Test the dynamic circuits scheduling analysis"""

from unittest import skip
from unittest.mock import patch

from qiskit import ClassicalRegister, QuantumCircuit, QuantumRegister, transpile
Expand Down Expand Up @@ -871,7 +870,6 @@ def test_registers(self):

self.assertEqual(expected, scheduled)

@skip("Plugin method no longer patched after Qiskit/11996")
def test_c_if_plugin_conversion_with_transpile(self):
"""Verify that old format c_if may be converted and scheduled
after transpilation with the plugin."""
Expand Down Expand Up @@ -2029,7 +2027,6 @@ def test_transpile_both_paths(self):
expected.delay(160, qr[q_ind])
self.assertEqual(expected, scheduled)

@skip("Plugin method no longer patched after Qiskit/11996")
def test_c_if_plugin_conversion_with_transpile(self):
"""Verify that old format c_if may be converted and scheduled after
transpilation with the plugin."""
Expand Down

0 comments on commit b2b47d0

Please sign in to comment.