Skip to content

Qiskit Terra 0.20.0

Compare
Choose a tag to compare
@qiskit-bot qiskit-bot released this 31 Mar 20:32
· 2438 commits to main since this release
0.20.0
a2d13f5

Release Notes: https://qiskit.org/documentation/release_notes.html#terra-0-20-0

Changelog

Deprecated

  • Need to remove max_credits (#7409)
  • Deprecate SuzukiTrotter odd order (#7426)
  • Reinstate and deprecate loose measure and reset functions (#7376)

Added

  • Add qubit_properties to Target class (#7736)
  • Make plot_gate_map generic for any backend (#7814)
  • Make VF2Layout pass Target aware (#7735)
  • Add BackendV2 mocked backend (#7643)
  • Make GatesInBasis transpiler pass Target aware (#7548)
  • Gradient Framework Update - Lin. Comb. for Imag Parts (#7632)
  • Allow ParameterExpression values in TemplateOptimization pass (#6899)
  • Separate State Preparation from Initialize (#7666)
  • Reference implementation of Estimator and Sampler Primitives (#7780)
  • DAGCircuit._copy_circuit_metadata is widely used and it should be public (#7803)
  • Add XXMinusYYGate (#7799)
  • Rework BasisTranslator for faster basis search. (#7211)
  • Replace AlignMeasures with ConstrainedReschedule for pulse alignment (#7762)
  • Add an option to choose a framework to pauli.evolve(clifford) (#7683)
  • Dynamical Decoupling pass with pulse alignment (#7760)
  • Make marginal_counts act on Result memory (#7711)
  • Make UnitarySynthesis transpiler pass Target aware (#7775)
  • Add check for the size during transpiler optimization (#7542)
  • Make DenseLayout transpiler pass target aware (#7776)
  • Moved and refactored vqe._eval_aux_ops method. (#7758)
  • Make ConsolidateBlocks transpiler pass target aware (#7778)
  • dict-based SparsePauliOp.simplify (#7656)
  • Allow initializing SparsePauliOps from index lists (#7401)
  • Allow callables as optimizers in VQE and QAOA (#7191)
  • Add support for custom metadata serializers to QPY load() and dump() (#7550)
  • Reimplement DenseLayout as a Parallel Algorithm in Rust (#7740)
  • Replace pauli expectation value cython with multithreaded rust implementation (#7702)
  • Implement multithreaded stochastic swap in rust (#7658)
  • Parameters in InstructionDurations. (#7321)
  • Define LinearFunction class and collect blocks of gates that make a LinearFunction (#7361)
  • Use pulse configuration in fake Bogota, Rome, Manila and Santiago (#7688)
  • Move QPY serializer to own module (#7582)
  • Add fake backends for new IBM Quantum systems (#7392)
  • Expose cutoff tolerances in Z2Symmetries (#7598)
  • Add Operator.from_circuit constructor method (#7616)
  • Optimise import qiskit with lazy imports (#7525)
  • Expose parameter_prefix in Z(Z)FeatureMap (#7590)
  • Merge paramterized u1, u2 and p gate in Optimize1qGates (#7579)
  • Add __repr__ to DAG nodes (#7559)
  • Add cross-build wheel jobs for ppc64le and s390x (#7549)
  • Add support for Python 3.10 (#7102)
  • Nesting FlowControllers to allow nested conditionals in pass manager (#6962)
  • Add XYGate (#7164) (#7229)
  • Add the dark version of the IQX color scheme (#7186)

Changed

  • Add dummy extra for CSPLayout (#7842)
  • Make marginal_counts act on Result memory (#7711)
  • Give PauliEvolutionGates the same name-attribute for all instances (#7638)
  • Improve sum op equals (#7681)
  • Split scheduling pass into scheduling and padding (#7709)
  • Relocate mock backends from qiskit.test.mock to qiskit.mock (#7437)
  • Implement multithreaded stochastic swap in rust (#7658)
  • Add __slots__ for Bit subclasses (#7708)
  • Use VF2Layout in all preset passmanagers (#7213)
  • Rework QuantumCircuit._append and bit resolver (#7618)
  • Fix ASAP/ALAP scheduling pass (#7655)
  • Bump minimum supported symengine version for built-in pickle support (#7682)
  • Use contract_nodes from retworkx in DAGCircuit. (#7665)
  • Use manylinux2014 on all Linux builds (#7566)
  • Drop support for 32bit py310 wheel builds (#7553)

Removed

  • Clean up old deprecation warnings in circuits module (#7011)
  • Replace pauli expectation value cython with multithreaded rust implementation (#7702)
  • Remove deprecated methods in qiskit.algorithms (#7257)
  • Remove deprecated pass_manager arg to transpile() (#7679)
  • Remove probability_distributions module (#7562)
  • Remove ParametrizedSchedule (#6949)
  • Drop support for Python 3.6 (#7295)

Fixed

  • Add equivalences from CX to CPhase+U and CRZ+U (#7013)
  • Add simple symbol table to QASM 3 exporter (#7744)
  • dict-based SparsePauliOp.simplify (#7656)
  • Add transpile() support for extracting instruction schedule map from BackendV2 (#7765)
  • Fix HHL().construct_circuit() properly encoding the eigenvalues of certain matrixes (#7402)
  • AmplitudeEstimator/Amplifier minor refactoring and docs. (#7752)
  • Fix display of sidetext gates with conditions (#7673)
  • Fix endianness in result.mitigator (#7689)
  • Fix partial_trace when not removing subsystems (#7613)
  • Changes to readout mitigator tests (#7482)
  • Fix phase management in StabilizerState.expectation_value (#7460)
  • Fix reverse_bits with registerless bits in all 3 circuit drawers (#7319)
  • Fix gates with conditions alignment when folding in mpl drawer (#7545)
  • Do not emit IGate from PauliGate and opflow.I (#7569)
  • Fix QPY support for control flow instructions (#7584)
  • Fix QuantumInstance compatibility with BackendV2 (#7563)
  • Efficiently check PauliSumOps for diagonality in CVaRMeasurement (#7574)
  • Fix PauliSumOp.permute to not change the original object (#7339)
  • Fix qubit order for 2-qubit LieTrotter evolution synthesis (#7551)
  • Fix the inverse method of PauliEvolutionGate (#7524)
  • Warn not error on overflow in QFT (#7541)
  • Fix error in Target non-global operation method with ideal gates (#7554)
  • Add durations of pulse gates from DAG calibrations (#7463)
  • Check the existence of AncillaQubits before adding (#7450)
  • Fix QI modifying input transpiled circuit on execute (#7484)
  • Reject other QASM versions in QASM 2 parser (#7456)
  • Improve error message in DAGCircuit.draw for invalid filenames (#7447)
  • Prevent duplicate bits in registers (#7510)
  • Fix display of negative fractions in arrays (#7518)
  • Fix display of register names with multiple underscores in mpl and latex drawers (#7459)
  • Fix parameter order in VQE, if the ansatz is resized (#7479)
  • Fix Bloch sphere with Matplotlib 3.3 and 3.4 (#7517)
  • Give FakeOpenPulse2Q qubit T2 times and readout errors (#7425)
  • Fix QPY serialization of no-op instructions (#7431)
  • Fix registerless bit conditions in circuit_to_instruction (#7395)
  • Fix register conditions in control-flow builders (#7389)
  • Fix ParameterVector handling in QPY serialization (#7381)
  • Fix InverseCancellation pass to handle gates of different names. (#7383)
  • Add QPY serialization for PauliEvolutionGate (#7374)
  • Reinstate and deprecate loose measure and reset functions (#7376)
  • Fix copying control-flow bodies in builder interface (#7368)
  • Fix circuit instruction conversion with loose bits (#7365)