Qiskit Terra 0.23.1 is a small patch release to fix bugs identified in Qiskit Terra 0.23.0
An edge case of pickle
InstructionScheduleMapwith non-picklable iterable
argumentsis now fixed. Previously, using an unpickleable iterable as the
dict_keys) could cause parallel calls to
transpile()to fail. These arguments will now correctly be normalized internally to
Fixed a performance bug in
ReverseEstimatorGradientwhere the calculation did a large amount of unnecessary copies if the gradient was only calculated for a subset of parameters, or in a circuit with many unparameterized gates.
Fixed a bad deprecation of
Register.name_formatwhich had made the class attribute available only from instances and not the class. When trying to send dynamic-circuits jobs to hardware backends, this would frequently cause the error:
AttributeError: 'property' object has no attribute 'match'
Fixed #9493 (opens in a new tab).
This release of the
qiskit-ibmq-provider package marks the package as deprecated and will be retired and archived in the future. The functionality in
qiskit-ibmq-provider has been supersceded by 3 packages
qiskit-ibm-experiment which offer different subsets of functionality that
qiskit-ibmq-provider contained. You can refer to the table here:
for links to the migration guides for moving from
qiskit-ibmq-provider to its replacmeent packages.
- As of version 0.20.0,
qiskit-ibmq-providerhas been deprecated with its support ending and eventual archival being no sooner than 3 months from that date. The function provided by qiskit-ibmq-provider is not going away rather it has being split out to separate repositories. Please see https://github.com/Qiskit/qiskit-ibmq-provider#migration-guides (opens in a new tab).
In the upcoming terra release there will be a release candidate tagged prior to the final release. However changing the version string for the package is blocked on the qiskit-ibmq-provider right now because it is trying to parse the version and is assuming there will be no prelease suffix on the version string (see #8200 (opens in a new tab) for the details). PR #1135 (opens in a new tab) fixes this version parsing to use the regex from the pypa/packaging project which handles all the PEP440 package versioning include pre-release suffixes. This will enable terra to release an 0.21.0rc1 tag without breaking the qiskit-ibmq-provider.
PR #1129 (opens in a new tab) updates
least_busy()method to no longer support BaseBackend as a valid input or output type since it has been long deprecated in qiskit-terra and has recently been removed.
notifyAllwere deprecated in Python 3.10 (October 2021) and will be removed in Python 3.12 (October 2023). PR #1133 (opens in a new tab) replaces them with
notify_alladded in Python 2.6 (October 2008).
Calls to run a quantum circuit with
dynamic=Truenow raise an error that asks the user to install the new
The Qiskit Terra 0.23.2 patch release fixes further bugs identified in the 0.23 series.
Add a decomposition of an
ECRGateinto Clifford gates (up to a global phase) to the standard equivalence library.
Fixed an issue with the
BackendV2Converterclass when wrapping a
BackendV1-based simulator. It would error if either the
online_datefield in the
BackendConfigurationfor the simulator was not present or if the simulator backend supported ideal implementations of gates that involve more than 1 qubit. Fixed #9562 (opens in a new tab).
Fixed an incorrect return value of the method
BackendV2Converter.meas_map()that had returned the backend
indexwill now be correctly round-tripped by QPY (
qiskit.qpy) in all valid usages of
ClassicalRegister. In earlier releases in the Terra 0.23 series, this information would be lost. In versions before 0.23.0, this information was partially reconstructed but could be incorrect or produce invalid circuits for certain register configurations.
The correct way to retrieve the index of a bit within a circuit, and any registers in that circuit the bit is contained within is to call
QuantumCircuit.find_bit(). This method will return the correct information in all versions of Terra since its addition in version 0.19.
Fixed an issue with the
InstructionScheduleMap.has_custom_gate()method, where it would always return
InstructionScheduleMapobject was created by
Target. Fixed #9595 (opens in a new tab).
Fixed a bug in the NumPy-based eigensolvers (
NumPyEigensolver) and in the SciPy-based time evolvers (
SciPyImaginaryEvolver), where operators that support conversion to sparse matrices, such as
SparsePauliOp, were converted to dense matrices anyways.
Fixed a bug in the
VQDalgorithm where the energy evaluation function could not process batches of parameters, making it incompatible with optimizers with
max_evals_grouped>1. Fixed #9500 (opens in a new tab).
Fixed bug in
QNSPSAwhich raised a type error when the computed fidelities happened to be of type
intbut the perturbation was of type
qiskit-ibmq-provider is now deprecated, the dependencies have been bumped and fixed to the latest working versions. There was an issue with the latest version of the
requests-ntlm package which caused some end to end tests to fail.