Skip to content

Releases: Qiskit/qiskit

Qiskit 2.5.2

Choose a tag to compare

@qiskit-bot qiskit-bot released this 13 Aug 17:49
2.5.2
c1c01ad

Changelog

Fixed

  • Sum VF2Layout average errors in a deterministic order (#16732) (#16761)
  • Fix add/sub optimizations including the same symbols (backport #16752) (#16759)
  • Reimplement SymbolExpr::eval to be iterative (backport #16756) (#16758)
  • dagcircuit: transfer DAG-level variables in substitute_node_with_dag (#15542) (#16744)
  • Fix memory leak in Suzuki-Trotter synthesis (#16687) (#16739)
  • Fix OptimizeCliffordT producing non-unitarily-equivalent output when basis excludes sx/sxdg (#16729) (#16735)
  • Parameter expression bugfixes (backport #16283) (#16714)
  • Update to rsgridsynth 0.2.2 (backport #16685) (#16711)
  • Fix potential panic in DAGCircuit.depth by bumping rustworkx-core to 0.18.1 (#16686) (#16715)
  • Preserve StatePreparation width in inverse (#16431) (#16681)
  • Fix circuit drawing layer overlaps inside of ControlFlowOps (#16639) (#16659)
  • Fix non-determinism in DAGCircuit::remove_qubits (#16656) (#16658)

Qiskit 2.5.1

Choose a tag to compare

@qiskit-bot qiskit-bot released this 23 Jul 17:09
5d6ad05

Changelog

Fixed

  • Fix serial_layers global phase copying (#16362) (#16647)
  • Fix transpiler error message with routing_pass when layout_trials or swap_trials is set (#16637) (#16644)
  • Fix deadlock in Optimize1qGatesDecomposition (#16592) (#16645)
  • Clarify error message about gate missing from WrapAngleRegistry (#16633) (#16635)
  • Fix sx resynthesis of negative angles in CommutativeCancellation (#16599) (#16615)
  • Fix tautological boolean oracle synthesis (#16530) (#16543)

Qiskit 2.5.0

Choose a tag to compare

@qiskit-bot qiskit-bot released this 02 Jul 18:51
2.5.0
bbfa617

Changelog

Added

  • A multi-IR staged pass manager (#16418)
  • Allow 32-bit registers in classical.expr system (#16449)
  • Add C API for inspecting control flow instructions (#16179)
  • Add register query functions to the C API (#16177)
  • Var-based measurement experiments (#16273)
  • Add C API for inspecting classical expressions (#16178)
  • Use GateCount over Depth in Clifford+T pipeline (#16218)
  • Add QuantumCircuit method to compute estimated fidelity (#16292)
  • Add C API for two qubit unitary peephole optimization pass (#16088)
  • Extend litinski transformation for all Pauli rotations (#15974)
  • Add additional Z and X rotation gate handling to CommutativeCancellation (#16191)
  • Add PBC transpilation pipeline (#16270)
  • Add Custom Gates/Instructions in Rust (#15684)
  • Add QubitSparsePauliList.commutes (#16194)
  • extend ConvertToPauliProductRotations to PPRs and PPMs (#16306)
  • Expose qk_{circuit, dag}_global_phase in the C API (#16278)
  • Add generate_clifford_t_pass_manager (#15918)
  • Make uuid public on ParameterVector (#16216)
  • Add DAG-based variant of BasisTranslator transpiler pass in C API (#15783)
  • Add new multithreaded TwoQubitPeepholeOptimization pass (#13419)
  • Improve single-qubit gate count in TwoQubitControlledUDecomposer (#16123)
  • Track PauliLindbladMap generators during parity_sample (#16072)
  • Add auto-generated ctypes bindings to C API (#16067)
  • make plot_bloch_vector accept tuple input (#16103)
  • Improve commutation checking of Pauli product rotations and measurements (#15815)
  • Add option to set the seed_transpiler from environment (#16001)
  • Enable try_matrix & friends for PPR and PPM (#16011)
  • Add control flow support to ConvertToPauliRotations (#15941)
  • Convert Sabre's lookahead to layer-based tracking (#14911)
  • Support commutation check between Pauli-based gates and standard gates (After reverting #15488) (#15925)
  • Extend RemoveIdentityEquivalent and CommutativeOptimization with PauliProductRotations (#15810)
  • Support commutation check between Pauli-based gates and standard gates (#15488)
  • Support phase gates in LitinskiTransformation (#15773)

Fixed

  • Fix OverflowError in QuantumCircuit.for_loop for negative integers in list indexset (#16432) (#16525)
  • Fix Initialize.gates_to_uncompute for integer inputs (#16492) (#16519)
  • Fix qasm3 experimental exporter delay units for ms and ps (#16233) (#16477)
  • Fix incorrect global phase shift for P and U1 gates in CommutativeCancellation (#16402) (#16509)
  • Add duration for reset to GenericBackendV2 (#16442)
  • Fixes #16166: Preserve global_phase in dagdependency_to_circuit (#16323)
  • Have SynthesizeRZRotations clear rsgridsynth global caches (#16392)
  • Correctly combining control modifiers in OptimizeAnnotated (#16428)
  • Fix stack-overflow segfault in OpenQASM 2 expression parsers (#16421)
  • Fix MultiplierGate truncated result decomposition (#16394)
  • Fix CommutationChecker for controlled rotation gates (#16337)
  • Fix BitArray bitcount padding handling (#16309)
  • Fix determinism in ConsolidateBlocks (#16237)
  • Fix redundant unit numerator in pi_check pi fractions (#16175)
  • Remove QPY warning on deserialising incomplete ParameterVectors (#16222)
  • Fix composing virtual permutation layouts for ElidePermutations and StarPreRouting (#13945)
  • QPY: Pauli Product Measurement/Rotation parameter fix (#16294)
  • Reject loopback edges in CouplingMap (#16310)
  • fix: Ensure there is no subtraction panic via underflow (#16249)
  • Fix panic on 1.0 error in VF2Layout (#16285)
  • Fix ConstrainedReschedule barrier handling (#16151)
  • Initialize ConstrainedReschedule.target unconditionally (#16246)
  • Sorts gate array to have deterministic gate selection (#16139)
  • Fix UnrollForLoops global phase accumulation (#16201)
  • Fix Statevector.evolve modifying input state in-place (Fixes 15750) (#15905)
  • Fix Commuting2qGateRouter global phase handling (#16215)
  • Fix InverseCancellation for symmetric pairs (#16153)
  • Adding LinearFunction.inverse (#16203)
  • Fix invalid simplification of XXPlusYY gates in CommutativeOptimization (#16163)
  • Add safe shape checking to synth_cz_depth_line_mr (#16154)
  • fix(library): clifford_6_4 template missing global_phase causes silent rejection (#15944)
  • make plot_bloch_vector accept tuple input (#16103)
  • Fix QPY loading delay integers durations incorrectly (#16076)
  • Fix forced block consolidation for incomplete basis sets (#16075)
  • Add option to set the seed_transpiler from environment (#16001)
  • Fix panic in RemoveIdentityEquivalent with ParameterVector global phase (#16054)
  • Fixed commutation checking between two Pauli product measurements (backport #16023) (#16040)
  • Fixed commutation checking between two Pauli product measurements (#16023)
  • Avoid triggering register/layout warning in remove_final_measurements (#16026) (#16037)
  • Avoid triggering register/layout warning in remove_final_measurements (#16026)
  • Fix C transpiler level 3 optimisation loop (#15967) (#16008)
  • Fix C transpiler level 3 optimisation loop (#15967)
  • Producing correct QFT circuits over linear connectivity with 32 or more qubits (#16004) (#16007)
  • Producing correct QFT circuits over linear connectivity with 32 or more qubits (#16004)
  • Fix TemplateOptimization dropping the global_phase on substitution (#15943)
  • Reimplementing QSD using faer instead of nalgebra. (#15874)
  • Rewrite QPY ParameterExpression handling in pure Polish form (#15934) (#15961)
  • Rewrite QPY ParameterExpression handling in pure Polish form (#15934)
  • Support commutation check between Pauli-based gates and standard gates (After reverting #15488) (#15925)
  • Correctly enforce matrix size check in CommutationChecker (#15933) (#15936)
  • Correctly enforce matrix size check in CommutationChecker (#15933)
  • Support commutation check between Pauli-based gates and standard gates (#15488)
  • QPY Rust and Python compatibility fixes (#15847) (#15887)
  • QPY Rust and Python compatibility fixes (#15847)
  • Remove unwanted remapping (#15872) (#15885)
  • Remove unwanted remapping (#15872)
  • Fix: BasisTranslator processing of nested ControlFlowOp (#15875) (#15884)
  • Fix: BasisTranslator processing of nested ControlFlowOp (#15875)
  • Fix: Initialize.inverse() now raises CircuitError immediately (#15782) (#15848)
  • Fix: Initialize.inverse() now raises CircuitError immediately (#15782)

Changed

  • Bumpy minimum NumPy version to 2.0 (#16243)
  • Write policy on dependency versioning (#16239)

Deprecated

  • Deprecations in qs_decomposition: opt_a* are not needed and decomposer_*q restrictions (#16158)
  • Remove the commutation cache from the commutation checker (#15988)

Build System

  • Bump setuptools-rust to 1.13 (#16500) (#16516)
  • Use stestr to prune its own history in CI jobs (#16364)
  • Add C-API slot-assignment compatibility check (#16301)
  • Add slot-listing command to bindgen-cli (#16289)
  • Rename bindgen-c to bindgen-cli (#16096)
  • Add option to use mimalloc as global allocator (#16024)
  • Bump MSRV to 1.87 and nalgebra to the 0.34 release (#16045)

Performance

  • Fix cache and prediction misses in Target::qargs (#16476) (#16479)
  • Update Sabre extended set on-the-fly (#14912)
  • Use GateCount over Depth in Clifford+T pipeline (#16218)
  • Move ParameterVector to Rust (#16228)
  • Parallelize unitary synthesis (#16275)
  • Use toposort instead of topological_op_nodes for DAG reconstruction (#15987)
  • Perform ConsolidateBlocks analysis in parallel (#16230)
  • Make Optimize1qGatesDecomposition multithreaded (#15567)
  • Use np.bitwise_count in BitArray.bitcount (#15836)
  • Use TwoQubitPeepholeOptimization in preset pass managers (#16136)
  • Speedup SubstitutePi4Rotations (#16217)
  • Parallelize the CommutationAnalysis pass (#16014)
  • Pivot to foldhash for hash implementation in IndexMap (#15920)
  • Update PauliProductRotationGate.to_matrix() from scipy to numpy (#16016)
  • Add option to use mimalloc as global allocator (#16024)

Qiskit 2.5.0rc1

Qiskit 2.5.0rc1 Pre-release
Pre-release

Choose a tag to compare

@qiskit-bot qiskit-bot released this 18 Jun 21:16
2.5.0rc1
cd146f5

Changelog

Added

  • A multi-IR staged pass manager (#16418)
  • Allow 32-bit registers in classical.expr system (#16449)
  • Add C API for inspecting control flow instructions (#16179)
  • Add register query functions to the C API (#16177)
  • Var-based measurement experiments (#16273)
  • Add C API for inspecting classical expressions (#16178)
  • Use GateCount over Depth in Clifford+T pipeline (#16218)
  • Add QuantumCircuit method to compute estimated fidelity (#16292)
  • Add C API for two qubit unitary peephole optimization pass (#16088)
  • Extend litinski transformation for all Pauli rotations (#15974)
  • Add additional Z and X rotation gate handling to CommutativeCancellation (#16191)
  • Add PBC transpilation pipeline (#16270)
  • Add Custom Gates/Instructions in Rust (#15684)
  • Add QubitSparsePauliList.commutes (#16194)
  • extend ConvertToPauliProductRotations to PPRs and PPMs (#16306)
  • Expose qk_{circuit, dag}_global_phase in the C API (#16278)
  • Add generate_clifford_t_pass_manager (#15918)
  • Make uuid public on ParameterVector (#16216)
  • Add DAG-based variant of BasisTranslator transpiler pass in C API (#15783)
  • Add new multithreaded TwoQubitPeepholeOptimization pass (#13419)
  • Improve single-qubit gate count in TwoQubitControlledUDecomposer (#16123)
  • Track PauliLindbladMap generators during parity_sample (#16072)
  • Add auto-generated ctypes bindings to C API (#16067)
  • make plot_bloch_vector accept tuple input (#16103)
  • Improve commutation checking of Pauli product rotations and measurements (#15815)
  • Add option to set the seed_transpiler from environment (#16001)
  • Enable try_matrix & friends for PPR and PPM (#16011)
  • Add control flow support to ConvertToPauliRotations (#15941)
  • Convert Sabre's lookahead to layer-based tracking (#14911)
  • Support commutation check between Pauli-based gates and standard gates (After reverting #15488) (#15925)
  • Extend RemoveIdentityEquivalent and CommutativeOptimization with PauliProductRotations (#15810)
  • Support commutation check between Pauli-based gates and standard gates (#15488)
  • Support phase gates in LitinskiTransformation (#15773)

Fixed

  • Add duration for reset to GenericBackendV2 (#16442)
  • Fixes #16166: Preserve global_phase in dagdependency_to_circuit (#16323)
  • Have SynthesizeRZRotations clear rsgridsynth global caches (#16392)
  • Correctly combining control modifiers in OptimizeAnnotated (#16428)
  • Fix stack-overflow segfault in OpenQASM 2 expression parsers (#16421)
  • Fix MultiplierGate truncated result decomposition (#16394)
  • Fix CommutationChecker for controlled rotation gates (#16337)
  • Fix BitArray bitcount padding handling (#16309)
  • Fix determinism in ConsolidateBlocks (#16237)
  • Fix redundant unit numerator in pi_check pi fractions (#16175)
  • Remove QPY warning on deserialising incomplete ParameterVectors (#16222)
  • Fix composing virtual permutation layouts for ElidePermutations and StarPreRouting (#13945)
  • QPY: Pauli Product Measurement/Rotation parameter fix (#16294)
  • Reject loopback edges in CouplingMap (#16310)
  • fix: Ensure there is no subtraction panic via underflow (#16249)
  • Fix panic on 1.0 error in VF2Layout (#16285)
  • Fix ConstrainedReschedule barrier handling (#16151)
  • Initialize ConstrainedReschedule.target unconditionally (#16246)
  • Sorts gate array to have deterministic gate selection (#16139)
  • Fix UnrollForLoops global phase accumulation (#16201)
  • Fix Statevector.evolve modifying input state in-place (Fixes 15750) (#15905)
  • Fix Commuting2qGateRouter global phase handling (#16215)
  • Fix InverseCancellation for symmetric pairs (#16153)
  • Adding LinearFunction.inverse (#16203)
  • Fix invalid simplification of XXPlusYY gates in CommutativeOptimization (#16163)
  • Add safe shape checking to synth_cz_depth_line_mr (#16154)
  • fix(library): clifford_6_4 template missing global_phase causes silent rejection (#15944)
  • make plot_bloch_vector accept tuple input (#16103)
  • Fix QPY loading delay integers durations incorrectly (#16076)
  • Fix forced block consolidation for incomplete basis sets (#16075)
  • Add option to set the seed_transpiler from environment (#16001)
  • Fix panic in RemoveIdentityEquivalent with ParameterVector global phase (#16054)
  • Fixed commutation checking between two Pauli product measurements (backport #16023) (#16040)
  • Fixed commutation checking between two Pauli product measurements (#16023)
  • Avoid triggering register/layout warning in remove_final_measurements (#16026) (#16037)
  • Avoid triggering register/layout warning in remove_final_measurements (#16026)
  • Fix C transpiler level 3 optimisation loop (#15967) (#16008)
  • Fix C transpiler level 3 optimisation loop (#15967)
  • Producing correct QFT circuits over linear connectivity with 32 or more qubits (#16004) (#16007)
  • Producing correct QFT circuits over linear connectivity with 32 or more qubits (#16004)
  • Fix TemplateOptimization dropping the global_phase on substitution (#15943)
  • Reimplementing QSD using faer instead of nalgebra. (#15874)
  • Rewrite QPY ParameterExpression handling in pure Polish form (#15934) (#15961)
  • Rewrite QPY ParameterExpression handling in pure Polish form (#15934)
  • Support commutation check between Pauli-based gates and standard gates (After reverting #15488) (#15925)
  • Correctly enforce matrix size check in CommutationChecker (#15933) (#15936)
  • Correctly enforce matrix size check in CommutationChecker (#15933)
  • Support commutation check between Pauli-based gates and standard gates (#15488)
  • QPY Rust and Python compatibility fixes (#15847) (#15887)
  • QPY Rust and Python compatibility fixes (#15847)
  • Remove unwanted remapping (#15872) (#15885)
  • Remove unwanted remapping (#15872)
  • Fix: BasisTranslator processing of nested ControlFlowOp (#15875) (#15884)
  • Fix: BasisTranslator processing of nested ControlFlowOp (#15875)
  • Fix: Initialize.inverse() now raises CircuitError immediately (#15782) (#15848)
  • Fix: Initialize.inverse() now raises CircuitError immediately (#15782)

Changed

  • Bumpy minimum NumPy version to 2.0 (#16243)
  • Write policy on dependency versioning (#16239)

Deprecated

  • Deprecations in qs_decomposition: opt_a* are not needed and decomposer_*q restrictions (#16158)
  • Remove the commutation cache from the commutation checker (#15988)

Build System

  • Use stestr to prune its own history in CI jobs (#16364)
  • Add C-API slot-assignment compatibility check (#16301)
  • Add slot-listing command to bindgen-cli (#16289)
  • Rename bindgen-c to bindgen-cli (#16096)
  • Add option to use mimalloc as global allocator (#16024)
  • Bump MSRV to 1.87 and nalgebra to the 0.34 release (#16045)

Performance

  • Update Sabre extended set on-the-fly (#14912)
  • Use GateCount over Depth in Clifford+T pipeline (#16218)
  • Move ParameterVector to Rust (#16228)
  • Parallelize unitary synthesis (#16275)
  • Use toposort instead of topological_op_nodes for DAG reconstruction (#15987)
  • Perform ConsolidateBlocks analysis in parallel (#16230)
  • Make Optimize1qGatesDecomposition multithreaded (#15567)
  • Use np.bitwise_count in BitArray.bitcount (#15836)
  • Use TwoQubitPeepholeOptimization in preset pass managers (#16136)
  • Speedup SubstitutePi4Rotations (#16217)
  • Parallelize the CommutationAnalysis pass (#16014)
  • Pivot to foldhash for hash implementation in IndexMap (#15920)
  • Update PauliProductRotationGate.to_matrix() from scipy to numpy (#16016)
  • Add option to use mimalloc as global allocator (#16024)

Qiskit 2.4.2

Choose a tag to compare

@qiskit-bot qiskit-bot released this 12 Jun 17:39
2.4.2
5a1cf31

Changelog

Fixed

  • Fix stack-overflow segfault in OpenQASM 2 expression parsers (#16422)
  • Fix MultiplierGate truncated result decomposition (#16394) (#16399)
  • Fix CommutationChecker for controlled rotation gates (backport #16337) (#16395)
  • Fix redundant unit numerator in pi_check pi fractions (#16175) (#16358)
  • Fix composing virtual permutation layouts for ElidePermutations and StarPreRouting (#13945) (#16355)
  • fix: Ensure there is no subtraction panic via underflow (#16249) (#16319)
  • Fix panic on 1.0 error in VF2Layout (#16285) (#16287)
  • Fix Statevector.evolve modifying input state in-place (Fixes 15750) (#15905) (#16227)
  • Fix ConstrainedReschedule barrier handling (#16151) (#16284)
  • Initialize ConstrainedReschedule.target unconditionally (#16246) (#16280)
  • Fix UnrollForLoops global phase accumulation (#16201) (#16238)
  • Fix InverseCancellation for symmetric pairs (#16153) (#16211)
  • Add safe shape checking to synth_cz_depth_line_mr (#16154) (#16155)

Qiskit 1.4.6

Choose a tag to compare

@qiskit-bot qiskit-bot released this 12 Jun 17:37
1.4.6
13a3d76

Changelog

Fixed

  • Fix stack-overflow segfault in OpenQASM 2 expression parsers (#16423)

Qiskit 2.4.1

Choose a tag to compare

@qiskit-bot qiskit-bot released this 24 Apr 19:17
2.4.1
0fd015a

Changelog

Fixed

  • Fix QPY loading delay integers durations incorrectly (#16076) (#16083)
  • Fix panic in RemoveIdentityEquivalent with ParameterVector global phase (#16054) (#16055)

Qiskit 2.4.0

Choose a tag to compare

@qiskit-bot qiskit-bot released this 16 Apr 15:46
2.4.0
87a1d50

Release notes: https://quantum.cloud.ibm.com/docs/en/api/qiskit/release-notes/2.4

Changelog

Added

  • Add safe Python-extension module C API headers (#15762)
  • Add qk_circuit_draw function to the C API (#15361)
  • New function to negate expressions (#15447)
  • Add runtime-version checking qk_api_version (#15831)
  • Add barrier_label_len option to circuit drawers (#15776)
  • Enable parameterized gates in C (#15106)
  • Implement SparseObservable.evolve (#15561)
  • Add C API vtable to pyext (#15761)
  • Introduce QkTranspileState in C transpile stages. (#15486)
  • Add C/Python interop for QuantumRegister and ClassicalRegister (#15768)
  • Add Python conversion to QkObs (#15821)
  • PBC transformations for C (#15756)
  • SynthesizeRZRotations pass (#15641)
  • Add QkCircuit C/Python interoperation via QuantumCircuit._data (#15767)
  • Separate type/constant declarations from functions in C headers (#15760)
  • Rust QPY version 13 compatibility (#15663)
  • Add C/Python interop for Target and DAGCircuit (#15337)
  • Expose Pauli-based computation gates to C (#15754)
  • Add qiskit.capi module (#15711)
  • Add qk_dag_substitute_node_with_unitary to the C API (#15757)
  • Transpiler pass that converts a generic circuit to PBC (#15502)
  • Use PauliProductRotationGate in LitinskiTransformation (#15753)
  • Add PauliProductRotationGate (#15720)
  • C API function for replacing a block of nodes with a unitary gate (#15682)
  • Add DAG-based variants of transpiler pass functions in C API (#15614)
  • Support adding a barrier in LitinskiTransformation (#15639)
  • Add Suzuki-Trotter to C API (#15459)
  • Fix linear dependency on base bit count in QuantumCircuit.compose (#15696)
  • RCCXGate is self-inverse (#15686)
  • feat: SparseObservable addition with scalar multiplication (#15599)
  • feat: in-place arithmetic for QkObs (#15598)
  • Extend SubstitutePi4Rotations to 2q gates (#15483)
  • Reducing the number of Clifford gates in OptimizeCliffordT (#15634)
  • Add PauliLindbladMap.generators() method (#15544)
  • Add RXX/RYY-based equivalence for XXMinusYYGate (#15604)
  • Rewrite default UnitarySynthesis to cache decomposers (#15492)
  • Add method to draw coupling map (#15114)
  • Allow null pointers for zero-length slices in QkObs (#15540)
  • Add SparseObservable support to evolved_operator_ansatz (#15442)
  • Add pauli() accessor to PauliProductMeasurement (#15469)
  • Add Clifford circuit optimization to BasicSimulator (#15159)
  • Expose IQP circuit generator via C bindings (#15396)

Fixed

  • Fixed commutation checking between two Pauli product measurements (backport #16023) (#16040)
  • Avoid triggering register/layout warning in remove_final_measurements (#16026) (#16037)
  • Fix C transpiler level 3 optimisation loop (#15967) (#16008)
  • Producing correct QFT circuits over linear connectivity with 32 or more qubits (#16004) (#16007)
  • Rewrite QPY ParameterExpression handling in pure Polish form (#15934) (#15961)
  • Correctly enforce matrix size check in CommutationChecker (#15933) (#15936)
  • QPY Rust and Python compatibility fixes (#15847) (#15887)
  • Remove unwanted remapping (#15872) (#15885)
  • Fix: BasisTranslator processing of nested ControlFlowOp (#15875) (#15884)
  • Fix: Initialize.inverse() now raises CircuitError immediately (#15782) (#15848)
  • Fix annotation-handling in Rust-space QPY (#15649)
  • Don't track loop_param (#15814)
  • Fix PauliEvolutionGate trace and dim calculation (#15816)
  • Avoid panics in Quantum Shannon Decomposition Rust code (#15635)
  • Fix QPY bug with user-defined register named 'ancilla' (#15623)
  • Forbid duplicate cargs in QuantumCircuit.append (#15789)
  • Fix synth_clifford_depth_lnn for single-qubit Cliffords (#15781)
  • Fix linear dependency on base bit count in QuantumCircuit.compose (#15696)
  • Typed iterator in QASM3 export of for loops (#15290)
  • Bump minimal NumPy Version to 1.21 (#15705)
  • Fix HighLevelSynthesis qubit tracking mechanism (#15685)
  • Fix ParameterExpression.sympify() for RPOW operations (#15642)
  • Fix MCX synthesis methods when the number of control qubits is 0 (#15672)
  • Fix defining and appending multi-controlled gates with 0 control qubits. (#15673)
  • Fixing QuantumCircuit.repeat with parameterized gates (#15646)
  • Fix digit escaping in OpenQASM 3 identifier (#15305)
  • Add check excluding BreakLoop and ContinueLoop from control flow identification (#15626)
  • Fix "`BreakLoopOp' object has no attribute 'blocks" bug (#15581)
  • Make docstring for Counts more precise and validate input (#8653)
  • Handle zero-length permutation synthesis (#15556)
  • Automatically determine coeffs type in SparsePauliOp.from_sparse_list (#15427)
  • Check length of bit_terms before accessing during qk_obs_term (#15537)
  • Fix plot_state_qsphere phase anchor bias due to solver noise (#15494)
  • Represent non-fixed params as NaN for QkTargetOp (#15463) (#15525)
  • Represent non-fixed params as NaN for QkTargetOp (#15463)
  • Fix param extraction for arrays with a single element (backport #15436) (#15522)
  • Fix param extraction for arrays with a single element (#15436)
  • Add SparseObservable support to evolved_operator_ansatz (#15442)

Changed

  • Enable parameterized gates in C (#15106)
  • Add Python conversion to QkObs (#15821)
  • Add QkCircuit C/Python interoperation via QuantumCircuit._data (#15767)
  • Update Linux build image to manylinux_2_28 (#15791)
  • Use PauliProductRotationGate in LitinskiTransformation (#15753)
  • Replace bincode with binrw in basic_approximations serialization (#15693)
  • Pivot to using ruff for all linting (#15603)
  • Use QkParam as parameters for QkTargetOp. (#15538)
  • Remove deprecated QISKIT_VERSION_NUMERIC symbol (#15518)

Deprecated

  • Deprecate qk_transpiler_standalone_optimize_1q_sequences (#15627)

Removed

  • Follow through on MCMT deprecations (#15606)

Build System

  • Update Linux build image to manylinux_2_28 (#15791)
  • Add qiskit.capi module (#15711)
  • Move cbindgen logic into separate crate (#15679)
  • Replace requirements-*.txt with PEP 735 dependency groups (#15619)
  • Relax required version of CMake (#15653)
  • Expose default build profile as QISKIT_BUILD_PROFILE (#15242)

Qiskit 2.4.0rc3

Qiskit 2.4.0rc3 Pre-release
Pre-release

Choose a tag to compare

@qiskit-bot qiskit-bot released this 07 Apr 19:50
2.4.0rc3
9e171e8

Changelog

Fixed

  • Rewrite QPY ParameterExpression handling in pure Polish form (#15934) (#15961)
  • Correctly enforce matrix size check in CommutationChecker (#15933) (#15936)

Qiskit 2.4.0rc2

Qiskit 2.4.0rc2 Pre-release
Pre-release

Choose a tag to compare

@qiskit-bot qiskit-bot released this 27 Mar 11:11
2.4.0rc2
a1034c1

Changelog

Fixed

  • QPY Rust and Python compatibility fixes (#15847) (#15887)
  • Remove unwanted remapping (#15872) (#15885)
  • Fix: BasisTranslator processing of nested ControlFlowOp (#15875) (#15884)
  • Fix: Initialize.inverse() now raises CircuitError immediately (#15782) (#15848)