Skip to content

Qiskit 1.3.0rc1

Pre-release
Pre-release
Compare
Choose a tag to compare
@qiskit-bot qiskit-bot released this 07 Nov 22:34
· 14 commits to main since this release
1.3.0rc1
775039d

Changelog

Deprecated

  • Deprecate loose custom basis gates in preset pm pipieline (#13394)
  • Add missing pulse-related deprecation (#13392)
  • Deprecate the condition attribute and related functionality (#13223)
  • Deprecate qiskit.result.mitigation (#13351)
  • Deprecate BasicSimulator.configuration (#13367)
  • Deprecate instruction_durations, timing_constraints and backend_properties (#13338)
  • Add EchoRZXWeylDecomposition to Pulse deprecation (#13366)
  • Deprecate Pulse package and dependencies (#13164)
  • Improve deprecation of unit and duration (#13247)
  • Deprecate the unit and duration attributes (#13224)
  • deprecate BackendV1 in PassManagerConfig.from_backend (#12931)
  • Deprecates StochasticSwap and suggests the use of SabreSwap (#12983)
  • Deprecate BackendV1 and qiskit.providers.models (backport #12629) (#12864)
  • Deprecate BackendV1 and qiskit.providers.models (#12629)
  • Deprecate fake backends based on BackendV1 (backport #12660) (#12837)
  • Deprecate fake backends based on BackendV1 (#12660)
  • fixes #9355 deprecate visualize_transition (#12287) (#12822)
  • fixes #9355 deprecate visualize_transition (#12287)

Added

  • Reorder Pauli terms before Trotterization (#12925)
  • Evolved operator functions (#13361)
  • Add Rustiq-based synthesis for PauliEvolutionGate (#13301)
  • Oxidize NLocal & family (#13310)
  • Add pauli_twirl_2q_gates function (#13331)
  • Add identity removal pass to presets (#13363)
  • Binary arithmetic gates (#13354)
  • Add Qiskit native QPY ParameterExpression serialization (#13356)
  • Oxidize the ConsolidateBlocks pass (#13368)
  • Add more default trials to sabre layout (#13360)
  • Add grover_operator function (#13365)
  • Add iterator-access methods to SparseObservable (#13370)
  • Add meas_level, meas_return, and noise_model options to BackendSamplerV2 (#13357)
  • Prepare PauliEvolutionGate for Rustiq & port it to Rust (#13295)
  • More quantum circuit library refactoring (#13353)
  • Optimise SparsePauliOp.from_operator (#11557)
  • Boolean circuits as gates (#13333)
  • Improve qubit tracking in HighLevelSynthesis (#13240)
  • Parameterize Commutation Checker (#13302)
  • IQP as circuit library function (and in Rust) (#13241)
  • Implement SparseObservable.apply_layout (#13372)
  • Improve speed of Pauli.to_label (#13379)
  • Implement arithmetic on SparseObservable (#13298)
  • Add RemoveIdentityEquivalent transpiler pass (#12384)
  • Add official support for Python 3.13 (#13309)
  • Add base representation of SparseObservable (#12671)
  • Use Rust generator function for QuantumVolume class (#13283)
  • Implement __eq__ for remaining standard-library gates except mcx (#13327)
  • Fix QuantumCircuit.decompose for high-level objects (#13311)
  • Improve deprecation of unit and duration (#13247)
  • MCMTGate & plugins (#13150)
  • Port ElidePermutations transpiler pass to Rust (#13094)
  • Add Rust quantum volume function (#13238)
  • Add some more gates to CollectCliffords pass (#13214)
  • Make qasm3.CustomGate accessible from Python space (#13187)
  • Oxidize PauliFeatureMap (#13045)
  • Add equivalence-library rules between rzz and cp (#13019)
  • Port RemoveDiagonalGatesBeforeMeasure to rust (#13065)
  • Oxidize Commutation Analysis (#12995)
  • Oxidize commutation checker (#12870)
  • Oxidize random clifford (#12695)
  • Fixed ZZFeatureMap not accepting a list of entanglement (#12767)
  • Port the count_ops method in QuantumCircuit to Rust (#13050)
  • Fully port Optimize1qGatesDecomposition to Rust (#12959)
  • Promote CONTROL_FLOW_OP_NAMES to public API (#13057)
  • [DAGCircuit Oxidation] Port DAGCircuit to Rust (#12550)
  • Adding MCX synthesis plugins (#12961)
  • Port synth_cz_depth_line_mr to Rust (#12949)
  • Auxiliary qubit tracking in HighLevelSynthesis (#12911)
  • Move mcx synthesis methods with ancillas to the synthesis library (#12904)
  • 'Peephole' optimization - or: collecting and optimizing two-qubit blocks - before routing (#12727) (#12881)
  • 'Peephole' optimization - or: collecting and optimizing two-qubit blocks - before routing (#12727)
  • Avoid operator creation in transpiler (#12826) (#12875)
  • Avoid operator creation in transpiler (#12826)
  • Port star_preroute to rust (backport #12761) (#12846)
  • Add config option to leverage all cores for sabre (#12780) (#12841)
  • Port star_preroute to rust (#12761)
  • Add config option to leverage all cores for sabre (#12780)
  • Bitarray postselect (#12693) (#12836)
  • Bitarray postselect (#12693)
  • Add AnnotatedOperation.params and fix some control issues (#12752) (#12828)
  • Add a default optimization level to generate_preset_pass_manager (#12150)
  • Add AnnotatedOperation.params and fix some control issues (#12752)

Changed

  • Add Qiskit native QPY ParameterExpression serialization (#13356)
  • Use Rust generator function for QuantumVolume class (#13283)
  • Raise minimum python version to 3.9 (#12910)
  • [DAGCircuit Oxidation] Port DAGCircuit to Rust (#12550)
  • Update metadata of Primitives V2 (#12784) (#12857)
  • Update metadata of Primitives V2 (#12784)
  • Change the default routing_method to sabre (#12806) (#12847)
  • Change the default routing_method to sabre (#12806)

Fixed

  • Add argument assume_unitary to Operator.power. (#13319)
  • Fix performance regression in looped QuantumCircuit.assign_parameters (#13337)
  • Fix type of basis_gates in BasicSimulator configuration (#13385)
  • Fix compatibility issues with SciPy 1.14 (#13358)
  • Fix OpenQASM 2 gate definitions following a shadowed built-in gate (#13340)
  • Fix QuantumCircuit.decompose for high-level objects (#13311)
  • Fix bug in QPY symengine payload version handling (#13259)
  • Workaround symengine serialization payload incompatibility (#13251)
  • Don't run ElidePermutation if routing is disabled (#13184)
  • Bug fix in ElidePermutations (#13186)
  • Make dense layout algorithm deterministic when run in parallel (#13133)
  • Fix qft-plugins for custom 'qft' gates (#13181)
  • Re-allow non-standard includes in OpenQASM 3 exporter (#13148)
  • improved fast-path detection in HLS (#13070)
  • Fix an edge case in Sabre's release valve (#13114)
  • Fix the matrix representation of CUGate in Rust (#13121)
  • Fix creation of registers in synthesis methods (#13086)
  • Restrict Split2QUnitaries to run on UnitaryGate (#13095)
  • Bug fix in HoareOptimizer (#13083)
  • Fix extraction of controlled parametric gates (#13067)
  • Fixed ZZFeatureMap not accepting a list of entanglement (#12767)
  • Fix use of node.op in Split2QUnitaries (#13015)
  • Fix UnitaryGate.repeat() method (#12986)
  • Move the circuit library's entanglement logic to Rust (#12950)
  • [DAGCircuit Oxidation] Port DAGCircuit to Rust (#12550)
  • Fix Rust-space TwoQubitBasisDecomposer for non-standard KAK gate (#13014)
  • Extended the from_backend method of InstructionDurations to support both BackendV1 and BackendV2 (#12941)
  • Fix Initialize.gates_to_uncompute method (#12976)
  • Parsing of seed_transpiler in generate_preset_pass_manager (#12980)
  • fix stateprep's normalize (#12988)
  • adding copy argument to array (#12979)
  • Fix setter so that SparsePauliOp.paulis.phase stays zero (#12884)
  • Fix error message upon misalignment in PadDynamicalDecoupling (#12952) (#12954)
  • Fix error message upon misalignment in PadDynamicalDecoupling (#12952)
  • Improve error message on bad OpenQASM 3 basis_gates argument (#12945) (#12946)
  • Improve error message on bad OpenQASM 3 basis_gates argument (#12945)
  • Expose seed in Estimator and StatevectorEstimator (#12862)
  • Fix dag visualization with Var wires (#12848) (#12924)
  • Remove init peephole optimization discrete basis check (#12898) (#12920)
  • Fix dag visualization with Var wires (#12848)
  • Remove init peephole optimization discrete basis check (#12898)
  • Fix parsing of huge OpenQASM 2 conditionals (#12774) (#12854)
  • Fix StatevectorSampler to raise an error if a circuit with c_if is passed (#12842) (#12851)
  • Fix parsing of huge OpenQASM 2 conditionals (#12774)
  • Fix StatevectorSampler to raise an error if a circuit with c_if is passed (#12842)
  • Make BitArray.{slice_bits,slice_shots,__getitem__} raise IndexError when indices are not valid (#12755) (#12845)
  • Make BitArray.{slice_bits,slice_shots,__getitem__} raise IndexError when indices are not valid (#12755)
  • Add AnnotatedOperation.params and fix some control issues (#12752) (#12828)
  • Add AnnotatedOperation.params and fix some control issues (#12752)
  • Fix BitArray.from_counts/from_samples to not fail for input with only 0 outcome and num_bits=None (#12800) (#12820)
  • Fix BitArray.from_counts/from_samples to not fail for input with only 0 outcome and num_bits=None (#12800)