diff --git a/Cargo.lock b/Cargo.lock index e329661e0bdd..7bb0ee98abf9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1095,7 +1095,7 @@ dependencies = [ [[package]] name = "qiskit-accelerate" -version = "1.1.1" +version = "1.1.2" dependencies = [ "ahash 0.8.11", "approx", @@ -1122,7 +1122,7 @@ dependencies = [ [[package]] name = "qiskit-circuit" -version = "1.1.1" +version = "1.1.2" dependencies = [ "hashbrown 0.14.5", "pyo3", @@ -1130,7 +1130,7 @@ dependencies = [ [[package]] name = "qiskit-pyext" -version = "1.1.1" +version = "1.1.2" dependencies = [ "pyo3", "qiskit-accelerate", @@ -1141,7 +1141,7 @@ dependencies = [ [[package]] name = "qiskit-qasm2" -version = "1.1.1" +version = "1.1.2" dependencies = [ "hashbrown 0.14.5", "num-bigint", @@ -1151,7 +1151,7 @@ dependencies = [ [[package]] name = "qiskit-qasm3" -version = "1.1.1" +version = "1.1.2" dependencies = [ "hashbrown 0.14.5", "indexmap 2.2.6", diff --git a/Cargo.toml b/Cargo.toml index 156bb41ce0c8..549bff81078f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ members = ["crates/*"] resolver = "2" [workspace.package] -version = "1.1.1" +version = "1.1.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 319d445c1b0d..d19dd7761738 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -32,7 +32,7 @@ # The short X.Y version version = "1.1" # The full version, including alpha/beta/rc tags -release = "1.1.1" +release = "1.1.2" language = "en" diff --git a/qiskit/VERSION.txt b/qiskit/VERSION.txt index 524cb55242b5..45a1b3f44523 100644 --- a/qiskit/VERSION.txt +++ b/qiskit/VERSION.txt @@ -1 +1 @@ -1.1.1 +1.1.2 diff --git a/qiskit/visualization/bloch.py b/qiskit/visualization/bloch.py index bae0633a811c..8c12a4c074f9 100644 --- a/qiskit/visualization/bloch.py +++ b/qiskit/visualization/bloch.py @@ -50,6 +50,7 @@ import math import os +import re import numpy as np import matplotlib import matplotlib.pyplot as plt @@ -60,6 +61,47 @@ from .utils import matplotlib_close_if_inline +# This version pattern is taken from the pypa packaging project: +# https://github.com/pypa/packaging/blob/21.3/packaging/version.py#L223-L254 +# which is dual licensed Apache 2.0 and BSD see the source for the original +# authors and other details +VERSION_PATTERN = ( + "^" + + r""" + v? + (?: + (?:(?P<epoch>[0-9]+)!)? # epoch + (?P<release>[0-9]+(?:\.[0-9]+)*) # release segment + (?P<pre> # pre-release + [-_\.]? + (?P<pre_l>(a|b|c|rc|alpha|beta|pre|preview)) + [-_\.]? + (?P<pre_n>[0-9]+)? + )? + (?P<post> # post release + (?:-(?P<post_n1>[0-9]+)) + | + (?: + [-_\.]? + (?P<post_l>post|rev|r) + [-_\.]? + (?P<post_n2>[0-9]+)? + ) + )? + (?P<dev> # dev release + [-_\.]? + (?P<dev_l>dev) + [-_\.]? + (?P<dev_n>[0-9]+)? + )? + ) + (?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))? # local version +""" + + "$" +) +VERSION_PATTERN_REGEX = re.compile(VERSION_PATTERN, re.VERBOSE | re.IGNORECASE) + + class Arrow3D(Patch3D, FancyArrowPatch): """Makes a fancy arrow""" @@ -419,7 +461,8 @@ def render(self, title=""): self.fig = plt.figure(figsize=self.figsize) if not self._ext_axes: - if tuple(int(x) for x in matplotlib.__version__.split(".")) >= (3, 4, 0): + version_match = VERSION_PATTERN_REGEX.search(matplotlib.__version__) + if tuple(int(x) for x in version_match.group("release").split(".")) >= (3, 4, 0): self.axes = Axes3D( self.fig, azim=self.view[0], elev=self.view[1], auto_add_to_figure=False ) diff --git a/releasenotes/notes/fix-collect-clifford-83af26d98b8c69e8.yaml b/releasenotes/notes/fix-collect-clifford-83af26d98b8c69e8.yaml index 48eac19acc9d..aa33d901454f 100644 --- a/releasenotes/notes/fix-collect-clifford-83af26d98b8c69e8.yaml +++ b/releasenotes/notes/fix-collect-clifford-83af26d98b8c69e8.yaml @@ -1,6 +1,6 @@ --- fixes: - | - Add more Clifford gates to the :class:`.CollectCliffords()` transpiler pass. - In particular, we have added the gates :class:`ECRGate()`, :class:`DCXGate()`, - :class:`iSWAPGate()`, :class:`SXGate()` and :class:`SXdgGate()` to this transpiler pass. + Added missing Clifford gates to the :class:`.CollectCliffords` transpiler pass. + In particular, we have added the gates :class:`.ECRGate`, :class:`.DCXGate`, + :class:`.iSWAPGate`, :class:`.SXGate` and :class:`.SXdgGate` to this transpiler pass. diff --git a/releasenotes/notes/fix-sk-load-from-file-02c6eabbbd7fcda3.yaml b/releasenotes/notes/fix-sk-load-from-file-02c6eabbbd7fcda3.yaml index d995af06bccb..3badb856fab6 100644 --- a/releasenotes/notes/fix-sk-load-from-file-02c6eabbbd7fcda3.yaml +++ b/releasenotes/notes/fix-sk-load-from-file-02c6eabbbd7fcda3.yaml @@ -2,7 +2,7 @@ fixes: - | Fix the :class:`.SolovayKitaev` transpiler pass when loading basic - approximations from an exising ``.npy`` file. Previously, loading + approximations from an existing ``.npy`` file. Previously, loading a stored approximation which allowed for further reductions (e.g. due to gate cancellations) could cause a runtime failure. Additionally, the global phase difference of the U(2) gate product diff --git a/releasenotes/notes/fixes_GenericBackendV2-668e40596e1f070d.yaml b/releasenotes/notes/fixes_GenericBackendV2-668e40596e1f070d.yaml index 9d297125e3c2..c3dec7a008ee 100644 --- a/releasenotes/notes/fixes_GenericBackendV2-668e40596e1f070d.yaml +++ b/releasenotes/notes/fixes_GenericBackendV2-668e40596e1f070d.yaml @@ -1,4 +1,4 @@ --- fixes: - | - The constructor :class:`.GenericBackendV2` was allowing to create malformed backends because it accepted basis gates that couldn't be allocated in the backend size . That is, a backend with a single qubit should not accept a basis with two-qubit gates. + The constructor :class:`.GenericBackendV2` previously allowed malformed backends to be constructed because it accepted basis gates that couldn't be allocated given the backend size. For example, a backend with a single qubit could previously accept a basis with two-qubit gates. diff --git a/releasenotes/notes/prepare-1.1.2-d8fbe626771ab48d.yaml b/releasenotes/notes/prepare-1.1.2-d8fbe626771ab48d.yaml new file mode 100644 index 000000000000..5b8dc852700a --- /dev/null +++ b/releasenotes/notes/prepare-1.1.2-d8fbe626771ab48d.yaml @@ -0,0 +1,3 @@ +--- +prelude: > + Qiskit 1.1.2 is a minor bugfix release for the 1.1 series. diff --git a/releasenotes/notes/raise-on-illegal-replace-block-50cef8da757a580a.yaml b/releasenotes/notes/raise-on-illegal-replace-block-50cef8da757a580a.yaml index f4971fe520a0..0bc1e8e5a1df 100644 --- a/releasenotes/notes/raise-on-illegal-replace-block-50cef8da757a580a.yaml +++ b/releasenotes/notes/raise-on-illegal-replace-block-50cef8da757a580a.yaml @@ -1,7 +1,7 @@ --- fixes: - | - Previously, :meth:`.DAGCircuit.replace_block_with_op` allowed to place an - ``n``-qubit operation onto a block of ``m`` qubits, leaving the DAG in an - invalid state. This behavior has been fixed, and the attempt will raise - a :class:`.DAGCircuitError`. + Previously, :meth:`.DAGCircuit.replace_block_with_op` allowed an + ``n``-qubit operation to be placed onto a block of ``m`` qubits, leaving the DAG in an + invalid state. This behavior has been fixed, and any attempt to do this will now raise + a :class:`.DAGCircuitError` as expected.