From 7254fb4396d40f7429faa6d75e78eb020c7786a0 Mon Sep 17 00:00:00 2001 From: Alexander Ivrii Date: Mon, 20 Jan 2025 12:02:01 +0200 Subject: [PATCH] Prepare 1.3.2 (#13678) * update version to 1.3.2 * adjusting release notes * adding release notes Co-authored-by: Shelly Garion * Addressing Julien's and Abby's comments; fixing broken links --------- Co-authored-by: Shelly Garion --- Cargo.lock | 10 ++++---- Cargo.toml | 2 +- docs/conf.py | 2 +- qiskit/VERSION.txt | 2 +- ...commutation-checking-b728e7b6e1645615.yaml | 25 ++++++++++--------- ...eriodic-commutations-3b89d1813513f613.yaml | 12 ++++----- ...-su2-numqubits-issue-2b2c91c1186f82ac.yaml | 12 ++++++--- .../fix-mcmt-to-gate-ec84e1c625312444.yaml | 19 +++++++------- ...uli-evo-all-identity-b129acd854d8c391.yaml | 8 +++--- .../fix-pauli-sympify-ea9acceb2a923aff.yaml | 9 ++++--- ...lilist-length1-phase-688d0e3a64ec9a9f.yaml | 2 +- .../fix-qasm-3-unitary-2da190be6ba25bbd.yaml | 5 ++-- ...rget-instr-supported-900a1caa76e30655.yaml | 4 +-- .../notes/prepare-1.3.2-7ac29fe370568aab.yaml | 3 +++ ...-op-heavy-weight-fix-aa822428643d642a.yaml | 4 +-- 15 files changed, 66 insertions(+), 53 deletions(-) create mode 100644 releasenotes/notes/prepare-1.3.2-7ac29fe370568aab.yaml diff --git a/Cargo.lock b/Cargo.lock index 6ba3a7407508..a682b9295b3c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1150,7 +1150,7 @@ dependencies = [ [[package]] name = "qiskit-accelerate" -version = "1.3.1" +version = "1.3.2" dependencies = [ "ahash 0.8.11", "approx 0.5.1", @@ -1182,7 +1182,7 @@ dependencies = [ [[package]] name = "qiskit-circuit" -version = "1.3.1" +version = "1.3.2" dependencies = [ "ahash 0.8.11", "approx 0.5.1", @@ -1202,7 +1202,7 @@ dependencies = [ [[package]] name = "qiskit-pyext" -version = "1.3.1" +version = "1.3.2" dependencies = [ "pyo3", "qiskit-accelerate", @@ -1213,7 +1213,7 @@ dependencies = [ [[package]] name = "qiskit-qasm2" -version = "1.3.1" +version = "1.3.2" dependencies = [ "hashbrown 0.14.5", "num-bigint", @@ -1223,7 +1223,7 @@ dependencies = [ [[package]] name = "qiskit-qasm3" -version = "1.3.1" +version = "1.3.2" dependencies = [ "ahash 0.8.11", "hashbrown 0.14.5", diff --git a/Cargo.toml b/Cargo.toml index f9c8d3cf4855..753e2503bfad 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ members = ["crates/*"] resolver = "2" [workspace.package] -version = "1.3.1" +version = "1.3.2" edition = "2021" rust-version = "1.70" # Keep in sync with README.md and rust-toolchain.toml. license = "Apache-2.0" diff --git a/docs/conf.py b/docs/conf.py index 343373cf7d77..ecb72f1c3932 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -32,7 +32,7 @@ # The short X.Y version version = "1.3" # The full version, including alpha/beta/rc tags -release = "1.3.1" +release = "1.3.2" language = "en" diff --git a/qiskit/VERSION.txt b/qiskit/VERSION.txt index 3a3cd8cc8b07..1892b9267677 100644 --- a/qiskit/VERSION.txt +++ b/qiskit/VERSION.txt @@ -1 +1 @@ -1.3.1 +1.3.2 diff --git a/releasenotes/notes/conservative-commutation-checking-b728e7b6e1645615.yaml b/releasenotes/notes/conservative-commutation-checking-b728e7b6e1645615.yaml index dd741f981110..36b5ca61a823 100644 --- a/releasenotes/notes/conservative-commutation-checking-b728e7b6e1645615.yaml +++ b/releasenotes/notes/conservative-commutation-checking-b728e7b6e1645615.yaml @@ -1,18 +1,19 @@ --- fixes: - | - Commutation relations of :class:`~.circuit.Instruction`\ s with float-only ``params`` - were eagerly cached by the :class:`.CommutationChecker`, using the ``params`` as key to - query the relation. This could lead to faulty results, if the instruction's definition - depended on additional information that just the :attr:`~.circuit.Instruction.params` - attribute, such as e.g. the case for :class:`.PauliEvolutionGate`. - This behavior is now fixed, and the commutation checker only conservatively caches - commutations for Qiskit-native standard gates. This can incur a performance cost if you were - relying on your custom gates being cached, however, we cannot guarantee safe caching for - custom gates, as they might rely on information beyond :attr:`~.circuit.Instruction.params`. + Previously, the :class:`.CommutationChecker` eagerly cached the commutation relations of + :class:`~.circuit.Instruction`\ s with float-only ``params`` as key to query the relation. + This could lead to incorrect results if the instruction's definition + depended on additional information beyond just the :attr:`~.circuit.Instruction.params` + attribute, as, for example, in the case of :class:`.PauliEvolutionGate`. + This behavior is now fixed, and the commutation checker eagerly caches + commutations only for Qiskit-native standard gates. + For custom gates, this change might incur a performance cost; however, guarantees correct + results by avoiding unsafe caching. - | - Fixed a bug in the :class:`.CommmutationChecker`, where checking commutation of instruction - with non-numeric values in the :attr:`~.circuit.Instruction.params` attribute (such as the - :class:`.PauliGate`) could raise an error. + Fixed a bug in the :class:`.CommutationChecker`, where checking commutation relations of + an instruction + with non-numeric values in the :attr:`~.circuit.Instruction.params` attribute (as in the + case of :class:`.PauliGate`) could raise an error. Fixed `#13570 `__. diff --git a/releasenotes/notes/fix-4pi-periodic-commutations-3b89d1813513f613.yaml b/releasenotes/notes/fix-4pi-periodic-commutations-3b89d1813513f613.yaml index 289c43cb422f..d4f341892e46 100644 --- a/releasenotes/notes/fix-4pi-periodic-commutations-3b89d1813513f613.yaml +++ b/releasenotes/notes/fix-4pi-periodic-commutations-3b89d1813513f613.yaml @@ -1,9 +1,9 @@ --- fixes: - | - The :class:`.CommutationChecker` did not handle commutations of the :class:`.CRXGate`, - :class:`.CRYGate` and :class:`.CRZGate` correctly for angles - :math:`\pi(4k + 2)` for :math:`k \in \mathbb Z`. - In these cases, the controlled rotations were falsely assumed to commute with any gate. - Now these gates correctly commute with any gate if the rotation angle is a multiple of - :math:`4\pi`. + The :class:`.CommutationChecker` did not correctly handle commutations of the + :class:`.CRXGate`, :class:`.CRYGate` and :class:`.CRZGate` for rotation angles + of the form :math:`(4k + 2)\pi`, with :math:`k \in \mathbb Z`. + In these cases, these gates were incorrectly assumed to commute with any gate. + This behavior is now fixed, and these gates correctly commute with any gate only when the rotation + angle is a multiple of :math:`4\pi`. diff --git a/releasenotes/notes/fix-efficient-su2-numqubits-issue-2b2c91c1186f82ac.yaml b/releasenotes/notes/fix-efficient-su2-numqubits-issue-2b2c91c1186f82ac.yaml index 530c4438de3d..0600148a3c9b 100644 --- a/releasenotes/notes/fix-efficient-su2-numqubits-issue-2b2c91c1186f82ac.yaml +++ b/releasenotes/notes/fix-efficient-su2-numqubits-issue-2b2c91c1186f82ac.yaml @@ -1,6 +1,10 @@ fixes: - | - Fixed a bug that caused the circuit library functions :func:`.efficient_su2`, - :func:`.real_amplitudes`, :func:`.excitation_preserving` and :func:`.pauli_two_design` - to error out when constructed for ``num_qubits==1``. For a single qubit these - circuits will not contain any 2-qubit gates. \ No newline at end of file + Fixed a bug that caused the following circuit library functions to produce errors + when called with ``num_qubits=1``: + :func:`~qiskit.circuit.library.efficient_su2`, + :func:`~qiskit.circuit.library.real_amplitudes`, + :func:`~qiskit.circuit.library.excitation_preserving` and + :func:`~qiskit.circuit.library.pauli_two_design` + (for a single qubit, these circuits do not contain any 2-qubit gates). + Fixed `#13480 `__. diff --git a/releasenotes/notes/fix-mcmt-to-gate-ec84e1c625312444.yaml b/releasenotes/notes/fix-mcmt-to-gate-ec84e1c625312444.yaml index 04fb9cc3f1b5..6d5f2813b261 100644 --- a/releasenotes/notes/fix-mcmt-to-gate-ec84e1c625312444.yaml +++ b/releasenotes/notes/fix-mcmt-to-gate-ec84e1c625312444.yaml @@ -1,15 +1,16 @@ --- fixes: - | - Fixed a bug where any instruction called ``"mcmt"`` would be passed into the high-level - synthesis routine for a :class:`.MCMTGate`, which causes a failure or invalid result. - In particular, this could happen accidentally when handling the :class:`.MCMT` _circuit_, - named ``"mcmt"``, and implicitly converting it into an instruction e.g. when appending - it to a circuit. + Fixed a bug where any instruction named ``"mcmt"`` was incorrectly passed to the + high-level synthesis routine for a :class:`.MCMTGate`, leading to a failure or an + invalid result. This issue could happen, for example, when handling the :class:`.MCMT` + *circuit*, named ``"mcmt"``, and implicitly converting it into an instruction + (e.g., when appending it to another circuit). Fixed `#13563 `__. + upgrade_synthesis: - | - The plugins for :class:`.LinearFunction` no longer raise an error if another object - than :class:`.LinearFunction` is passed into the ``run`` method. Instead, ``None`` is - returned, which is consistent with the other plugins. If you relied on this error being raised, - you can manually perform an instance-check. \ No newline at end of file + The high-level synthesis plugins for :class:`.LinearFunction` no longer raise an + error when an object other than :class:`.LinearFunction` is passed into the ``run`` + method. Instead, they now return ``None``, which is consistent with other plugins. + If you relied on this error being raised, you can manually perform an instance-check. diff --git a/releasenotes/notes/fix-pauli-evo-all-identity-b129acd854d8c391.yaml b/releasenotes/notes/fix-pauli-evo-all-identity-b129acd854d8c391.yaml index 03cbe8654cb9..3bf5978f7733 100644 --- a/releasenotes/notes/fix-pauli-evo-all-identity-b129acd854d8c391.yaml +++ b/releasenotes/notes/fix-pauli-evo-all-identity-b129acd854d8c391.yaml @@ -1,8 +1,10 @@ --- fixes: - | - The :class:`.PauliEvolutionGate`, if used with a product formula synthesis (this is the default), + Fixed a bug where the default product formula synthesis for :class:`.PauliEvolutionGate` did not correctly handle all-identity terms in the operator. The all-identity term - should introduce a global phase equal to ``-evolution_time``, but was off by a factor of 2 - and could break for parameterized times. This behavior is now fixed. + should introduce a global phase equal to ``-evolution_time``, but was off by a factor + of 2 and could break for parameterized times. Fixed `#13625 `__. + Fixed `#13675 `__. + Fixed `#13644 `__. diff --git a/releasenotes/notes/fix-pauli-sympify-ea9acceb2a923aff.yaml b/releasenotes/notes/fix-pauli-sympify-ea9acceb2a923aff.yaml index 248a09b6f88e..40cbcc95e3bd 100644 --- a/releasenotes/notes/fix-pauli-sympify-ea9acceb2a923aff.yaml +++ b/releasenotes/notes/fix-pauli-sympify-ea9acceb2a923aff.yaml @@ -1,9 +1,10 @@ --- fixes: - | - Fixed an inconsistency in the circuit generated by a Pauli evolution synthesis - with :class:`.SuzukiTrotter` or :class:`.LieTrotter` (the default) method. + Fixed an inconsistency in the circuit generated by Pauli evolution synthesis + using :class:`.SuzukiTrotter` or :class:`.LieTrotter` (the default) method. For parameterized evolution times, the resulting circuits contained parameters - with a spurious, zero complex part, which affected the output of - :meth:`.ParameterExpression.sympify`. The output now correctly is only real. + with a spurious zero complex part, which affected the output of + :meth:`.ParameterExpression.sympify`. The output now correctly contains only real + values. Fixed `#13642 `__. diff --git a/releasenotes/notes/fix-paulilist-length1-phase-688d0e3a64ec9a9f.yaml b/releasenotes/notes/fix-paulilist-length1-phase-688d0e3a64ec9a9f.yaml index a1a59708003c..cb9d60211e13 100644 --- a/releasenotes/notes/fix-paulilist-length1-phase-688d0e3a64ec9a9f.yaml +++ b/releasenotes/notes/fix-paulilist-length1-phase-688d0e3a64ec9a9f.yaml @@ -2,5 +2,5 @@ fixes: - | Fixed a bug that caused :meth:`.PauliList.insert` with ``qubit=True`` to produce a `phase` - attribute with the wrong shape when the original object was length 1. + attribute with the wrong shape when the original object was of length 1. Fixed `#13623 `__. diff --git a/releasenotes/notes/fix-qasm-3-unitary-2da190be6ba25bbd.yaml b/releasenotes/notes/fix-qasm-3-unitary-2da190be6ba25bbd.yaml index 3cd59ff5e427..4e57654f6747 100644 --- a/releasenotes/notes/fix-qasm-3-unitary-2da190be6ba25bbd.yaml +++ b/releasenotes/notes/fix-qasm-3-unitary-2da190be6ba25bbd.yaml @@ -1,5 +1,6 @@ --- fixes: - | - Fix a bug in :class:`.qasm3.Exporter` that caused the exporter to crash when - handling a unitary gate due to incorrect processing of its ``params`` field. + Fixed a bug in :class:`.qasm3.Exporter` that caused the exporter to crash when + handling a unitary gate due to an incorrect processing of its ``params`` field. + Fixed `#13362 `__. diff --git a/releasenotes/notes/fix-target-instr-supported-900a1caa76e30655.yaml b/releasenotes/notes/fix-target-instr-supported-900a1caa76e30655.yaml index 5db23e66fed3..d13a92cb8a5f 100644 --- a/releasenotes/notes/fix-target-instr-supported-900a1caa76e30655.yaml +++ b/releasenotes/notes/fix-target-instr-supported-900a1caa76e30655.yaml @@ -2,5 +2,5 @@ fixes: - | Fixed a bug in the :meth:`.Target.instruction_supported` method where - targets with ``self.num_qubits==None`` would always return ``false`` - independently of the supported basis set. \ No newline at end of file + targets with ``self.num_qubits==None`` would always return ``False`` + independently of the supported basis set. diff --git a/releasenotes/notes/prepare-1.3.2-7ac29fe370568aab.yaml b/releasenotes/notes/prepare-1.3.2-7ac29fe370568aab.yaml new file mode 100644 index 000000000000..892426260b4e --- /dev/null +++ b/releasenotes/notes/prepare-1.3.2-7ac29fe370568aab.yaml @@ -0,0 +1,3 @@ +--- +prelude: > + Qiskit 1.3.2 is a minor bugfix release for the 1.3 series. diff --git a/releasenotes/notes/sparse-pauli-op-heavy-weight-fix-aa822428643d642a.yaml b/releasenotes/notes/sparse-pauli-op-heavy-weight-fix-aa822428643d642a.yaml index d285c6fb6857..b2156cda685c 100644 --- a/releasenotes/notes/sparse-pauli-op-heavy-weight-fix-aa822428643d642a.yaml +++ b/releasenotes/notes/sparse-pauli-op-heavy-weight-fix-aa822428643d642a.yaml @@ -1,7 +1,7 @@ fixes: - | - Fixed a bug where a initializing :class:`.SparsePauliOp` with a large + Fixed a bug where initializing :class:`.SparsePauliOp` with a large number of Pauli-``Y`` terms (typically :math:`\geq 100`) and no explicit ``coeffs`` would result in a coefficient close to 1 but with a floating point error. The coefficient is now correctly 1 per default. - Fixed `#13522 `__. \ No newline at end of file + Fixed `#13522 `__.