Release notes: https://qiskit.org/documentation/release_notes.html#terra-0-24-0
Changelog
Deprecated
- Deprecate QuantumInstance and Opflow (9176)
- Deprecate PauliTable and StabilizerTable (9547)
- Deprecate the BIPMapping transpiler pass in favor of external plugin (9924)
Added
- Operator apply permutation (9403)
- Add support to `switch` in `transpile` (9928)
- plugin convenience function for getting the entry point object (9275)
- Improve error messages on failed control-flow transpilation (9049)
- add function to swap connected nodes in DAGCircuit (9160)
- Adding global_phase gate in qiskit-terra (9251)
- Add experimental OpenQASM 3 support for switch (9916)
- Add partial transpose function in quantum_info (9566)
- Add full path transpile() support for disjoint backends (9840)
- providers/options: implement Mapping (9704)
- Allow list of optimizers+initial points in ``VQD`` (9151)
- `AdaptVQE` threshold improvements (9921)
- Add `max_trials` parameter to `VF2PostLayout`. (9963)
- new unroll for-loops transpilation pass (9670)
- Add support for disjoint coupling maps to SabreLayout (9802)
- Add constructor to build target from legacy transpiler model (9255)
- Add Rust-based OpenQASM 2 converter (9784)
- Add Clifford.from_matrix (9475)
- Add support for pulse reference to QPY (9890)
- Ensure we run VF2PostLayout when needed in optimization level 1 (9941)
- Make all Layout and Routing passes target aware (9263)
- Fix `AmplitudeEstimation` is silently ignoring `is_good_state` in the estimation problem (9906)
- Add flag to filter faulty qubits and gates to BackendV2Converter (9911)
- Add equivlences of ECR, SX and SXdg gates to the equivalence library (9913)
- Adding HLS plugins for linear functions and cliffords (9399)
- Add representation of "switch" (9833)
- Synthesis of a stabilizer state for LNN connectivity (9734)
- Add commutator functions to quantum_info (9546)
- Add option to skip deepcopy on circuit_to_dag (9848)
- Add MinimumPoint transpiler pass (9612)
- Add public layout attribute to QuantumCircuit (9486)
- Update pulse gate transpiler pass to use target. (9587)
- Rearrange the gradient result based on the order of the input parameters (9503)
- Add `deprecate_func` and `deprecate_arg` decorators (9676)
- Add support to CouplingMap for disjoint qubits (9710)
- Add option to skip deepcopy on dag_to_circuit (9825)
- Improve ``Parameter`` handling in ``SparsePauliOp`` (9796)
- new parameters in `plot_bloch_multivector`: `figsize`, `font_size`, and `title_font_size` (7264)
- Alternative construction mechanism for HLS config (9413)
- Add `add_deprecation_to_docstring` for docsite deprecation support (9685)
- Oxidize the internals of Optimize1qGatesDecomposition (9578)
- Synthesis of CZ and Clifford circuits for linear nearest neighbor connectivity (9450)
- Added pulses to the `SymbolicPulse` library (9625)
- Remove Sabre's manual insertion-order iteration and unnecessary sorts (9560)
- Support for time-dependent Hamiltonians and observable evaluation in ``TrotterQRTE`` (9565)
- Add flipping of `swap` to `GateDirection` pass (9561)
- Add an equiv method to the StabilizerState class (9543)
- two-qubit unitary synthesis adapted to errors and over-complete gatesets (9175)
- Local fidelity (9504)
- ensure equivalences work to RZX (9507)
- Adds support to PassManager drawer to display stages (9128)
- Add target support to basis, optimization, scheduling, and util passes (9343)
Changed
- fixed issue 9453 by removing "_v2" from name in BackendV2 class (9465)
- Update pulse gate transpiler pass to use target. (9587)
- Implementing CouplingMap.__eq__ (9766)
- Remove Sabre's manual insertion-order iteration and unnecessary sorts (9560)
- two-qubit unitary synthesis adapted to errors and over-complete gatesets (9175)
- PhaseOracle and BooleanExpression allow setting the expression variable order (6658)
- Bump MSRV to 1.61 and all rust dependencies to latest releases (9393)
Removed
- Remove argument max_credits from execute and assemble (9322)
- Remove faulty qubits and gates sections from transpile() (9900)
- Remove deprecated methods and args in Primitives (9480)
- Remove factorizers and linear solvers from `algorithms` (9832)
- Remove TextDrawing arguments layout, global_phase, qregs, and cregs (9323)
- Remove DagDepNode.condition (deprecated in 6110) (9406)
Fixed
- Set `max_trials` for `VF2Layout` in preset pass managers. (10054) (10061)
- Remove recursion from ConstrainedReschedule pass (10051) (10057)
- Fix for unintended rounding in 'state_to_latex' latex output (9300) (10048)
- Fix delay padding to respect target's constraints (10007) (10038)
- FIx 0q operation handling in `Statevector` (10031) (10039)
- Bug fix macros.measure with backendv2 (9987)
- Fix circuit drawer for instructions with circuit parameters (9942)
- Refactor OpenQASM 2 exporter (9953)
- Prepare qiskit/transpiler/graysynth.py for deprecation in next release (9795)
- Fix handling of numpy integers in marginal_distribution() (9976)
- Correctly error on incorrect clbits in `QuantumCircuit.append` (9386)
- Bug fix in template optimization, and minor cleanup (9541)
- Ensure we run VF2PostLayout when needed in optimization level 1 (9941)
- Fix `AmplitudeEstimation` is silently ignoring `is_good_state` in the estimation problem (9906)
- Fixed IQAE bug mentioned in issue 9280 (9887)
- Fix `QuantumCircuitData` handling of `Operation` (9881)
- Fixed handling of a list of coupling_maps passed to transpile() (9886)
- Fix `UnrollCustomDefinitions` handling of empty definitions (9899)
- Fix a bug in QuantumCircuit.draw related to vertical_compression (9855)
- Fix string formatting (9540)
- Fix mypy errors (circuit) (8267)
- Fix non-complex dtypes in OneQubitEulerDecomposer methods (9828)
- transpile: narrow the return type depending on the circuits argument (9799)
- fix qasm with reset (9819)
- Clip probabilities in ``QuantumState`` (9762)
- Remove implicit broadcasting from `Pauli`/label construction of `PauliList` (9779)
- Fix basis_gates and coupling_map backend override in transpile() (9789)
- Fix explicitly calibrated gates in `GateDirection` (9786)
- Fix `Parameter.is_real()` (9664)
- Qiskit gates not `qelib1.inc` are now defined when dumped (9777)
- Fix zero-qubit `Pauli` label strings (9726)
- Fix bitstring padding in the `BackendSampler` (9744)
- Add inverse method to ECRGate (9733)
- Fix handling of BackendV1 simulators in PassManagerConfig.from_backend (9719)
- Fix qpy import of circuit with StatePreparation (9665)
- Fix wrong argument supplied to _identity_op() (9201)
- Stop raising AttributeError when accessing missing calibration (9681)
- Fix escaping of identifiers in OQ3 output (9660)
- Fix typing error in `random_circuit` conditionals (9651)
- Fix bug in backend primitives with `bound_pass_manager` (9629)
- Fix inverse of ``SdgGate`` in Solovay Kitaev (9635)
- Add the gates ECR, iSwap, CY, SX, SXdg, DCX to the Clifford class (9623)
- Fix handling of simulator backends in BackendV2Converter (9630)
- Add TranspileErrors to routing passes for coupling_map=None (7141)
- Fix `VQD` with `SPSA` optimizer (9538)
- Update Target to use CalibrationEntry to create inst map (9597)
- Retain all deprecated `Bit` properties in QPY roundtrip (9525)
- Fix sparse matrix conversion for `SciPy<Real/Imaginary>Evolver` (9598)
- Fix `NumPy(Minimum)Eigensolver` for sparse matrices (9575)
- Make `BarrierBeforeFinalMeasurements` deterministic (9568)
- Fix C3SXGate roundtrip in OpenQASM 2 (9183)
- Remove deprecated arguments (9542)
- Fix typo in Target (9473)
- Bug fix on QNSPSA (9483)
- Bug fix property and methods of BackendV2Converter (9502)
- Fix bad deprecation of Register.name_format (9494)
- Manage edge case of pickling instmap. (9487)
- Fix performance of ``ReverseEstimatorGradient`` for partial gradients (9491)
- Fix add_calibration bug (9223) (9451)
- Fix add_calibration bug (9223)
- Fix `PauliOp.adjoint()` (9434) (9443)
- Fix `PauliOp.adjoint()` (9434)
- Fix qpy for `MCX` gates (9391) (9412)
- Fix qpy for `MCX` gates (9391)
- Fix ``TensoredOp.to_matrix`` with global coefficients (9404) (9408)
- Fix the ``AmplitudeEstimator`` algorithms for primitive usage (9394) (9407)
- Fix ``TensoredOp.to_matrix`` with global coefficients (9404)
- Fix the ``AmplitudeEstimator`` algorithms for primitive usage (9394)