Releases: Qiskit/qiskit
Releases · Qiskit/qiskit
Qiskit 1.3.0rc2
Changelog
Fixed
- HLS fix to not synthesize instructions already supported (#13417) (#13441)
- Fix process-based non-determinism in
SparsePauliOp.to_matrix
(#13439) (#13440) - Fix the calculation for identity operator's expectation value (#13345) (#13436)
- Fix basis_count checking in ConsolidateBlocks (#13463) (#13465)
- Fix post-oxidization change in
ConsolidateBlocks
behavior (#13450) (#13453) - Avoid overhead for synthesized nodes lookup (#13424) (#13425)
Qiskit 1.3.0rc1
Changelog
Deprecated
- Deprecate loose custom basis gates in preset pm pipieline (#13394)
- Add missing pulse-related deprecation (#13392)
- Deprecate the condition attribute and related functionality (#13223)
- Deprecate
qiskit.result.mitigation
(#13351) - Deprecate
BasicSimulator.configuration
(#13367) - Deprecate
instruction_durations
,timing_constraints
andbackend_properties
(#13338) - Add EchoRZXWeylDecomposition to Pulse deprecation (#13366)
- Deprecate Pulse package and dependencies (#13164)
- Improve deprecation of unit and duration (#13247)
- Deprecate the unit and duration attributes (#13224)
- deprecate BackendV1 in
PassManagerConfig.from_backend
(#12931) - Deprecates
StochasticSwap
and suggests the use ofSabreSwap
(#12983) - Deprecate BackendV1 and
qiskit.providers.models
(backport #12629) (#12864) - Deprecate BackendV1 and
qiskit.providers.models
(#12629) - Deprecate fake backends based on BackendV1 (backport #12660) (#12837)
- Deprecate fake backends based on BackendV1 (#12660)
- fixes #9355 deprecate visualize_transition (#12287) (#12822)
- fixes #9355 deprecate visualize_transition (#12287)
Added
- Reorder Pauli terms before Trotterization (#12925)
- Evolved operator functions (#13361)
- Add Rustiq-based synthesis for
PauliEvolutionGate
(#13301) - Oxidize
NLocal
& family (#13310) - Add pauli_twirl_2q_gates function (#13331)
- Add identity removal pass to presets (#13363)
- Binary arithmetic gates (#13354)
- Add Qiskit native QPY ParameterExpression serialization (#13356)
- Oxidize the ConsolidateBlocks pass (#13368)
- Add more default trials to sabre layout (#13360)
- Add
grover_operator
function (#13365) - Add iterator-access methods to
SparseObservable
(#13370) - Add meas_level, meas_return, and noise_model options to BackendSamplerV2 (#13357)
- Prepare
PauliEvolutionGate
for Rustiq & port it to Rust (#13295) - More quantum circuit library refactoring (#13353)
- Optimise
SparsePauliOp.from_operator
(#11557) - Boolean circuits as gates (#13333)
- Improve qubit tracking in HighLevelSynthesis (#13240)
- Parameterize Commutation Checker (#13302)
- IQP as circuit library function (and in Rust) (#13241)
- Implement
SparseObservable.apply_layout
(#13372) - Improve speed of
Pauli.to_label
(#13379) - Implement arithmetic on
SparseObservable
(#13298) - Add RemoveIdentityEquivalent transpiler pass (#12384)
- Add official support for Python 3.13 (#13309)
- Add base representation of
SparseObservable
(#12671) - Use Rust generator function for QuantumVolume class (#13283)
- Implement
__eq__
for remaining standard-library gates exceptmcx
(#13327) - Fix
QuantumCircuit.decompose
for high-level objects (#13311) - Improve deprecation of unit and duration (#13247)
MCMTGate
& plugins (#13150)- Port
ElidePermutations
transpiler pass to Rust (#13094) - Add Rust quantum volume function (#13238)
- Add some more gates to CollectCliffords pass (#13214)
- Make
qasm3.CustomGate
accessible from Python space (#13187) - Oxidize
PauliFeatureMap
(#13045) - Add equivalence-library rules between
rzz
andcp
(#13019) - Port RemoveDiagonalGatesBeforeMeasure to rust (#13065)
- Oxidize Commutation Analysis (#12995)
- Oxidize commutation checker (#12870)
- Oxidize random clifford (#12695)
- Fixed ZZFeatureMap not accepting a list of entanglement (#12767)
- Port the count_ops method in QuantumCircuit to Rust (#13050)
- Fully port Optimize1qGatesDecomposition to Rust (#12959)
- Promote
CONTROL_FLOW_OP_NAMES
to public API (#13057) - [DAGCircuit Oxidation] Port
DAGCircuit
to Rust (#12550) - Adding MCX synthesis plugins (#12961)
- Port
synth_cz_depth_line_mr
to Rust (#12949) - Auxiliary qubit tracking in
HighLevelSynthesis
(#12911) - Move mcx synthesis methods with ancillas to the synthesis library (#12904)
- 'Peephole' optimization - or: collecting and optimizing two-qubit blocks - before routing (#12727) (#12881)
- 'Peephole' optimization - or: collecting and optimizing two-qubit blocks - before routing (#12727)
- Avoid operator creation in transpiler (#12826) (#12875)
- Avoid operator creation in transpiler (#12826)
- Port
star_preroute
to rust (backport #12761) (#12846) - Add config option to leverage all cores for sabre (#12780) (#12841)
- Port
star_preroute
to rust (#12761) - Add config option to leverage all cores for sabre (#12780)
- Bitarray postselect (#12693) (#12836)
- Bitarray postselect (#12693)
- Add
AnnotatedOperation.params
and fix some control issues (#12752) (#12828) - Add a default optimization level to generate_preset_pass_manager (#12150)
- Add
AnnotatedOperation.params
and fix some control issues (#12752)
Changed
- Add Qiskit native QPY ParameterExpression serialization (#13356)
- Use Rust generator function for QuantumVolume class (#13283)
- Raise minimum python version to 3.9 (#12910)
- [DAGCircuit Oxidation] Port
DAGCircuit
to Rust (#12550) - Update metadata of Primitives V2 (#12784) (#12857)
- Update metadata of Primitives V2 (#12784)
- Change the default
routing_method
tosabre
(#12806) (#12847) - Change the default
routing_method
tosabre
(#12806)
Fixed
- Add argument
assume_unitary
toOperator.power
. (#13319) - Fix performance regression in looped
QuantumCircuit.assign_parameters
(#13337) - Fix type of
basis_gates
inBasicSimulator
configuration (#13385) - Fix compatibility issues with SciPy 1.14 (#13358)
- Fix OpenQASM 2
gate
definitions following a shadowed built-ingate
(#13340) - Fix
QuantumCircuit.decompose
for high-level objects (#13311) - Fix bug in QPY symengine payload version handling (#13259)
- Workaround symengine serialization payload incompatibility (#13251)
- Don't run ElidePermutation if routing is disabled (#13184)
- Bug fix in ElidePermutations (#13186)
- Make dense layout algorithm deterministic when run in parallel (#13133)
- Fix qft-plugins for custom 'qft' gates (#13181)
- Re-allow non-standard includes in OpenQASM 3 exporter (#13148)
- improved fast-path detection in HLS (#13070)
- Fix an edge case in Sabre's release valve (#13114)
- Fix the matrix representation of CUGate in Rust (#13121)
- Fix creation of registers in synthesis methods (#13086)
- Restrict
Split2QUnitaries
to run onUnitaryGate
(#13095) - Bug fix in
HoareOptimizer
(#13083) - Fix extraction of controlled parametric gates (#13067)
- Fixed ZZFeatureMap not accepting a list of entanglement (#12767)
- Fix use of
node.op
inSplit2QUnitaries
(#13015) - Fix
UnitaryGate.repeat()
method (#12986) - Move the circuit library's entanglement logic to Rust (#12950)
- [DAGCircuit Oxidation] Port
DAGCircuit
to Rust (#12550) - Fix Rust-space
TwoQubitBasisDecomposer
for non-standard KAK gate (#13014) - Extended the
from_backend
method ofInstructionDurations
to support bothBackendV1
andBackendV2
(#12941) - Fix Initialize.gates_to_uncompute method (#12976)
- Parsing of
seed_transpiler
ingenerate_preset_pass_manager
(#12980) - fix stateprep's normalize (#12988)
- adding copy argument to array (#12979)
- Fix setter so that
SparsePauliOp.paulis.phase
stays zero (#12884) - Fix error message upon misalignment in
PadDynamicalDecoupling
(#12952) (#12954) - Fix error message upon misalignment in
PadDynamicalDecoupling
(#12952) - Improve error message on bad OpenQASM 3
basis_gates
argument (#12945) (#12946) - Improve error message on bad OpenQASM 3
basis_gates
argument (#12945) - Expose seed in
Estimator
andStatevectorEstimator
(#12862) - Fix dag visualization with Var wires (#12848) (#12924)
- Remove init peephole optimization discrete basis check (#12898) (#12920)
- Fix dag visualization with Var wires (#12848)
- Remove init peephole optimization discrete basis check (#12898)
- Fix parsing of huge OpenQASM 2 conditionals (#12774) (#12854)
- Fix
StatevectorSampler
to raise an error if a circuit with c_if is passed (#12842) (#12851) - Fix parsing of huge OpenQASM 2 conditionals (#12774)
- Fix
StatevectorSampler
to raise an error if a circuit with c_if is passed (#12842) - Make
BitArray.{slice_bits,slice_shots,__getitem__}
raiseIndexError
when indices are not valid (#12755) (#12845) - Make
BitArray.{slice_bits,slice_shots,__getitem__}
raiseIndexError
when indices are not valid (#12755) - Add
AnnotatedOperation.params
and fix some control issues (#12752) (#12828) - Add
AnnotatedOperation.params
and fix some control issues (#12752) - Fix
BitArray.from_counts
/from_samples
to not fail for input with only0
outcome andnum_bits=None
(#12800) (#12820) - Fix
BitArray.from_counts
/from_samples
to not fail for input with only0
outcome andnum_bits=None
(#12800)
Qiskit 1.2.4
Qiskit 1.2.3
Qiskit 0.46.3
Release notes: https://docs.quantum.ibm.com/api/qiskit/release-notes/0.46#0463
This is the final release in the 0.x release series marking the end-of-life of the release series.
Changelog
Fixed
- Fix
C3SXGate
to_matrix
method (backport #12742) (#12744) - Fix
replace_block_with_op
on operations with wrong number of qubits (#12637) (#12699) - GenericBackendV2 should fail when the backend cannot allocate the basis gate because its size (backport #12653) (#12666)
- Fix some bugs in loading Solovay Kitaev decompositions (#12579) (#12665)
- Invalidate
parameters
cache on circuit copy (backport #12619) (#12620)
Qiskit 1.2.2
Changelog
Fixed
- Don't run ElidePermutation if routing is disabled (#13184) (#13194)
- Bug fix in ElidePermutations (#13186) (#13191)
- Make dense layout algorithm deterministic when run in parallel (#13133) (#13190)
- Fix qft-plugins for custom 'qft' gates (#13181) (#13189)
- Re-allow non-standard includes in OpenQASM 3 exporter (#13148) (#13185)
- Fix the text drawer with partially idle wires (#13149)
Qiskit 1.2.1
Changelog
Fixed
- Fix an edge case in Sabre's release valve (#13114) (#13130)
- Fix creation of registers in synthesis methods (backport #13086) (#13123)
- Fix the matrix representation of CUGate in Rust (#13121) (#13124)
- Restrict
Split2QUnitaries
to run onUnitaryGate
(#13095) (#13097) - Bug fix in
HoareOptimizer
(#13083) (#13087) - Fix extraction of controlled parametric gates (#13067) (#13080)
- Fix use of
node.op
inSplit2QUnitaries
(backport #13015) (#13062) - Fix Rust-space
TwoQubitBasisDecomposer
for non-standard KAK gate (#13014) (#13026) - Extended the
from_backend
method ofInstructionDurations
to support bothBackendV1
andBackendV2
(#12941) (#13009) - Fix
Initialize.gates_to_uncompute
method (#12976) (#13000) - Parsing of
seed_transpiler
ingenerate_preset_pass_manager
(backport #12980) (#12996) - Fix
normalize
inStatePreparation
(#12988) (#12992) - Add the
copy
argument to__array__
(#12979) (#12987)
Qiskit 1.3.0b1
Changelog
Deprecated
- Deprecates
StochasticSwap
and suggests the use ofSabreSwap
(#12983) - Deprecate BackendV1 and
qiskit.providers.models
(backport #12629) (#12864) - Deprecate BackendV1 and
qiskit.providers.models
(#12629) - Deprecate fake backends based on BackendV1 (backport #12660) (#12837)
- Deprecate fake backends based on BackendV1 (#12660)
- fixes #9355 deprecate visualize_transition (#12287) (#12822)
- fixes #9355 deprecate visualize_transition (#12287)
Added
- Add equivalence-library rules between
rzz
andcp
(#13019) - Port the count_ops method in QuantumCircuit to Rust (#13050)
- Fully port Optimize1qGatesDecomposition to Rust (#12959)
- Promote
CONTROL_FLOW_OP_NAMES
to public API (#13057) - [DAGCircuit Oxidation] Port
DAGCircuit
to Rust (#12550) - Move mcx synthesis methods with ancillas to the synthesis library (#12904)
- 'Peephole' optimization - or: collecting and optimizing two-qubit blocks - before routing (#12727) (#12881)
- 'Peephole' optimization - or: collecting and optimizing two-qubit blocks - before routing (#12727)
- Avoid operator creation in transpiler (#12826) (#12875)
- Avoid operator creation in transpiler (#12826)
- Port
star_preroute
to rust (backport #12761) (#12846) - Add config option to leverage all cores for sabre (#12780) (#12841)
- Port
star_preroute
to rust (#12761) - Add config option to leverage all cores for sabre (#12780)
- Bitarray postselect (#12693) (#12836)
- Bitarray postselect (#12693)
- Add
AnnotatedOperation.params
and fix some control issues (#12752) (#12828) - Add a default optimization level to generate_preset_pass_manager (#12150)
- Add
AnnotatedOperation.params
and fix some control issues (#12752)
Changed
- Raise minimum python version to 3.9 (#12910)
- [DAGCircuit Oxidation] Port
DAGCircuit
to Rust (#12550) - Update metadata of Primitives V2 (#12784) (#12857)
- Update metadata of Primitives V2 (#12784)
- Change the default
routing_method
tosabre
(#12806) (#12847) - Change the default
routing_method
tosabre
(#12806)
Fixed
- Fix an edge case in Sabre's release valve (#13114)
- Fix the matrix representation of CUGate in Rust (#13121)
- Fix creation of registers in synthesis methods (#13086)
- Restrict
Split2QUnitaries
to run onUnitaryGate
(#13095) - Bug fix in
HoareOptimizer
(#13083) - Fix extraction of controlled parametric gates (#13067)
- Fix use of
node.op
inSplit2QUnitaries
(#13015) - Fix
UnitaryGate.repeat()
method (#12986) - Move the circuit library's entanglement logic to Rust (#12950)
- [DAGCircuit Oxidation] Port
DAGCircuit
to Rust (#12550) - Fix Rust-space
TwoQubitBasisDecomposer
for non-standard KAK gate (#13014) - Extended the
from_backend
method ofInstructionDurations
to support bothBackendV1
andBackendV2
(#12941) - Fix Initialize.gates_to_uncompute method (#12976)
- fix stateprep's normalize (#12988)
- adding copy argument to array (#12979)
- Fix setter so that
SparsePauliOp.paulis.phase
stays zero (#12884) - Fix error message upon misalignment in
PadDynamicalDecoupling
(#12952) (#12954) - Fix error message upon misalignment in
PadDynamicalDecoupling
(#12952) - Improve error message on bad OpenQASM 3
basis_gates
argument (#12945) (#12946) - Improve error message on bad OpenQASM 3
basis_gates
argument (#12945) - Expose seed in
Estimator
andStatevectorEstimator
(#12862) - Fix dag visualization with Var wires (#12848) (#12924)
- Remove init peephole optimization discrete basis check (#12898) (#12920)
- Fix dag visualization with Var wires (#12848)
- Remove init peephole optimization discrete basis check (#12898)
- Fix parsing of huge OpenQASM 2 conditionals (#12774) (#12854)
- Fix
StatevectorSampler
to raise an error if a circuit with c_if is passed (#12842) (#12851) - Fix parsing of huge OpenQASM 2 conditionals (#12774)
- Fix
StatevectorSampler
to raise an error if a circuit with c_if is passed (#12842) - Make
BitArray.{slice_bits,slice_shots,__getitem__}
raiseIndexError
when indices are not valid (#12755) (#12845) - Make
BitArray.{slice_bits,slice_shots,__getitem__}
raiseIndexError
when indices are not valid (#12755) - Add
AnnotatedOperation.params
and fix some control issues (#12752) (#12828) - Add
AnnotatedOperation.params
and fix some control issues (#12752) - Fix
BitArray.from_counts
/from_samples
to not fail for input with only0
outcome andnum_bits=None
(#12800) (#12820) - Fix
BitArray.from_counts
/from_samples
to not fail for input with only0
outcome andnum_bits=None
(#12800)
Qiskit 1.2.0
Release notes: https://docs.quantum.ibm.com/api/qiskit/release-notes/1.2
Changelog
Deprecated
- Deprecate BackendV1 and
qiskit.providers.models
(backport #12629) (#12864) - Deprecate fake backends based on BackendV1 (backport #12660) (#12837)
- fixes #9355 deprecate visualize_transition (#12287) (#12822)
- Deprecate V1 Primitives and their utils (#12575)
- Deprecate Qobj and assemble (#12649)
- Deprecate accidentally public internal helper methods on QuantumCircuit (#12785)
- Improve the performance of the
ProductFormula
synthesizers (#12724) - Add warning for bad
justify
input, incircuit_drawer
(#12458) - Deprecate tuple-like access to
CircuitInstruction
(#12640)
Added
- 'Peephole' optimization - or: collecting and optimizing two-qubit blocks - before routing (#12727) (#12881)
- Avoid operator creation in transpiler (#12826) (#12875)
- Port
star_preroute
to rust (backport #12761) (#12846) - Add config option to leverage all cores for sabre (#12780) (#12841)
- Bitarray postselect (#12693) (#12836)
- Add
AnnotatedOperation.params
and fix some control issues (#12752) (#12828) - Move
generate_preset_pass_manager
to a standalone file (#12762) - Update version of OpenQASM 3.0 standard library (#12387)
- Port
synth_permutation_depth_lnn_kms
to Rust (#12746) - Rewrite OpenQASM 3 exporter symbol table (#12776)
- Port
synth_clifford_bm
to Rust. (#12714) - Update MCX recursive synthesis method to reduce number of CX gates (#12772)
- Barebone generic backend options (#12747)
- Adding QFT gate to natively reason about Quantum Fourier Transforms (#11463)
- Improve the performance of the
ProductFormula
synthesizers (#12724) - Improved MCXVChain with dirty auxiliary qubits (#9687)
- Oxidize
synth_cnot_count_full_pmh
(#12588) - Add Uniform State Preparation (#12112)
- Port
synth_clifford_greedy
to Rust (#12601) - Oxidize
synth_permutation_acg
(#12543) - improving
quantum_causal_cone
method in python (#12668) - binary matrices utils in rust (#12456)
- Add infrastructure for gates, instruction, and operations in Rust (#12459)
- Add option to user config to control
idle_wires
in circuit drawer (#12462) - [unitaryHACK] Controlling the Insertion of Multi-Qubit Gates in the Generation of Random Circuits #12059 (#12483)
- Add pos for Parameter (#12496)
- Update
transpile()
andgenerate_preset_pass_manager
to convert loose input of constraints to aTarget
withTarget.from_configuration()
(#12185) - Add
DenseLayout
trial toSabreLayout
(#12453) - add insert_barrier argument to UnitaryOverlap (#12321)
- Add new method for single bitstring target when measuring stabilizerstate probabilities_dict (#12147)
- Replace initialization method by Isometry in StatePreparation (#12178)
Changed
- Update metadata of Primitives V2 (#12784) (#12857)
- Change the default
routing_method
tosabre
(#12806) (#12847) - Use rustworkx 0.15.0 features in DAGCircuit.remove_op_node (#12756)
- Add infrastructure for gates, instruction, and operations in Rust (#12459)
Fixed
- Fix error message upon misalignment in
PadDynamicalDecoupling
(#12952) (#12954) - Improve error message on bad OpenQASM 3
basis_gates
argument (#12945) (#12946) - Fix dag visualization with Var wires (#12848) (#12924)
- Remove init peephole optimization discrete basis check (#12898) (#12920)
- Fix parsing of huge OpenQASM 2 conditionals (#12774) (#12854)
- Fix
StatevectorSampler
to raise an error if a circuit with c_if is passed (#12842) (#12851) - Make
BitArray.{slice_bits,slice_shots,__getitem__}
raiseIndexError
when indices are not valid (#12755) (#12845) - Add
AnnotatedOperation.params
and fix some control issues (#12752) (#12828) - Fix
BitArray.from_counts
/from_samples
to not fail for input with only0
outcome andnum_bits=None
(#12800) (#12820) - fix issue/12311 with fractional gate in basis (#12511)
- Validate
order
kwarg inBitArray.from_bool_array()
(#12686) - Rewrite OpenQASM 3 exporter symbol table (#12776)
- Fixing and documenting how the
Estimator
calculates stds (#12670) - Add clifford gates to collect_cliffords (#12750)
- Fix
C3SXGate
to_matrix
method (#12742) - Oxidize
synth_cnot_count_full_pmh
(#12588) - Fix
replace_block_with_op
on operations with wrong number of qubits (#12637) - Enable the new efficient MCX decompose (#12628)
- GenericBackendV2 should fail when the backend cannot allocate the basis gate because its size (#12653)
- Fix some bugs in loading Solovay Kitaev decompositions (#12579)
- Invalidate
parameters
cache on circuit copy (#12619) - Fix v2 pulse drawer (#12608)
- Use hash of numeric value for bound parameter expressions (#12488)
- Fix bugs with VF2Layout pass and Qiskit Aer 0.13 (#11585)
- Fix
QuantumCircuit.depth
with zero-operands andExpr
nodes (#12429) - Avoid exception in
Target.has_calibration
for instruction without properties (#12526) - Implement
__array__
forqasm2._DefinedGate
(#12119) - Fix a bug in isometry.rs (#12469)
- Avoid lossing precision when scaling frequencies (#12392) (#12416)
- Avoid lossing precision when scaling frequencies (#12392)
- Fix unnecessary serialisation of
PassManager
in serial contexts (#12410) (#12413) - Fix unnecessary serialisation of
PassManager
in serial contexts (#12410) - Handle huge integers in OpenQASM 2 expression evaluator (#12140) (#12400)
- Fix a corner case of
SparsePauliOp.apply_layout
(#12375) (#12402) - Fix a corner case of
SparsePauliOp.apply_layout
(#12375) - Handle huge integers in OpenQASM 2 expression evaluator (#12140)
- Fix {Pauli,SparsePauliOp}.apply_layout to raise an error with negative or duplicate indices (#12385) (#12386)
- Fix {Pauli,SparsePauliOp}.apply_layout to raise an error with negative or duplicate indices (#12385)
- fix edge coloring bug in plot_coupling_map (#12369) (#12379)
- Fix missing layout in
Commuting2qGateRouter
(#12137) (#12383) - Fix missing layout in
Commuting2qGateRouter
(#12137) - fix edge coloring bug in plot_coupling_map (#12369)
Qiskit 1.1.2
Changelog
Fixed
- Fix dag visualization with Var wires (#12848) (#12923)
- Fix parsing of huge OpenQASM 2 conditionals (#12774) (#12853)
- Make
BitArray.{slice_bits,slice_shots,__getitem__}
raiseIndexError
when indices are not valid (backport #12755) (#12844) - Fix
BitArray.from_counts
/from_samples
to not fail for input with only0
outcome andnum_bits=None
(#12800) (#12821) - fix issue/12311 with fractional gate in basis (#12511) (#12813)
- Add clifford gates to collect_cliffords (backport #12750) (#12763)
- Fix
C3SXGate
to_matrix
method (backport #12742) (#12745) - Fix
replace_block_with_op
on operations with wrong number of qubits (#12637) (#12700) - GenericBackendV2 should fail when the backend cannot allocate the basis gate because its size (#12653) (#12667)
- Fix some bugs in loading Solovay Kitaev decompositions (#12579) (#12664)
- Invalidate
parameters
cache on circuit copy (backport #12619) (#12621)