Published January 8, 2026
| Version 2.3.0
Software
Open
Qiskit/qiskit: Qiskit 2.3.0
Authors/Creators
- Matthew Treinish
- Jake Lishman1
- Luciano Bello2
- Jay Gambetta1
- Diego M. Rodríguez3
- Manoel Marques4
- Julien Gacon5
- Paul Nation6
- Christopher J. Wood7
- ewinston
- Juan Gomez
- Richard Chen
- Andrew Cross
- Kevin Krsulich
- Alexander Ivrii
- Steve Wood4
- Ismael Faro Sertage4
- Naoki Kanazawa
- Elena Peña Tapia8
- Lauren Capelluto
- Thomas Alexander
- Eric Arellano9
- Ikko Hamamura10
- Edwin Navarro
- Takashi Imamichi1
- Salvador de la Puente González11
- Raynel Sanchez1
- Soolu Thomas6
- Shelly Garion6
- 1. @IBM
- 2. Qiskit - IBM Quantum
- 3. @IBMResearch
- 4. IBM Research
- 5. IBM Quantum & EPFL
- 6. IBM
- 7. Google
- 8. @IBM @Qiskit
- 9. IBM Quantum
- 10. NVIDIA
- 11. @IBMQuantum
Description
Changelog
Deprecated
- Deprecate unsafe legacy format in Solovay Kitaev (#15360)
- Deprecate annotated=None in control methods (#15356)
Added
- Add ways to retrieve operations from the
QkTarget(#15283) - Add Statevector.from_circuit to mirror Operator.from_circuit (#14981)
- Add PauliLindbladMap.parity_sample method (#15335)
- Support simple
IfElseOpconditionals in OpenQASM 2 export (#14556) - Add
qk_dag_composeto the C API (#15329) - Add ways to iterate over the
Targetin C. (#15208) - Added Reverse topology iterator in DAG (#15060)
- Using Ross-Selinger in Qiskit (#15270)
- Allow user-specified unitary synthesis methods for Clifford+T transpilation (#14952)
- Add the argument
fallback_on_defaulttoUnitarySynthesis(#15287) - Add qk_transpile_stage_routing() to the C API (#15358)
- Add substitute_node_with_dag to c api (#15374)
- Add qk_transpile_stage_optimization() to the C API (#15295)
- Enable commutation checks among Pauli-based gates (#15359)
- Add qk_transpile_stage_translation() to the C API (#15293)
- Add method wrappers for circuit and DAG converters (#15043)
- Add DAG copy-empty-like to the C API (#15320)
- Add qk_transpile_stage_layout() to the C API (#15241)
- Add SolovayKitaev as part of the default unitary synthesis plugin (#15285)
- Unified commutative optimization (#15047)
- Add
instruction_supportedtoQkTarget. (#14566) - Converting RX/RY/RZ rotations to {Clifford,T,Tdg} (#15321)
- Add
QkDaginstruction appliers and getter to C API (#15313) - Add
qk_dag_successorsandqk_dag_predecessorsto the C API (#15346) - Expose both forms of VF2 layout passes in the C API (#14864)
- Add
qk_circuit_to_dagandqk_dag_to_circuitto the C API (#15247) - Adding
qk_dag_topological_op_nodesto C API (#15297) - Add qk_transpile_stage_init() to the C API (#15207)
- Port
VF2PostLayoutto Rust (#14863) - Add
UnitaryGatehandling toQkDagC API (#15363) - Add no-overhead
ParameterExpression.num_parametersattribute (#15354) - Split VF2
call_limitto before and after first layout (#14862) - Extend
LitinskiTransformationpass to handle measurements (#15217) - Create
PauliProductMeasurementinstruction (#15126) - Add DAG typed node support to C API. (#15206)
- Optimize the
OptimizeCliffordTtranspiler pass. (#14996) - Expose
Neighborsin the C API (#15236) - Encapsulate VF2 configuration and return types (#14861)
- Add Clifford prepend gates internal methods to improve Clifford.dot (#15166)
- Add
QkDagwith registers to the C API. (#15200) - Improve performance of quantum_info predicates (#15118)
- Add quantum volume generator function to C API (#15037)
- Add
QkParamto the C API (#14837) - Rust Implementation for using
SparseObservableinsampled_expectation_value(#14516) - Unbias directionality in VF2 priority queue (#14859)
- Handle VF2 coupling-map shuffling in Rust (#14860)
- Use QSD from rust in default unitary synthesis plugin (#15003)
- Make VF2 fully generic over index types and semantics (#14858)
- Use on-the-fly scoring in VF2Layout (#14857)
- Rust Shannon Decomposition (#14797)
Changed
- Move preferred location of
WrapAnglesdefault registry (#15101) - Drop support for Python 3.9 (#15371)
- adding name to qktarget (#15334)
- Cleanup of circuit library
controlmethods (#15209) - Swap to
setuptools>=77.0licence specification (#15128) - Drop macOS x86_64 to tier 2 (#15041)
- Lower limits on
VF2PostLayoutin exact mode (#15068)
Fixed
- Represent non-fixed params as
NaNforQkTargetOp(#15463) (#15525) - Fix param extraction for arrays with a single element (backport #15436) (#15522)
- QPY serialization of
SparseObservable(#15263) - Fix timeline drawer for gates without unitary in target (#15421)
- Stop using a parallel sort in disjoint utils (#15410)
- Bug fix for Clifford+T transpilation: passing incorrect argument to
generate_unroll_3q(#15401) - fix: preserve identity 'I' characters in PauliEvolutionGate labels (#15173)
- Fix operator @ quantumstate multiplication (#14963)
- Fix text drawer layering for classical wires (#15262)
Pauli.evolve()recognize common rotations by (n*pi/2) as Clifford gates (#15289)- Unitary synthesis bug fix (#15286)
- Change the rust structure of expr.Value (#15272)
- Fix reuse of
ConsolidateBlocksinstances (#15258) - Fix qpy.dump failure with gzip write streams in QPY v16 (backward seek unsupported) (#15158)
- Raise exception not panic on bad
ConsolidateBlocksinput (#15110) - Fix schedule analysis passes with empty circuits (#15147)
- Fix qubit mapping in
ConsolidateBlockscontrol-flow blocks (#15083) - Fixing inverse methods for MCPhase and MCU1 gates (#15181)
- Fix textdrawer for controlflow with different regs (#15155)
- Deepcopy BoxOp bodies when copying circuits (#14918)
- Fix incorrect mapping of ControlFlow block qargs in
BasisTranslator(#15143) - Check target gates are parameterized in optimize1qgatesdecomposition (#15131)
- Avoid panics in
Optimize1qGatesDecomposition(#15117) - Fix passmanager to preserve falsy pass outputs instead of reverting to input (#14943)
- Fix pickling of SabreSwap (#15074)
- Fix edge-order non-determinism when adding DAG nodes (#15040)
- Fix SparsePauliOp.is_unitary() to respect input tolerance values (#14676)
- Preserve registers in output TranspileLayout (#15024) (#15025)
- Preserve registers in output TranspileLayout (#15024)
- Fix variable remapping of
Delayexpressions inQuantumCircuit.compose(#15020) (#15023) - Fix variable remapping of
Delayexpressions inQuantumCircuit.compose(#15020) - fix:
Statevector.to_dict(decimals= 3)does not round results and ignores thedecimalskeyword (#12113) - Fix
VF2PostLayoutwith uncoupled qubits instrict_direction=True(#14998) (#15001) - Fix
VF2PostLayoutwith uncoupled qubits instrict_direction=True(#14998)
Files
Qiskit/qiskit-2.3.0.zip
Files
(9.4 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:afadb49744a641dd43ab7631673160bb
|
9.4 MB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/Qiskit/qiskit/tree/2.3.0 (URL)
Software
- Repository URL
- https://github.com/Qiskit/qiskit