Release notes: https://qiskit.org/documentation/release_notes.html#terra-0-21-0
Changelog
Deprecated
- Move `qiskit.test.mock` to `qiskit.providers.fake_provider` and deprecate (8121)
- QPY schedule serialization (7300)
- Remove deprecated `optimize` from `Optimizer` (and small other fixes) (8123)
- Add namespace redirect hook for qiskit-aer (5089)
- Cleanup timeline drawer with schedule analysis pass. (7935)
- Deprecate old paths for module-availability testers (7954)
- Remove legacy providers interface (7886)
- Deprecate networkx converter methods for DAGCircuit (7927)
Added
- Adding variational Quantum Deflation Algorithm for computing higher energy states (7747)
- QPY schedule serialization (7300)
- Add grouping by full-operator commutation relations to PauliList (7874)
- Expand instruction_supported() to optionally check parameters (7807)
- Add dedicated functions for memory marginalization (8051)
- Add StagedPassManager class for pass manager with defined stages (6403)
- Speedup constant factors in `LookaheadSwap` (8068)
- Add `.clear()` and `.copy_empty_like()` functionality to QuantumCircuit. (8134)
- decompose(reps=1) repeating decompose (8142)
- Cleanup timeline drawer with schedule analysis pass. (7935)
- Serializable parametric pulse (7821)
- Add label assigned check in SparsePauliOp (8101)
- Use `ParameterReferences` type for `ParameterTable` values (7408)
- Parallelizing scheduling of multiple circuits via parallel_map. (8110)
- Add Qiskit Textbook circuit drawer style (8147)
- Add function to easily generate preset pass managers (8125)
- Enhance Primitives' interface (8065)
- Add a marginal_distribution function (8026)
- Alias BaseOperator.__mul__ to BaseOperator._multiply in quantum_info (8007)
- Support target and basis gates in Unroll3qOrMore transpiler pass (7997)
- Trotterization-based Quantum Real Time Evolution (7411)
- Add VF2PostLayout pass (7862)
- add Quantum Shannon Decomposition (7907)
- Alias BaseOperator.__matmul__ to BaseOperator.dot (7919)
- Add delay handling to QASM 3 exporter (7942)
- Add swap strategies transpiler pass (7813)
- Add support for non-hermitian operators in AerPauliExpectation (7857)
- Add interfaces for a general Quantum Time Evolution Framework (7858)
Changed
- Leverage Python SharedMemory for common transpile args (7789)
- Change data type of `QuantumCircuit.data` elements (8093)
- Edit Result to always contain date, status, header (8216)
- Fix handling of ControlledGates in QPY (8055)
- Explicitly set MSRV for rust extension (8196)
- Make python-constraint optional (7733)
- Change XXPlusYYGate convention (7949)
- Remove hard time limit from vf2 passes in preset passmanagers (8021)
- Remove BasicAer shot limit (7801)
- Ensuring instruction labels are strings when provided to the Instruction constructor. (7671)
Removed
- Remove deprecated classes and methods in quantum_info (8070)
- Remove deprecated `optimize` from `Optimizer` (and small other fixes) (8123)
- Remove DAGNode deprecations (7902)
- Remove legacy providers interface (7886)
Fixed
- Fix UnitaryGate.qasm() with unused qubits (8234) (8243)
- Leverage Python SharedMemory for common transpile args (7789)
- Remove deprecated `optimize` from `Optimizer` (and small other fixes) (8123)
- Fix BackendV2 support for PassManagerConfig.from_backend() (8109)
- Edit Result to always contain date, status, header (8216)
- Pass `max_size` to Statevector LaTeX drawer (8197)
- Fix handling of ControlledGates in QPY (8055)
- Fix QASM 3 exporter not respecting unknown `basis_gates` (8160)
- Update GaussianPulse for consistent parameter validation results whether validation occurs during or after construction. (8151)
- Fixed error in plot_histogram when number_to_keep is smaller that the number of keys (7481)
- fix marginal_counts (which failed on pulse backend) (issue 6430) (8099)
- set T2 with the correct value in ConfigurableFakeBackend (8117)
- Checks if DiagonalGate has modulus 1 (8098)
- Improve reverse_bits to support registerless bits (7423)
- Enable proper iteration over `Statevector` (8062)
- Fix SabreSwap with classically conditioned gates (8041)
- Fix RZX builder rescaled amplitude (8031)
- Fix marginal_counts on memory with non-zero indices (8047)
- Use round instead of ceil for GaussianSquare pulse duration in RZXCalibrationBuilder (7995)
- Fix fake backend v2 dtm unit (8019)
- Remove hard time limit from vf2 passes in preset passmanagers (8021)
- Add missing delay instruction to fake backends (8003)
- Fix instruction durations in transpile() with BackendV2 (8001)
- Fix `dt` units in test util function `convert_to_target` (8000)
- Fix order of input and gate declarations in QASM 3 exporter (7972)
- Fix potential infinite loop in SabreSwap (7970)
- Make SabreSwap account for clbits in predecessors (7952)
- Fix QPY deserialization of UCRX, UCRY, and UCRZ gates (7933)
- Fix dag visualization for DAGCircuits without registers (7923)
- Allow `shots` to be a `numpy.int64` (7824)
- Bug fix for DRAG pulse beta validation (7925)
- Fix init_observable for Pauli (7898)
- Fix return type from schedule() with a list of one entry (7885)
- Fix plot_error_map with BackendProperties set or BackendV2 (7880)
- Fix of eval_observables() when quantum_circuit is a StateFn. (7863)
- Fix hard-coded sleep in run_circuits (7793)
- Fixes Clifford, Pauli, CNOTDihedral to handle Delay (7850)