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[0-9]+)!)? # epoch + (?P[0-9]+(?:\.[0-9]+)*) # release segment + (?P
                                          # pre-release
+            [-_\.]?
+            (?P(a|b|c|rc|alpha|beta|pre|preview))
+            [-_\.]?
+            (?P[0-9]+)?
+        )?
+        (?P                                         # post release
+            (?:-(?P[0-9]+))
+            |
+            (?:
+                [-_\.]?
+                (?Ppost|rev|r)
+                [-_\.]?
+                (?P[0-9]+)?
+            )
+        )?
+        (?P                                          # dev release
+            [-_\.]?
+            (?Pdev)
+            [-_\.]?
+            (?P[0-9]+)?
+        )?
+    )
+    (?:\+(?P[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.