Releases: Qiskit/qiskit
Releases · Qiskit/qiskit
Qiskit 1.1.1
Changelog
Fixed
- Fix a bug in isometry.rs (backport #12469) (#12471)
- Implement
__array__
forqasm2._DefinedGate
(backport #12119) (#12523) - Avoid exception in
Target.has_calibration
for instruction without properties (backport #12526) (#12527) - Fix
QuantumCircuit.depth
with zero-operands andExpr
nodes (backport #12429) (#12528) - Fix bugs with VF2Layout pass and Qiskit Aer 0.13 (backport #11585) (#12537)
- Use hash of numeric value for bound parameter expressions (backport #12488) (#12548)
- Do not retain and expose old elements of
ParameterVector
(backport #12561) (#12565) - Fix v2 pulse drawer (backport #12608) (#12614)
Qiskit 0.46.2
Changelog
Added
- [0.46] Finalise support for Numpy 2.0 (#12189)
Fixed
- Fix v2 pulse drawer (#12608) (#12613)
- Fix bugs with VF2Layout pass and Qiskit Aer 0.13 (#11585) (#12536)
- Fix unnecessary serialisation of
PassManager
in serial contexts (backport #12410) (#12500) - Fix
Instruction.repeat
with conditionals (#11940) (#12499) - Fix evolved operator ansatz (#11682) (#12479)
- Avoid lossing precision when scaling frequencies (#12392) (#12480)
- Handle huge integers in OpenQASM 2 expression evaluator (#12140) (#12401)
- Default
init
plugin was not properly raising when called with an invalid optimization level (#12170) (#12175) - Fix mpl circuit drawer with fold=-1 hanging with ControlFlow ops (backport #12016) (#12036)
Qiskit 1.1.0
Release notes: https://docs.quantum.ibm.com/api/qiskit/release-notes/1.1#110
Changelog
Added
- Conjugate reduction in optimize annotated pass (#11811)
- Add star to linear pre-routing pass (#11387)
- Add enhancement to BitArray (#12158)
- Add ElidePermutations transpiler pass (#9523)
- Support standalone
Var
throughout transpiler (#12322) - Add indexing and bitshift expressions (#12310)
- Support standalone
Var
s in OQ3 exporter (#12308) - Add minimal support for standalone
Var
to visualisers (#12307) - Support
Var
in circuit-substitution methods (#12215) - Add representation of
expr.Var
toDAGCircuit
(#12204) - Promote arm64 macOS to tier 1 (#12102)
- Support standalone
expr.Var
in QPY (#11651) - Extend the basis gates of BasicSimulator (#12186)
- Add reverse permutation for LNN connectivity (#12181)
- Add Rust-based
SparsePauliOp.to_matrix
and Miri tests (#11388) - Finalise support for Numpy 2.0 (#11999)
- Rename
show_idle
andshow_barrier
toidle_wires
andplot_barriers
(#11878) - Add fast-path construction to
NLocal
(#12099) - Add mapping-like features to data_bin (#12129)
- Expose plugin options (#12107)
- Update gate dictionary in
two_local.py
(#12009) - Add
.apply_layout()
method toPauli
class (#12066) - Improve performance and randomness of
QuantumVolume
(#12097) - Add
copy
keyword argument toQuantumCircuit.append
(#12098) - Added the ctrl_state param to the mcp() function & MCPhaseGate() class (#12094)
- Oxidize two qubit basis decomposer (#12010)
- Added the ctrl_state parameter to mcx() function (#12050)
- Compose multiple final_layout attributes in routing (#11399)
- Fix custom constraints in
transpile
withBackendV2
(#12042) - Add BackendSamplerV2 (#11928)
- Add BackendEstimatorV2 (#11931)
- Oxidize TwoQubitWeylDecomposition (#11946)
- Adapt commutation checker to abstract circuits (#11948)
- Expose
PauliList.noncommutation_graph
in public API (#11795) - Add ElidePermutations pass to optimization level 3 (#12111)
- replace CXCancellation with InverseCancellation (#11937)
- Add support for returning a DAGCircuit to TwoQubitBasisDecomposer (#12109)
- Assignment of parameters in pulse
Schedule
/ScheduleBlock
doable through parameter name (#12088) - Add SamplerPubResult (#12143)
- HLSConfig option to run multiple plugins and to choose the best decomposition (#12108)
- Update
transpile()
to convertBackendV1
inputs toBackendV2
withBackendV2Converter
(#11996) - Add commutative cancellation to preset passmanagers level 2 and 3 (#11929)
- Add RemoveFinalReset pass (#11266)
- ParameterVector support for pulse parameter assignment (#12045)
- Adding annotated argument to power methods (#12101)
Deprecated
- Deprecating Provider ABC, as abstraction is not very useful (#12145)
- pending deprecations from 0.21 (#11902)
- Deprecate Python 3.8 support (#12103)
Changed
- Increase heuristic effort for optimization level 2 (#12149)
- Improve performance and randomness of
QuantumVolume
(#12097)
Fixed
- Rework handling of instruction durations in preset pass managers (#12183)
- Improve performance of BackendSamplerV2 and EstimatorV2 (#12291)
- Treat Reset like Measure in ConstrainedReschedule (#11756)
- Support ECR gates in
Pauli.evolve(QuantumCircuit)
(#12095) - Default
init
plugin was not properly raising when called with an invalid optimization level (#12170) - Add
copy
keyword argument toQuantumCircuit.append
(#12098) - Update the code for decomposing MCX and MCPhase gates, so that the number of CX gates won't grow exponentially (#11993)
- Fix custom constraints in
transpile
withBackendV2
(#12042) - fix typo in soft_compare (#12054)
- Fix incorrect signage in
qDRIFT
synthesis (#11321) - Fix mpl circuit drawer with fold=-1 hanging with ControlFlow ops (#12016)
- Fix build() default alignment (#12029)
- Fix pulse parameter value formatter bug (#11972)
- Fix evolved operator ansatz (#11682)
- Remove old graph structure during
EquivalenceLibrary.set_entry
(#11959) - Fix
Instruction.repeat
with conditionals (#11940) - Fix performance issue in parsing bit indices in QPY (#11944)
- Bug Fix for missing qubit property (#11880)
- Fix improper handling of BindingsArray in SamplerPub.coerce() (#11913)
- Fix transpilation of control flow to no hardware (#11907)
- Fixing bug in
qcstyle
that modified custom style dict (#11874) - Fix handling of control flow instructions in convert_to_target() (#11877)
- Fix improper handling of BindingsArray in EstimatorPub.coerce (#11871)
- Fix Observables.coerce() for 0-d inputs (#11868)
- Ensure that Parameters compare equal when they have the same hash (#11652)
- Fix an unchecked condition in InverseCancellation (#11834)
- Fix
PropertySet
re-use inBasePassManager.run
(#11787) - Fix custom pulse instruction conversion to Qobj. (#11829)
- Fix scheduling units (#11782)
- bug loading MPL style from the configuration (#11750)
- Fix qpy.dump()'s use_symengine when passed a truthy object (#11730)
- Update Commutation Checker to Support UTF-8 Encoded Gate Names (#12061)
- Fixing Operator.from_circuit for circuits with final layouts and a non-trivial initial layout (#12057)
- Avoid lossing precision when scaling frequencies (#12392)
- Fix unnecessary serialisation of
PassManager
in serial contexts (#12410) - Handle huge integers in OpenQASM 2 expression evaluator (#12140)
- Fix a corner case of
SparsePauliOp.apply_layout
(#12375) - Fix
QuantumCircuit.compose
withIndex
exprs (#12396) - Fix {Pauli,SparsePauliOp}.apply_layout to raise an error with negative or duplicate indices (#12385)
- fix edge coloring bug in plot_coupling_map (#12369)
- Fix missing layout in
Commuting2qGateRouter
(#12137)
Qiskit 1.1.0rc1
Changelog
Added
- Conjugate reduction in optimize annotated pass (#11811)
- Add star to linear pre-routing pass (#11387)
- Add enhancement to BitArray (#12158)
- Add ElidePermutations transpiler pass (#9523)
- Support standalone
Var
throughout transpiler (#12322) - Add indexing and bitshift expressions (#12310)
- Support standalone
Var
s in OQ3 exporter (#12308) - Add minimal support for standalone
Var
to visualisers (#12307) - Support
Var
in circuit-substitution methods (#12215) - Add representation of
expr.Var
toDAGCircuit
(#12204) - Promote arm64 macOS to tier 1 (#12102)
- Support standalone
expr.Var
in QPY (#11651) - Extend the basis gates of BasicSimulator (#12186)
- Add reverse permutation for LNN connectivity (#12181)
- Add Rust-based
SparsePauliOp.to_matrix
and Miri tests (#11388) - Finalise support for Numpy 2.0 (#11999)
- Rename
show_idle
andshow_barrier
toidle_wires
andplot_barriers
(#11878) - Add fast-path construction to
NLocal
(#12099) - Add mapping-like features to data_bin (#12129)
- Expose plugin options (#12107)
- Update gate dictionary in
two_local.py
(#12009) - Add
.apply_layout()
method toPauli
class (#12066) - Improve performance and randomness of
QuantumVolume
(#12097) - Add
copy
keyword argument toQuantumCircuit.append
(#12098) - Added the ctrl_state param to the mcp() function & MCPhaseGate() class (#12094)
- Oxidize two qubit basis decomposer (#12010)
- Added the ctrl_state parameter to mcx() function (#12050)
- Compose multiple final_layout attributes in routing (#11399)
- Fix custom constraints in
transpile
withBackendV2
(#12042) - Add BackendSamplerV2 (#11928)
- Add BackendEstimatorV2 (#11931)
- Oxidize TwoQubitWeylDecomposition (#11946)
- Adapt commutation checker to abstract circuits (#11948)
- Expose
PauliList.noncommutation_graph
in public API (#11795) - Add ElidePermutations pass to optimization level 3 (#12111)
- replace CXCancellation with InverseCancellation (#11937)
- Add support for returning a DAGCircuit to TwoQubitBasisDecomposer (#12109)
- Assignment of parameters in pulse
Schedule
/ScheduleBlock
doable through parameter name (#12088) - Add SamplerPubResult (#12143)
- HLSConfig option to run multiple plugins and to choose the best decomposition (#12108)
- Update
transpile()
to convertBackendV1
inputs toBackendV2
withBackendV2Converter
(#11996) - Add commutative cancellation to preset passmanagers level 2 and 3 (#11929)
- Add RemoveFinalReset pass (#11266)
- ParameterVector support for pulse parameter assignment (#12045)
- Adding annotated argument to power methods (#12101)
Deprecated
- Deprecating Provider ABC, as abstraction is not very useful (#12145)
- pending deprecations from 0.21 (#11902)
- Deprecate Python 3.8 support (#12103)
Changed
- Increase heuristic effort for optimization level 2 (#12149)
- Improve performance and randomness of
QuantumVolume
(#12097)
Fixed
- Rework handling of instruction durations in preset pass managers (#12183)
- Improve performance of BackendSamplerV2 and EstimatorV2 (#12291)
- Treat Reset like Measure in ConstrainedReschedule (#11756)
- Support ECR gates in
Pauli.evolve(QuantumCircuit)
(#12095) - Default
init
plugin was not properly raising when called with an invalid optimization level (#12170) - Add
copy
keyword argument toQuantumCircuit.append
(#12098) - Update the code for decomposing MCX and MCPhase gates, so that the number of CX gates won't grow exponentially (#11993)
- Fix custom constraints in
transpile
withBackendV2
(#12042) - fix typo in soft_compare (#12054)
- Fix incorrect signage in
qDRIFT
synthesis (#11321) - Fix mpl circuit drawer with fold=-1 hanging with ControlFlow ops (#12016)
- Fix build() default alignment (#12029)
- Fix pulse parameter value formatter bug (#11972)
- Fix evolved operator ansatz (#11682)
- Remove old graph structure during
EquivalenceLibrary.set_entry
(#11959) - Fix
Instruction.repeat
with conditionals (#11940) - Fix performance issue in parsing bit indices in QPY (#11944)
- Bug Fix for missing qubit property (#11880)
- Fix improper handling of BindingsArray in SamplerPub.coerce() (#11913)
- Fix transpilation of control flow to no hardware (#11907)
- Fixing bug in
qcstyle
that modified custom style dict (#11874) - Fix handling of control flow instructions in convert_to_target() (#11877)
- Fix improper handling of BindingsArray in EstimatorPub.coerce (#11871)
- Fix Observables.coerce() for 0-d inputs (#11868)
- Ensure that Parameters compare equal when they have the same hash (#11652)
- Fix an unchecked condition in InverseCancellation (#11834)
- Fix
PropertySet
re-use inBasePassManager.run
(#11787) - Fix custom pulse instruction conversion to Qobj. (#11829)
- Fix scheduling units (#11782)
- bug loading MPL style from the configuration (#11750)
- Fix qpy.dump()'s use_symengine when passed a truthy object (#11730)
- Update Commutation Checker to Support UTF-8 Encoded Gate Names (#12061)
- Fixing Operator.from_circuit for circuits with final layouts and a non-trivial initial layout (#12057)
Qiskit 0.46.1
Changelog
Fixed
- Fixing monitor tools (#11414)
- Remove old graph structure during
EquivalenceLibrary.set_entry
(#11959) (#11963) - Fix handling of control flow instructions in convert_to_target() (#11922)
- Fix
PropertySet
re-use inBasePassManager.run
(#11787) (#11863) - Add missing gate properties and configuration to FakeOpenPulse2Q (from #11609) (#11788)
- Construct subclasses of
InstructionDurations
from backend (#11501) (#11727)
Qiskit 1.0.2
Release notes: https://docs.quantum.ibm.com/api/qiskit/release-notes/1.0
Changelog
Fixed
- Ensure that Parameters compare equal when they have the same hash (#11652) (#11875)
- Fix improper handling of
BindingsArray
inEstimatorPub.coerce()
(#11871) (#11881) - Fix transpilation of control flow to no hardware (#11907) (#11915)
- Fix type hint and doc of
StatevectorEstimator.default_precision
(#11910) (#11918) - Fix handling of control flow instructions in convert_to_target() (#11877) (#11884)
- Bugfix for missing qubit property (#11880) (#11927)
- Fix performance issue in parsing bit indices in QPY (#11944) (#11945)
- Remove old graph structure during
EquivalenceLibrary.set_entry
(#11959) (#11962) - Fix improper handling of BindingsArray in SamplerPub.coerce() (#11913) (#11920)
- Fix Observables.coerce() for 0-d inputs (#11868) (#11876)
- Fix evolved operator ansatz (#11682) (#11965)
Qiskit 1.0.1
Qiskit 1.0.0
Release notes: https://docs.quantum.ibm.com/api/qiskit/release-notes/1.0
Changelog
Added
- Add generic V1 Fake Backends, replace use in tests (#10952)
- Native OpenQASM 3 importer (#11584)
- Support stabilised syntax for OpenQASM 3
switch
(#11417) - Library of Unparameterizable Standard Gates Commutations (#11192)
- Add version flag to qpy dump (#11644)
- Rename
BasicAer
toBasicProvider
and refactor interface to followBackendV2
(#11422) - Token swapper permutation synthesis plugin (#10657)
- Add reference implementation of EstimatorV2 (#11227)
- Add fake generic and modify tests (#10266)
- Add uuid property to Parameter (#11647)
- Extend
CommutativeInverseCancellation
to cancel pairs of gates up-to-phase (#11248) - Add circuit generation from set of stabilizers (#11483)
- Use "tensorised-Pauli decomposition" in
SparsePauliOp.from_operator
(#11133) - Warn on import failures within optional dependencies (#11522)
- Allow string keys in
QuantumCircuit.assign_parameters
(#11432) - Add
QuantumCircuit.get_parameter
to retrieve by name (#11431) - use faster aqc objective function evaluation by default (#11479)
- Add qpy deprecation warning class (#11260)
- Add
ParameterExpression.numeric
to cast to number (#11109) - Document how to use high level synthesis plugins (#11389)
- QFT circuit synthesis for linear nearest neighbor connectivity (#11236)
- Ensure
QuantumCircuit.append
validates captures in control-flow (#10974) - Decomposition of single R gate in RR basis should be one R gate, not two (#11304)
- Add pow as supported operation for ParameterExpression (#11235)
- Add representation of storage-owning
Var
nodes (#10944) - Add support for Python 3.12 (#11262)
- Add pass to filter ops and label inserted barriers (#10323)
- Oxidize
QuantumCircuit._data
and internCircuitInstruction
args (#10827) - Fixed Issue 11026: SparsePauliOp.apply_layout should do nothing if given None (#11041)
- Add new transpiler exception class for too many qubits (#11241)
- Singletonized
Measure
andReset
instructions (#11170) - Improved Documentation and Error-Signaling of VF2PostLayout (#11090)
- Update and expand DAGDependency drawer (#11103)
- Update
gate.inverse()
to returnAnnotatedOperation
(#11593) - Fix qpy support for Annotated Operations (#11505)
- Update
gate.control()
to returnAnnotatedOperation
(#11433) - Introduction of ExperimentalWarning (#11326)
- New OptimizeAnnotated transpiler pass (#11476)
- Reimplement two_qubit_decompose.num_basis_gates in rust (#11019)
- Add a kwarg for num_processes in the transpiler (#11554)
- Supporting floating-point exponents in
Operator.power
(#11534) - Add Statevector-based SamplerV2 (#11566)
- Add BaseEstimatorV2 (#11527)
- Add BaseSamplerV2 (#11529)
- List support for coupling map in pass manager (#11063)
- Add disable_validation option to SymbolicPulse (#11029)
Changed
- Fix
approximation_degree
default ingenerate_preset_pass_maanger
(#11695) - Handle custom operations with overlapping names in QPY (#11646)
- Legacy code removal in pass manager (#11448)
- Bump MSRV to 1.70 (#11493)
- Replace
qiskit
metapackage withqiskit-terra
(#11271) - Update platform support and require symengine (#10902)
Removed
- Remove provider-specific fake backends,
FakeProvider
class and related tools in 1.0 (#11376) - Effect final removals from Qiskit 1.0 (#11711)
- Remove deprecated features in 0.46 in primitives (#11576)
- Remove pulse scoped_parameters and search_parameters (#11692)
- Rename
BasicAer
toBasicProvider
and refactor interface to followBackendV2
(#11422) - Remove deprecated functions in pulse qobj converter (#11410)
- Remove deprecated feature in 0.45 in unroller (#11581)
- Remove visualization code deprecated in 0.22 (released on October 13, 2022) (#10989)
- Remove qiskit.quantum_info.synthesis for Qiskit 1.0 release (#11592)
- Remove qiskit.transpiler.synthesis for Qiskit 1.0 release (#11570)
- Remove execute() function (#11565)
- Remove deprecated features in 0.45 in quantumcircuit (#11577)
- Deprecate qiskit/quantum_info/synthesis and move to qiskit/synthesis (#11460)
- Remove psutil as a dependency (#11336)
- Remove
Aer
and imports fromqiskit.providers.aer
(#11442) - Remove
qiskit.extensions
(#11488) - remove PauliList support as observable type for Estimator.run (#11521)
- Remove
ConfigurableFakeBackend
(#11568) - Removed Deprecated Pulse Call Instruction (#11537)
- remove deprecated clifford get/set item (#11555)
- Remove most of
qiskit.test
(#11445) - Make
iqp
the matplotlib default style (#11536) - remove deprecated aquire alignment (#11553)
- Removed Deprecated Instruction.qasm Function (#11538)
- Remove qiskit.tools module (#11515)
- Removed Deprecated VF2 Call Limit (#11540)
- Remove deprecated IBMQ dependent functionality (#11513)
- Legacy code removal in pass manager (#11448)
- Remove deprecated top-level
classicalfunction
imports (#11486) - Remove
QuantumCircuit.bind_parameters
(#11434) - Remove Bit.register and Bit.index (#10996)
- add release note (#11395)
- Remove NoiseAdaptiveLayout and CrosstalkAdaptiveSchedule (#11400)
- Remove deprecated legacy pulse builder commands (#11191)
- Remove deprecated ParametricPulse classes (#11024)
- Remove legacy qasm2 parser (#11308)
- Remove leftover algorithm/opflow utils (#11324)
- Remove alg_globals and validation (#11252)
- Remove deprecated
opflow
module,QuantumInstance
and relatedutils
(#11111) - Remove qiskit_version (deprecated in Qiskit Terra 0.25) (#11305)
- Remove deprecated
IntegerComparator.num_ancilla_qubits
(#11306) - Fixed issue 11143 by removing deprecated code (#11159)
- removed the deprecated code since
0.23
(qiskit.visualization.pulse
) (#11213) - Remove the discrete pulse library (#11277)
- Remove deprecated
qiskit.algorithms
module (#11086) - Remove namespace packaging hooks (#11223)
- Expire deprecation on
qargs=None
in DAG appends (#11190) - Remove
qiskit.test
(#10998) - Remove complex amp support for
ScalableSymbolicPulse
(#11403) - Remove validation methods from primitive base classes (#11052)
Fixed
- bug loading MPL style from the configuration (#11750)
- Fix qpy.dump()'s use_symengine when passed a truthy object (#11730)
- use pulse_alignment from Target in PadDynamicalDecoupling (#11660)
- Handle custom operations with overlapping names in QPY (#11646)
- Fix split barriers leaking during disjoint layout processing (#11655)
- Fix SetLayout to error with invalid int list input (#11653)
- Backend converter bugfix (edge case) (#11609)
- Followup of #11095 (#11404)
- Restrict version-number output of OpenQASM 3 exporter (#11418)
- Fix qpy support for Cliffords (#11495)
- Fix a bug of missing pulse library entry in PulseQobj parsing (#11397)
- Fix broadcasting of
QuantumCircuit.delay
(#11447) - Detect duplicates in
QuantumCircuit.compose
(#11451) - Construct subclasses of
InstructionDurations
from backend (#11501) - Fix global-phase of copied
BlueprintCircuit
s (#11456) - Fix text overwriting end of box for empty default case in mpl drawer (#11366)
- Add drawer support for AnnotatedOperations (#11202)
- Ensure
TemplateOptimization
returns native-symbolic objects (#11107) - Add missing parameter in standard-gate mapping (#11411)
- Fix a bug is StabilizerState repr (#11368)
- Fixed bug in OptimizeSwapBeforeMeasure (#11413)
- Raise error eagerly on bad unitary synthesis method (#11367)
- Don't substitute ideal gates in target with Optimize1qGatesDecomposition (#11351)
- Update
Instruction.condition_bits
for runtime classical expressions (#11325) - Avoid routing 2q barriers in SabreSwap (#11295)
- Fix backend_util.py and test cases to support Aer 0.13 (#11172)
- Fix issue with ScheduleBlock qpy serialization and use_symengine (#11261)
- Allow correct retrieval of circuit with initialize instruction from qpy file (#11206)
- Fix
QuantumCircuit.barrier
argument conversion (#11272) - Do not ignore global phases when comparing unitary gates (#11247)
- Fix pickling of conditioned custom gates from OpenQASM 2 import (#11175)
- Fix
Channel.__hash__
in multiprocessing contexts (#11251) - Speed up InverseCancellation when there's nothing to cancel (#11211)
- Allow barriers in overlap circuit inputs (#11179)
- Removed 2pi wrapping for global phase parameter (#10631)
- Fix circuit drawer returning qubit[register] names for input (#11096)
- Fix build ordering of
BlueprintCircuit._append
(#11181) - Collect classical registers using a set (#10496) (#10505)
- Fix lack of alternative for
Optimizer
inAQC
(#11099) - Emit a descriptive error when the QPY version is too new (#11074)
- Plot State City Visualization Fixes (#10590)
- Fix Barrier broadcast arguments (#11113)
- Fix calling backend.name() for backendV2 (#11065)
- Fix text drawer AnnotatedOperations (#11466)
- Fix Sabre extended set population order (#10651)
Qiskit 1.0.0rc1
Changelog
Added
- Add generic V1 Fake Backends, replace use in tests (#10952)
- Native OpenQASM 3 importer (#11584)
- Support stabilised syntax for OpenQASM 3
switch
(#11417) - Library of Unparameterizable Standard Gates Commutations (#11192)
- Add version flag to qpy dump (#11644)
- Rename
BasicAer
toBasicProvider
and refactor interface to followBackendV2
(#11422) - Token swapper permutation synthesis plugin (#10657)
- Add reference implementation of EstimatorV2 (#11227)
- Add fake generic and modify tests (#10266)
- Add uuid property to Parameter (#11647)
- Extend
CommutativeInverseCancellation
to cancel pairs of gates up-to-phase (#11248) - Add circuit generation from set of stabilizers (#11483)
- Use "tensorised-Pauli decomposition" in
SparsePauliOp.from_operator
(#11133) - Warn on import failures within optional dependencies (#11522)
- Allow string keys in
QuantumCircuit.assign_parameters
(#11432) - Add
QuantumCircuit.get_parameter
to retrieve by name (#11431) - use faster aqc objective function evaluation by default (#11479)
- Add qpy deprecation warning class (#11260)
- Add
ParameterExpression.numeric
to cast to number (#11109) - Document how to use high level synthesis plugins (#11389)
- QFT circuit synthesis for linear nearest neighbor connectivity (#11236)
- Ensure
QuantumCircuit.append
validates captures in control-flow (#10974) - Decomposition of single R gate in RR basis should be one R gate, not two (#11304)
- Add pow as supported operation for ParameterExpression (#11235)
- Add representation of storage-owning
Var
nodes (#10944) - Add support for Python 3.12 (#11262)
- Add pass to filter ops and label inserted barriers (#10323)
- Oxidize
QuantumCircuit._data
and internCircuitInstruction
args (#10827) - Fixed Issue 11026: SparsePauliOp.apply_layout should do nothing if given None (#11041)
- Add new transpiler exception class for too many qubits (#11241)
- Singletonized
Measure
andReset
instructions (#11170) - Improved Documentation and Error-Signaling of VF2PostLayout (#11090)
- Update and expand DAGDependency drawer (#11103)
- List support for coupling map in pass manager (#11063)
- Add Statevector-based SamplerV2 (#11566)
- Add BaseEstimatorV2 (#11527)
- Add BaseSamplerV2 (#11529)
- Add
BasePrimitiveJob
class and deprecatePrimitiveJob.submit
method (#11552) - Add V2 primitive container classes (#11524)
- Add
primitives.containers.BitArray
container class (#11542) - Add disable_validation option to SymbolicPulse (#11029)
- Supporting floating-point exponents in
Operator.power
(#11534) - Update
gate.inverse()
to returnAnnotatedOperation
(#11593) - Add a kwarg for num_processes in the transpiler (#11554)
- Introduction of ExperimentalWarning (#11326)
- New OptimizeAnnotated transpiler pass (#11476)
- Reimplement two_qubit_decompose.num_basis_gates in rust (#11019)
- Update
gate.control()
to returnAnnotatedOperation
(#11433)
Changed
- Fix
approximation_degree
default ingenerate_preset_pass_maanger
(#11695) - Handle custom operations with overlapping names in QPY (#11646)
- Legacy code removal in pass manager (#11448)
- Bump MSRV to 1.70 (#11493)
- Replace
qiskit
metapackage withqiskit-terra
(#11271) - Update platform support and require symengine (#10902)
Removed
- Remove provider-specific fake backends,
FakeProvider
class and related tools in 1.0 (#11376) - Effect final removals from Qiskit 1.0 (#11711)
- Remove deprecated features in 0.46 in primitives (#11576)
- Remove pulse scoped_parameters and search_parameters (#11692)
- Rename
BasicAer
toBasicProvider
and refactor interface to followBackendV2
(#11422) - Remove deprecated functions in pulse qobj converter (#11410)
- Remove deprecated feature in 0.45 in unroller (#11581)
- Remove visualization code deprecated in 0.22 (released on October 13, 2022) (#10989)
- Remove qiskit.quantum_info.synthesis for Qiskit 1.0 release (#11592)
- Remove qiskit.transpiler.synthesis for Qiskit 1.0 release (#11570)
- Remove execute() function (#11565)
- Remove deprecated features in 0.45 in quantumcircuit (#11577)
- Deprecate qiskit/quantum_info/synthesis and move to qiskit/synthesis (#11460)
- Remove psutil as a dependency (#11336)
- Remove
Aer
and imports fromqiskit.providers.aer
(#11442) - Remove
qiskit.extensions
(#11488) - remove PauliList support as observable type for Estimator.run (#11521)
- Remove
ConfigurableFakeBackend
(#11568) - Removed Deprecated Pulse Call Instruction (#11537)
- remove deprecated clifford get/set item (#11555)
- Remove most of
qiskit.test
(#11445) - Make
iqp
the matplotlib default style (#11536) - remove deprecated aquire alignment (#11553)
- Removed Deprecated Instruction.qasm Function (#11538)
- Remove qiskit.tools module (#11515)
- Removed Deprecated VF2 Call Limit (#11540)
- Remove deprecated IBMQ dependent functionality (#11513)
- Legacy code removal in pass manager (#11448)
- Remove deprecated top-level
classicalfunction
imports (#11486) - Remove
QuantumCircuit.bind_parameters
(#11434) - Remove Bit.register and Bit.index (#10996)
- add release note (#11395)
- Remove NoiseAdaptiveLayout and CrosstalkAdaptiveSchedule (#11400)
- Remove deprecated legacy pulse builder commands (#11191)
- Remove deprecated ParametricPulse classes (#11024)
- Remove legacy qasm2 parser (#11308)
- Remove leftover algorithm/opflow utils (#11324)
- Remove alg_globals and validation (#11252)
- Remove deprecated
opflow
module,QuantumInstance
and relatedutils
(#11111) - Remove qiskit_version (deprecated in Qiskit Terra 0.25) (#11305)
- Remove deprecated
IntegerComparator.num_ancilla_qubits
(#11306) - Fixed issue 11143 by removing deprecated code (#11159)
- removed the deprecated code since
0.23
(qiskit.visualization.pulse
) (#11213) - Remove the discrete pulse library (#11277)
- Remove deprecated
qiskit.algorithms
module (#11086) - Remove namespace packaging hooks (#11223)
- Expire deprecation on
qargs=None
in DAG appends (#11190) - Remove complex amp support for
ScalableSymbolicPulse
(#11403) - Remove
qiskit.test
(#10998)
Fixed
- use pulse_alignment from Target in PadDynamicalDecoupling (#11660)
- Handle custom operations with overlapping names in QPY (#11646)
- Fix split barriers leaking during disjoint layout processing (#11655)
- Fix SetLayout to error with invalid int list input (#11653)
- Backend converter bugfix (edge case) (#11609)
- Followup of #11095 (#11404)
- Restrict version-number output of OpenQASM 3 exporter (#11418)
- Fix qpy support for Cliffords (#11495)
- Fix a bug of missing pulse library entry in PulseQobj parsing (#11397)
- Fix broadcasting of
QuantumCircuit.delay
(#11447) - Detect duplicates in
QuantumCircuit.compose
(#11451) - Construct subclasses of
InstructionDurations
from backend (#11501) - Fix global-phase of copied
BlueprintCircuit
s (#11456) - Fix text overwriting end of box for empty default case in mpl drawer (#11366)
- Add drawer support for AnnotatedOperations (#11202)
- Ensure
TemplateOptimization
returns native-symbolic objects (#11107) - Add missing parameter in standard-gate mapping (#11411)
- Fix a bug is StabilizerState repr (#11368)
- Fixed bug in OptimizeSwapBeforeMeasure (#11413)
- Raise error eagerly on bad unitary synthesis method (#11367)
- Don't substitute ideal gates in target with Optimize1qGatesDecomposition (#11351)
- Update
Instruction.condition_bits
for runtime classical expressions (#11325) - Avoid routing 2q barriers in SabreSwap (#11295)
- Fix backend_util.py and test cases to support Aer 0.13 (#11172)
- Fix issue with ScheduleBlock qpy serialization and use_symengine (#11261)
- Allow correct retrieval of circuit with initialize instruction from qpy file (#11206)
- Fix
QuantumCircuit.barrier
argument conversion (#11272) - Do not ignore global phases when comparing unitary gates (#11247)
- Fix pickling of conditioned custom gates from OpenQASM 2 import (#11175)
- Fix
Channel.__hash__
in multiprocessing contexts (#11251) - Speed up InverseCancellation when there's nothing to cancel (#11211)
- Allow barriers in overlap circuit inputs (#11179)
- Removed 2pi wrapping for global phase parameter (#10631)
- Fix circuit drawer returning qubit[register] names for input (#11096)
- Fix build ordering of
BlueprintCircuit._append
(#11181) - Collect classical registers using a set (#10496) (#10505)
- Fix lack of alternative for
Optimizer
inAQC
(#11099) - Emit a descriptive error when the QPY version is too new (#11074)
- Plot State City Visualization Fixes (#10590)
- Fix Barrier broadcast arguments (#11113)
- Fix calling backend.name() for backendV2 (#11065)
- Fix text drawer AnnotatedOperations (#11466)
- Fix qpy support for Annotated Operations (#11505)
- Fix mypy errors (pulse) (#8268)
- Fix Sabre extended set population order (#10651)
Qiskit 0.46.0
Release notes: https://docs.quantum.ibm.com/api/qiskit/release-notes/0.46
Changelog
Deprecated
- Remove validation methods from primitive base classes (backport #11052) (#11532)
- Deprecate visualization code (#11636)
- Deprecate pulse parameter scoping (#11691)
- Legacy code deprecation in pass manager (#11449)
- Deprecate NoiseAdaptiveLayout and CrosstalkAdaptiveSchedule (#11402)
- Deprecate qiskit.tools (#11514)
- Deprecate provider-specific fake backends,FakeProvider class and related tools in 0.46 (#11381)
- Add warning when qiskit package not installed (#11230)
- Deprecate
BasicAer
and introduceBasicProvider
(#11583) - Deprecate qiskit/quantum_info/synthesis and move to qiskit/synthesis (backport #11460) (#11635)
- Deprecate qiskit/transpiler/synthesis and move to qiskit/synthesis (backport #11426) (#11624)
- Deprecate
PauliList
estimator observables (#11520) - Deprecate
ConfigurableFakeBackend
(#11567) - Deprecate execute() (#11044)
- deprecate qiskit.test (#11001)
- Deprecate
qiskit.Aer
andqiskit.providers.aer
(#11439) - Deprecate implicit Estimator conversion to SparsePauliOp (#11535)
- Deprecate legacy qcstyle (#11545)
- Deprecate BasePrimitiveResult (#11054)
- Deprecate extensions on stable/0.46 (#11498)
- Deprecate legacy qasm2 parser for 0.46 (#11347)
- Deprecate Qobj input to
UnitarySimulatorPy.run
(#11394) - deprecate legacy pulse builder command (#11249)
- Deprecate leftover algorithm/opflow utils (#11323)
- Deprecate ParametricPulse (#11279)
- Deprecate the discrete pulse library (#11110) (#11265)
Added
- Add fake generic and modify tests (backport #10266) (#11670)
- Deprecate
BasicAer
and introduceBasicProvider
(#11583) - Deprecate qiskit/quantum_info/synthesis and move to qiskit/synthesis (backport #11460) (#11635)
- Add support for Python 3.12 (#11262) (#11311)
Changed
- Poison import if Qiskit 1.0+ is detected (#11617)
- Add warning when qiskit package not installed (#11230)
Fixed
- Fix qpy support for Cliffords (#11495) (#11582)
- Fix a bug of missing pulse library entry in PulseQobj parsing (backport #11397) (#11573)
- Fix broadcasting of
QuantumCircuit.delay
(#11447) (#11523) - Fix global-phase of copied
BlueprintCircuit
s (#11456) (#11485) - Fix text overwriting end of box for empty default case in mpl drawer (#11366) (#11482)
- Fix a bug is StabilizerState repr (#11368) (#11416)
- Fixed bug in OptimizeSwapBeforeMeasure (#11413) (#11415)
- Don't substitute ideal gates in target with Optimize1qGatesDecomposition (#11351) (#11359)
- Update
Instruction.condition_bits
for runtime classical expressions (#11325) (#11328) - Fix backend_util.py and test cases to support Aer 0.13 (#11172) (#11283)
- Fix issue with ScheduleBlock qpy serialization and use_symengine (#11261) (#11275)
- Allow correct retrieval of circuit with initialize instruction from qpy file (#11206) (#11274)
- Fix
QuantumCircuit.barrier
argument conversion (#11272) (#11273) - Fix pickling of conditioned custom gates from OpenQASM 2 import (#11175) (#11258)
- Fix
Channel.__hash__
in multiprocessing contexts (#11251) (#11255) - Allow barriers in overlap circuit inputs (#11179) (#11216)
- Fix circuit drawer returning qubit[register] names for input (#11096) (#11199)