diff --git a/docs/conf.py b/docs/conf.py index d6bc961ebc5c..0f3e93d7f07e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -26,7 +26,7 @@ # The short X.Y version version = "1.0" # The full version, including alpha/beta/rc tags -release = "1.0.0rc1" +release = "1.0.0" language = "en" diff --git a/docs/release_notes.rst b/docs/release_notes.rst index 4e31c75fbd48..1bce150e7f61 100644 --- a/docs/release_notes.rst +++ b/docs/release_notes.rst @@ -4,18 +4,16 @@ Release Notes ============= -This page contains the release notes for Qiskit, starting from Qiskit 0.45, the first time that Qiskit and Qiskit Terra had the same versions. - .. These release notes get converted into Markdown files via the infrastructure at https://github.com/Qiskit/documentation, which then gets deployed to https://docs.quantum.ibm.com/api/qiskit/release-notes. Changes to these release notes will update those release notes the next time the API docs are generated. To change release notes prior to Qiskit 0.45, update the Qiskit/documentation repository directly. .. release-notes:: - :earliest-version: 0.45.0rc1 + :earliest-version: 1.0.0rc1 .. release-notes:: - :earliest-version: 0.45.0 + :earliest-version: 0.46.0 :branch: stable/0.46 .. release-notes:: diff --git a/qiskit/VERSION.txt b/qiskit/VERSION.txt index 6a056a8b1d0e..3eefcb9dd5b3 100644 --- a/qiskit/VERSION.txt +++ b/qiskit/VERSION.txt @@ -1 +1 @@ -1.0.0rc1 +1.0.0 diff --git a/qiskit/circuit/__init__.py b/qiskit/circuit/__init__.py index 9a79f3fe978d..a438ee68cfc3 100644 --- a/qiskit/circuit/__init__.py +++ b/qiskit/circuit/__init__.py @@ -282,6 +282,18 @@ Operation EquivalenceLibrary +Annotated Operations +-------------------- + +.. autosummary:: + :toctree: ../stubs/ + + + AnnotatedOperation + InverseModifier + ControlModifier + PowerModifier + Control Flow Operations ----------------------- @@ -344,6 +356,15 @@ ParameterVector ParameterExpression +Gate Commutation +---------------- + +.. autosummary:: + :toctree: ../stubs/ + + CommutationChecker + + Random Circuits --------------- diff --git a/releasenotes/config.yaml b/releasenotes/config.yaml index ad71f5dffae4..5836cd96e0a6 100644 --- a/releasenotes/config.yaml +++ b/releasenotes/config.yaml @@ -4,3 +4,48 @@ default_branch: main collapse_pre_releases: true pre_release_tag_re: (?P(?:[ab]|rc|pre)+\d*)$ unreleased_version_title: Unreleased Notes Preview +sections: + - [features, New Features] + - [features_algorithms, Algorithms Features] + - [features_circuits, Circuits Features] + - [features_primitives, Primitives Features] + - [features_providers, Providers Features] + - [features_pulse, Pulse Features] + - [features_qasm, OpenQASM Features] + - [features_qpy, QPY Features] + - [features_quantum_info, Quantum Information Features] + - [features_synthesis, Synthesis Features] + - [features_transpiler, Transpiler Features] + - [features_visualization, Visualization Features] + - [features_misc, Misc. Features] + - [issues, Known Issues] + - [upgrade, Upgrade Notes] + - [upgrade_algorithms, Algorithms Upgrade Notes] + - [upgrade_circuits, Circuits Upgrade Notes] + - [upgrade_primitives, Primitives Upgrade Notes] + - [upgrade_providers, Providers Upgrade Notes] + - [upgrade_pulse, Pulse Upgrade Notes] + - [upgrade_qasm, OpenQASM Upgrade Notes] + - [upgrade_qpy, QPY Upgrade Notes] + - [upgrade_quantum_info, Quantum Information Upgrade Notes] + - [upgrade_synthesis, Synthesis Upgrade Notes] + - [upgrade_transpiler, Transpiler Upgrade Notes] + - [upgrade_visualization, Visualization Upgrade Notes] + - [upgrade_misc, Misc. Upgrade Notes] + - [deprecations, Deprecation Notes] + - [deprecations_algorithms, Algorithms Deprecations] + - [deprecations_circuits, Circuits Deprecations] + - [deprecations_primitives, Primitives Deprecations] + - [deprecations_providers, Providers Deprecations] + - [deprecations_pulse, Pulse Deprecations] + - [deprecations_qasm, OpenQASM Deprecations] + - [deprecations_qpy, QPY Deprecations] + - [deprecations_quantum_info, Quantum Information Deprecations] + - [deprecations_synthesis, Synthesis Deprecations] + - [deprecations_transpiler, Transpiler Deprecations] + - [deprecations_visualization, Visualization Deprecations] + - [deprecations_misc, Misc. Deprecations] + - [critical, Critical Issues] + - [security, Security Issues] + - [fixes, Bug Fixes] + - [other, Other Notes] diff --git a/releasenotes/notes/1.0/5079_IntegerComparator_num_ancilla_qubits-bd1cff3366c345ae.yaml b/releasenotes/notes/1.0/5079_IntegerComparator_num_ancilla_qubits-bd1cff3366c345ae.yaml new file mode 100644 index 000000000000..2e55bf0a0113 --- /dev/null +++ b/releasenotes/notes/1.0/5079_IntegerComparator_num_ancilla_qubits-bd1cff3366c345ae.yaml @@ -0,0 +1,6 @@ +--- +upgrade_circuits: + - | + The property ``IntegerComparator.num_ancilla_qubits`` is removed, which was + deprecated in Qiskit 0.23 (released in 2020-10). Its functionality is fully covered + by :attr:`.IntegerComparator.num_ancilla`. diff --git a/releasenotes/notes/1.0/Update_backend_model_up_conversion_logic-75ecc2030a9fe6b1.yaml b/releasenotes/notes/1.0/Update_backend_model_up_conversion_logic-75ecc2030a9fe6b1.yaml new file mode 100644 index 000000000000..50abfbf0b63b --- /dev/null +++ b/releasenotes/notes/1.0/Update_backend_model_up_conversion_logic-75ecc2030a9fe6b1.yaml @@ -0,0 +1,10 @@ +--- +upgrade_providers: + - | + Changed default value of two arguments (:code:`add_delay` and :code:`filter_faulty`) in + the :func:`.convert_to_target` function. + This conversion function now adds delay instructions and removes faulty instructions by default. +fixes: + - | + Fixed the return of improper measurement schedules when only a subset of qubits was requested. + Previously, a measurement schedule for all qubits would be returned. diff --git a/releasenotes/notes/__qiskit_version__11305-bcf134513641462b.yaml b/releasenotes/notes/1.0/__qiskit_version__11305-bcf134513641462b.yaml similarity index 84% rename from releasenotes/notes/__qiskit_version__11305-bcf134513641462b.yaml rename to releasenotes/notes/1.0/__qiskit_version__11305-bcf134513641462b.yaml index c1cae7fde91b..9318c8b4e392 100644 --- a/releasenotes/notes/__qiskit_version__11305-bcf134513641462b.yaml +++ b/releasenotes/notes/1.0/__qiskit_version__11305-bcf134513641462b.yaml @@ -1,8 +1,8 @@ --- -upgrade: +upgrade_misc: - | The variable ``qiskit.__qiskit_version__`` is removed as it was deprecated since - Qiskit 0.44 (released on July 2023). + Qiskit 0.44 (released in 2023-07). Instead, you should use ``qiskit.__version__``. The other packages listed in the former ``qiskit.__qiskit_version__`` have their own ``__version__`` module level dunder, as standard in PEP 8. diff --git a/releasenotes/notes/1.0/add-annotated-arg-to-control-d9a188fe66f037ad.yaml b/releasenotes/notes/1.0/add-annotated-arg-to-control-d9a188fe66f037ad.yaml new file mode 100644 index 000000000000..c4bfbac46ca4 --- /dev/null +++ b/releasenotes/notes/1.0/add-annotated-arg-to-control-d9a188fe66f037ad.yaml @@ -0,0 +1,18 @@ +--- +features_circuit: + - | + Added a new argument, ``annotated``, to the methods :meth:`.QuantumCircuit.control`, :meth:`.Gate.control` + and ``.control()`` methods of :class:`.Gate` subclasses (such as :class:`.UnitaryGate` or :class:`.SwapGate`) + to optionally return an :class:`.AnnotatedOperation`. + The default value of ``annotated`` is ``False`` and corresponds to the pre-existing behavior of the method, + for example:: + + SwapGate().control(1, annotated=False) + + returns a :class:`.CSwapGate` while:: + + SwapGate().control(2, annotated=False) + + returns a ``ControlledGate``. When ``annotated=True``, the methods return an object of + type :class:`~.AnnotatedOperation` instead, avoiding the eager construction of the controlled gate's definition. + diff --git a/releasenotes/notes/1.0/add-annotated-arg-to-inverse-2e577f33793c06b1.yaml b/releasenotes/notes/1.0/add-annotated-arg-to-inverse-2e577f33793c06b1.yaml new file mode 100644 index 000000000000..3855a87cdc67 --- /dev/null +++ b/releasenotes/notes/1.0/add-annotated-arg-to-inverse-2e577f33793c06b1.yaml @@ -0,0 +1,22 @@ +--- +features_circuits: + - | + Added a new argument, ``annotated``, to the methods :meth:`.QuantumCircuit.inverse`, :meth:`.circuit.Instruction.inverse` + and ``.inverse()`` methods of :class:`~qiskit.circuit.Instruction` subclasses (such as :class:`.SwapGate` or :class:`.SGate`) + to optionally return an :class:`.AnnotatedOperation`. + The default value of ``annotated`` is ``False`` and corresponds to the pre-existing behavior of the method. + Furthermore, for standard gates with an explicitly defined ``inverse`` method, + the argument ``annotated`` has no effect, for example, both:: + + SwapGate().inverse(annotated=False) + SwapGate().inverse(annotated=True) + + return a :class:`.SwapGate`, and both:: + + SGate().inverse(annotated=False) + SGate().inverse(annotated=True) + + return an :class:`.SdgGate`. The difference manifests for custom instructions without an explicitly defined + inverse. With ``annotated=False``, the method returns a fresh instruction with the recursively inverted definition, + just as before. While ``annotated=True`` returns an :class:`.AnnotatedOperation` that represents the instruction + modified with the :class:`.InverseModifier`. diff --git a/releasenotes/notes/1.0/add-annotated-to-drawers-8bcc3a069dd981ad.yaml b/releasenotes/notes/1.0/add-annotated-to-drawers-8bcc3a069dd981ad.yaml new file mode 100644 index 000000000000..d259004f4a87 --- /dev/null +++ b/releasenotes/notes/1.0/add-annotated-to-drawers-8bcc3a069dd981ad.yaml @@ -0,0 +1,34 @@ +--- +fixes: + - | + Fixed an issue in the ``text`` circuit drawer when displaying operations + that were not :class:`.circuit.instruction.Instruction` class. These operations + would cause the drawer to fail. Examples were :class:`.Clifford` and + :class:`.AnnotatedOperation`. + +features_visualization: + - | + The ``text`` and ``mpl`` outputs for the :meth:`.QuantumCircuit.draw` and + :func:`.circuit_drawer` circuit drawer functions will now display detailed + information for operations of :class:`.AnnotatedOperation`. If the + :attr:`.AnnotatedOperation.modifiers` contains a :class:`.ControlModifier`, + the operation will be displayed the same way as controlled gates. If + the :class:`.InverseModifier` or :class:`.PowerModifier` is used, + these will be indicated with the base operation name. For example: + + .. plot:: + :include-source: + + from qiskit.circuit import ( + AnnotatedOperation, + ControlModifier, + PowerModifier, + InverseModifier, + QuantumCircuit + ) + from qiskit.circuit.library import SGate + + annotated_op = AnnotatedOperation(SGate(), [PowerModifier(3.4), ControlModifier(3), InverseModifier()]) + qc = QuantumCircuit(4) + qc.append(annotated_op, range(4)) + qc.draw("mpl") diff --git a/releasenotes/notes/1.0/add-commutation-library-88b7ff65b3d35f9a.yaml b/releasenotes/notes/1.0/add-commutation-library-88b7ff65b3d35f9a.yaml new file mode 100644 index 000000000000..a81cf40e014f --- /dev/null +++ b/releasenotes/notes/1.0/add-commutation-library-88b7ff65b3d35f9a.yaml @@ -0,0 +1,14 @@ +--- +features_circuits: + - | + Added a commutation library to the :class:`.CommutationChecker`. This library stores all the + commutation relations of unparameterizable standard gates into a dictionary that allows + for efficient lookup at runtime. This speeds up the execution of the :class:`.CommutationChecker` + class and, by extension, the :class:`.CommutationAnalysis` transpiler pass, as instead of + computing whether two unparameterizable standard gates commute it just has to look it up + from the library. + + Additionally, the :class:`.CommutationChecker` was refactored and now has an upper limit + set on the number of cached commutation relations that are not in the commutation library. + This addressed: `#8020 `__ and + `#7101 `__ diff --git a/releasenotes/notes/add-filter-op-nodes-aa024a0f1058e4b7.yaml b/releasenotes/notes/1.0/add-filter-op-nodes-aa024a0f1058e4b7.yaml similarity index 86% rename from releasenotes/notes/add-filter-op-nodes-aa024a0f1058e4b7.yaml rename to releasenotes/notes/1.0/add-filter-op-nodes-aa024a0f1058e4b7.yaml index 9c5a0a5c43f8..6a4f257319b0 100644 --- a/releasenotes/notes/add-filter-op-nodes-aa024a0f1058e4b7.yaml +++ b/releasenotes/notes/1.0/add-filter-op-nodes-aa024a0f1058e4b7.yaml @@ -1,5 +1,5 @@ --- -features: +features_transpiler: - | Added a new transpiler pass :class:`.FilterOpNodes` which is used to filter :class:`.DAGOpNode`\s in a :class:`.DAGCircuit`. @@ -7,7 +7,7 @@ features: Added a new keyword argument, ``label``, to the constructor on the :class:`.BarrierBeforeFinalMeasurements` transpiler pass. If specified the inserted barrier will be assigned the specified label. This also prevents - the inserted barrier from being merged with any any other pre-existing + the inserted barrier from being merged with any other pre-existing adjacent barriers. other: - | diff --git a/releasenotes/notes/add-generic-fake-backend-c1434e0c5c413935.yaml b/releasenotes/notes/1.0/add-generic-fake-backend-c1434e0c5c413935.yaml similarity index 77% rename from releasenotes/notes/add-generic-fake-backend-c1434e0c5c413935.yaml rename to releasenotes/notes/1.0/add-generic-fake-backend-c1434e0c5c413935.yaml index 00f7eeea6800..11d3ddfe74d2 100644 --- a/releasenotes/notes/add-generic-fake-backend-c1434e0c5c413935.yaml +++ b/releasenotes/notes/1.0/add-generic-fake-backend-c1434e0c5c413935.yaml @@ -1,12 +1,13 @@ --- -features: +features_providers: - | - A new class, :class:`.GenericBackendV2` has been added to the :mod:`qiskit.providers.fake_provider` + Added a new class, :class:`.GenericBackendV2`, to the :mod:`qiskit.providers.fake_provider` module. This class is configurable, and builds a :class:`~.BackendV2` backend instance that can be run locally (in the spirit of fake backends). Users can configure the number of qubits, basis gates, coupling map, ability to run dynamic circuits (control flow instructions), instruction calibrations and - dtm of the backend without having to deal with manual target construction. - Qubit and gate properties are generated by randomly sampling from default ranges. The seed for this + measurement timestep of the backend without having to deal with manual target construction. + Qubit and gate properties (duration, error) are generated by randomly sampling from default ranges. + The seed for this random generation can be fixed to ensure the reproducibility of the backend output. It's important to note that this backend only supports gates in the standard library. If you need a more flexible backend, there is always the option to directly instantiate a @@ -46,10 +47,15 @@ features: qc.cx(0, i + 1) for i in range(18): qc.measure(i, creg[i]) - qc.ecr(20, 21).c_if(creg, 0) + with qc.if_test((creg, 0)): + qc.ecr(20, 21) # Define backend with custom basis gates and control flow instructions - backend = GenericBackendV2(num_qubits=25, basis_gates = ["ecr","id","rz","sx","x"], control_flow=True) + backend = GenericBackendV2( + num_qubits=25, + basis_gates=["ecr", "id", "rz", "sx", "x"], + control_flow=True, + ) #Transpile transpiled_qc = transpile(qc, backend) @@ -60,4 +66,4 @@ features: not be used to measure any concrete behaviors. They are "reasonable defaults" that can be used to test backend-interfacing functionality not tied specific noise values of real quantum systems. For a more accurate simulation of existing devices, you can manually build a noise model from the - real backend using the functionality offered in ``qiskit-aer``. + real backend using the functionality offered in :mod:`qiskit_aer`. diff --git a/releasenotes/notes/add-generic-v1-fake-backends-f08694b03585833a.yaml b/releasenotes/notes/1.0/add-generic-v1-fake-backends-f08694b03585833a.yaml similarity index 84% rename from releasenotes/notes/add-generic-v1-fake-backends-f08694b03585833a.yaml rename to releasenotes/notes/1.0/add-generic-v1-fake-backends-f08694b03585833a.yaml index 3142c7d3ab71..2e4fc24dbafc 100644 --- a/releasenotes/notes/add-generic-v1-fake-backends-f08694b03585833a.yaml +++ b/releasenotes/notes/1.0/add-generic-v1-fake-backends-f08694b03585833a.yaml @@ -1,5 +1,5 @@ --- -features: +features_providers: - | The :mod:`qiskit.providers.fake_provider` module now includes a series of generic fake backends following the :class:`.BackendV1` interface. They have been introduced as an alternative to the @@ -7,13 +7,15 @@ features: (``FakeVigo``, ``FakeTokyo``, etc). The list of new fake backends includes: * Backends without pulse capabilities: + * :class:`.Fake5QV1` * :class:`.Fake20QV1` * Backends with pulse capabilities: + * :class:`.Fake7QPulseV1` * :class:`.Fake27QPulseV1` * :class:`.Fake127QPulseV1` - The can be imported following the pattern: ``from qiskit.providers.fake_provider import Fake5QV1``. + They can be imported following the pattern: ``from qiskit.providers.fake_provider import Fake5QV1``. More details on the backend properties can be found on each backend's API documentation. diff --git a/releasenotes/notes/add-invalid-layout-error-d0d64086748d4b54.yaml b/releasenotes/notes/1.0/add-invalid-layout-error-d0d64086748d4b54.yaml similarity index 82% rename from releasenotes/notes/add-invalid-layout-error-d0d64086748d4b54.yaml rename to releasenotes/notes/1.0/add-invalid-layout-error-d0d64086748d4b54.yaml index 58f17c424fae..d1a3c31e2e8b 100644 --- a/releasenotes/notes/add-invalid-layout-error-d0d64086748d4b54.yaml +++ b/releasenotes/notes/1.0/add-invalid-layout-error-d0d64086748d4b54.yaml @@ -1,9 +1,10 @@ --- -features: +features_transpiler: - | - Added a new exception class :class:`.InvalidLayoutError` that is a :class:`.TranspilerError` + Added a new exception class: :class:`.InvalidLayoutError`. This is a :class:`.TranspilerError` subclass which is raised when a user provided layout is invalid (mismatched size, duplicate qubits, etc). + fixes: - | Fixed an issue with the :class:`.SetLayout` transpiler pass where an invalid integer list input diff --git a/releasenotes/notes/1.0/add-num-processes-kwarg-to-transpiler-3cb7f3457b54a535.yaml b/releasenotes/notes/1.0/add-num-processes-kwarg-to-transpiler-3cb7f3457b54a535.yaml new file mode 100644 index 000000000000..bd1fd4a9e7cb --- /dev/null +++ b/releasenotes/notes/1.0/add-num-processes-kwarg-to-transpiler-3cb7f3457b54a535.yaml @@ -0,0 +1,20 @@ +--- +features_transpiler: + - | + Added a new keyword argument, ``num_processes``, to :func:`.transpile` and + the :meth:`.PassManager.run` method. This allows for overriding both + ``QISKIT_NUM_PROCS`` and the ``num_processes`` field in user configuration files + on a per-transpile basis. For example:: + + from qiskit import transpile, QuantumCircuit + + qc = QuantumCircuit(2) + qc.h(0) + qc.cx(0, 1) + qc.measure_all() + + transpile([qc]*10, basis_gates=['u', 'cz'], num_processes=2) + + will run the transpile over the 10 input circuits using only 2 processes + and will override the system default, environment variable, or user + configuration file for that :func:`.transpile` call. diff --git a/releasenotes/notes/add-optimize-annotated-pass-89ca1823e7109f81.yaml b/releasenotes/notes/1.0/add-optimize-annotated-pass-89ca1823e7109f81.yaml similarity index 84% rename from releasenotes/notes/add-optimize-annotated-pass-89ca1823e7109f81.yaml rename to releasenotes/notes/1.0/add-optimize-annotated-pass-89ca1823e7109f81.yaml index 8f06124b99fa..3f48eeb51693 100644 --- a/releasenotes/notes/add-optimize-annotated-pass-89ca1823e7109f81.yaml +++ b/releasenotes/notes/1.0/add-optimize-annotated-pass-89ca1823e7109f81.yaml @@ -1,7 +1,7 @@ --- -features: +features_transpiler: - | - Added a new transpiler pass, :class:`.OptimizeAnnotated` that optimizes annotated + Added a new transpiler pass, :class:`.OptimizeAnnotated`, that optimizes annotated operations on a quantum circuit. Consider the following example:: @@ -48,20 +48,20 @@ features: assert qc_optimized == qc_expected In the case of ``gate1``, the modifiers of the annotated swap gate are brought - into the canonical form: the two ``InverseModifier`` s cancel out, and the two - ``ControlModifier`` s are combined. In the case of ``gate2``, all the modifiers + into the canonical form: the two :class:`.InverseModifier`\s cancel out, and the two + :class:`.ControlModifier`\s are combined. In the case of ``gate2``, all the modifiers get removed and the annotated operation is replaced by its base operation. In the case of ``gate3``, multiple layers of annotations are combined into one. - The constructor of :class:`.OptimizeAnnotated` pass accepts optional + The constructor of the :class:`.OptimizeAnnotated` pass accepts optional arguments ``target``, ``equivalence_library``, ``basis_gates`` and ``recurse``. When ``recurse`` is ``True`` (the default value) and when either ``target`` - or ``basis_gates`` are specified, the pass recursively descends into the gates + or ``basis_gates`` are specified, the pass recursively descends into the gate's ``definition`` circuits, with the exception of gates that are already supported by the target or that belong to the equivalence library. On the other hand, when neither ``target`` nor ``basis_gates`` are specified, or when ``recurse`` is set to ``False``, the pass synthesizes only the "top-level" annotated operations, i.e. does not recursively descend into the ``definition`` circuits. This behavior is consistent - with that of :class:`.HighLevelSynthesis` transpiler pass that needs to be called + with that of the :class:`.HighLevelSynthesis` transpiler pass, which needs to be called in order to "unroll" the annotated operations into 1-qubit and 2-qubits gates. diff --git a/releasenotes/notes/add-parameter-pow-ff5f8d10813f5733.yaml b/releasenotes/notes/1.0/add-parameter-pow-ff5f8d10813f5733.yaml similarity index 93% rename from releasenotes/notes/add-parameter-pow-ff5f8d10813f5733.yaml rename to releasenotes/notes/1.0/add-parameter-pow-ff5f8d10813f5733.yaml index 094266071990..b32166479b80 100644 --- a/releasenotes/notes/add-parameter-pow-ff5f8d10813f5733.yaml +++ b/releasenotes/notes/1.0/add-parameter-pow-ff5f8d10813f5733.yaml @@ -1,5 +1,5 @@ --- -features: +features_circuits: - | :class:`~qiskit.circuit.ParameterExpression` (and thus also :class:`~qiskit.circuit.Parameter`) now support powering: :code:`x**y` diff --git a/releasenotes/notes/1.0/add-qpy-loading-depr-warning-8628b23ca63c3eb5.yaml b/releasenotes/notes/1.0/add-qpy-loading-depr-warning-8628b23ca63c3eb5.yaml new file mode 100644 index 000000000000..871643069e7c --- /dev/null +++ b/releasenotes/notes/1.0/add-qpy-loading-depr-warning-8628b23ca63c3eb5.yaml @@ -0,0 +1,7 @@ +--- +features_qpy: + - | + Added a new warning class, :exc:`~.QPYLoadingDeprecatedFeatureWarning`, to the QPY module. + This class allows for deprecation warnings to surface even if the deprecated feature + is accessed at a variable point in the call stack, as is the case for many QPY loading functions that + are called recursively. diff --git a/releasenotes/notes/add-qpy-version-flag-6bb1756e671fde55.yaml b/releasenotes/notes/1.0/add-qpy-version-flag-6bb1756e671fde55.yaml similarity index 79% rename from releasenotes/notes/add-qpy-version-flag-6bb1756e671fde55.yaml rename to releasenotes/notes/1.0/add-qpy-version-flag-6bb1756e671fde55.yaml index 1b2aeb11b8cc..d9b8784c5f50 100644 --- a/releasenotes/notes/add-qpy-version-flag-6bb1756e671fde55.yaml +++ b/releasenotes/notes/1.0/add-qpy-version-flag-6bb1756e671fde55.yaml @@ -1,14 +1,14 @@ --- -features: +features_qpy: - | - Added a new flag, ``version``, to the :func:`.qpy.dump` function which - optionally takes an integer value for the :ref:`qpy_format` version to - emit from the dump function. This is useful if you need to generate a QPY + Added a new flag, ``version``, to the :func:`.qpy.dump` function. This allows + :func:`.qpy.dump` to optionally take an integer value for the :ref:`qpy_format` + version to emit. This is useful if you need to generate a QPY file that will be loaded by an older version of Qiskit. However, the supported versions to emit are limited, only versions between the latest QPY version (which is the default), and the compatibility QPY version which is :ref:`qpy_version_10` (which was introduced in Qiskit 0.45.0) can - be used. The compatibility version will remain fixed for the the entire + be used. The compatibility version will remain fixed for the entire 1.x.y major version release series. This does not change the backwards compatibility guarantees of the QPY format when calling :func:`.qpy.load`, it just enables users to emit an older version of QPY to maintain diff --git a/releasenotes/notes/1.0/add-synth-circuit-from-stabilizer-list-4cf9cfa01bbc7ddf.yaml b/releasenotes/notes/1.0/add-synth-circuit-from-stabilizer-list-4cf9cfa01bbc7ddf.yaml new file mode 100644 index 000000000000..16a6fd22c2da --- /dev/null +++ b/releasenotes/notes/1.0/add-synth-circuit-from-stabilizer-list-4cf9cfa01bbc7ddf.yaml @@ -0,0 +1,14 @@ +--- +features_synthesis: + - | + Added a :func:`qiskit.synthesis.synth_circuit_from_stabilizers` function that + returns a circuit that outputs the state stabilized by a series of given stabilizers. +features_quantum_info: + - | + Added a :meth:`qiskit.quantum_info.StabilizerState.from_stabilizer_list` method + that generates a stabilizer state from a list of stabilizers:: + + from qiskit.quantum_info import StabilizerState + + stabilizer_list = ["ZXX", "-XYX", "+ZYY"] + stab = StabilizerState.from_stabilizer_list(stabilizer_list) diff --git a/releasenotes/notes/add-token-swapper-synthesis-plugin-4ed5009f5f21519d.yaml b/releasenotes/notes/1.0/add-token-swapper-synthesis-plugin-4ed5009f5f21519d.yaml similarity index 85% rename from releasenotes/notes/add-token-swapper-synthesis-plugin-4ed5009f5f21519d.yaml rename to releasenotes/notes/1.0/add-token-swapper-synthesis-plugin-4ed5009f5f21519d.yaml index 00a69a46c1af..213720a77983 100644 --- a/releasenotes/notes/add-token-swapper-synthesis-plugin-4ed5009f5f21519d.yaml +++ b/releasenotes/notes/1.0/add-token-swapper-synthesis-plugin-4ed5009f5f21519d.yaml @@ -1,8 +1,10 @@ --- upgrade: - | - Qiskit 1.0 now requires version 0.14.0 of ``rustworkx``. -features: + Qiskit 1.0 now requires version 0.14.0 of ``rustworkx``. The minimum + version requirement was raised to support the new ``token_swapper`` + :class:`.PermutationGate` synthesis plugin for :class:`.HighLevelSynthesisPlugin`. +features_transpiler: - | Added a new :class:`.HighLevelSynthesisPlugin` for :class:`.PermutationGate` objects based on Qiskit's token swapper algorithm. To use this plugin, @@ -10,7 +12,7 @@ features: This synthesis plugin is able to run before or after the layout is set. When synthesis succeeds, the plugin outputs a quantum circuit consisting only of - swap gates. When synthesis does not succeed, the plugin outputs `None`. + swap gates. When synthesis does not succeed, the plugin outputs ``None``. The following code illustrates how the new plugin can be run:: @@ -33,7 +35,7 @@ features: synthesis_config = HLSConfig(permutation=[("token_swapper", {"trials": 10})]) # This creates the pass manager that runs high-level-synthesis on our circuit. - # The option use_qubit_indices=True indicates that synthesis run after the layout is set, + # The option use_qubit_indices=True indicates that synthesis is run after the layout is set, # and hence should preserve the specified coupling map. pm = PassManager( HighLevelSynthesis( diff --git a/releasenotes/notes/allow-none-layout-for-sparse_pauli_op-212470d5b5b307a0.yaml b/releasenotes/notes/1.0/allow-none-layout-for-sparse_pauli_op-212470d5b5b307a0.yaml similarity index 54% rename from releasenotes/notes/allow-none-layout-for-sparse_pauli_op-212470d5b5b307a0.yaml rename to releasenotes/notes/1.0/allow-none-layout-for-sparse_pauli_op-212470d5b5b307a0.yaml index d40486990275..0846bdcc5e10 100644 --- a/releasenotes/notes/allow-none-layout-for-sparse_pauli_op-212470d5b5b307a0.yaml +++ b/releasenotes/notes/1.0/allow-none-layout-for-sparse_pauli_op-212470d5b5b307a0.yaml @@ -1,6 +1,6 @@ --- -features: +features_quantum_info: - | The function :meth:`~.SparsePauliOp.apply_layout` from :class:`.SparsePauliOp` now allows for the - layout argument to also be None. That is, the method can now also be used for circuits where no transpilation/routing + layout argument to also be ``None``. That is, the method can now also be used for circuits where no transpilation/routing took place (for example when transpiling for a simulator). diff --git a/releasenotes/notes/aqc-faster-default-8d47c88fefd1b6f6.yaml b/releasenotes/notes/1.0/aqc-faster-default-8d47c88fefd1b6f6.yaml similarity index 89% rename from releasenotes/notes/aqc-faster-default-8d47c88fefd1b6f6.yaml rename to releasenotes/notes/1.0/aqc-faster-default-8d47c88fefd1b6f6.yaml index 6300a3e877eb..b896ff9049bb 100644 --- a/releasenotes/notes/aqc-faster-default-8d47c88fefd1b6f6.yaml +++ b/releasenotes/notes/1.0/aqc-faster-default-8d47c88fefd1b6f6.yaml @@ -1,5 +1,5 @@ --- -features: +features_synthesis: - | The AQC unitary synthesis plugin method now uses a faster objective function evaluation by default, which results in substantial improvement in synthesis time. diff --git a/releasenotes/notes/assign-by-name-305f2bbf89099174.yaml b/releasenotes/notes/1.0/assign-by-name-305f2bbf89099174.yaml similarity index 96% rename from releasenotes/notes/assign-by-name-305f2bbf89099174.yaml rename to releasenotes/notes/1.0/assign-by-name-305f2bbf89099174.yaml index a675dd08be86..afd753df4072 100644 --- a/releasenotes/notes/assign-by-name-305f2bbf89099174.yaml +++ b/releasenotes/notes/1.0/assign-by-name-305f2bbf89099174.yaml @@ -1,5 +1,5 @@ --- -features: +features_circuits: - | :meth:`.QuantumCircuit.assign_parameters` now accepts string keys in the mapping form of input. These names are used to look up the corresponding :class:`.Parameter` instance using diff --git a/releasenotes/notes/bit-interning-35da0aaa76aa7fc5.yaml b/releasenotes/notes/1.0/bit-interning-35da0aaa76aa7fc5.yaml similarity index 76% rename from releasenotes/notes/bit-interning-35da0aaa76aa7fc5.yaml rename to releasenotes/notes/1.0/bit-interning-35da0aaa76aa7fc5.yaml index bb1c83f76f33..dace3b261f15 100644 --- a/releasenotes/notes/bit-interning-35da0aaa76aa7fc5.yaml +++ b/releasenotes/notes/1.0/bit-interning-35da0aaa76aa7fc5.yaml @@ -1,5 +1,5 @@ --- -upgrade: +upgrade_circuits: - | To support a more compact in-memory representation, the :class:`.QuantumCircuit` class is now limited to supporting @@ -9,9 +9,9 @@ upgrade: :attr:`.CircuitInstruction.qubits` and :attr:`.CircuitInstruction.clbits` is also limited to ``2^32`` for instructions added to a single circuit. -other: +features_circuits: - | - The :class:`.QuantumCircuit` class now performs interning for the - ``qubits`` and ``clbits`` of the :class:`.CircuitInstruction` + The :class:`.QuantumCircuit` class now internally performs interning for + the ``qubits`` and ``clbits`` of the :class:`.CircuitInstruction` instances that it stores, resulting in a potentially significant reduction in memory footprint, especially for large circuits. diff --git a/releasenotes/notes/bump-msrv-f1449061b057cac5.yaml b/releasenotes/notes/1.0/bump-msrv-f1449061b057cac5.yaml similarity index 100% rename from releasenotes/notes/bump-msrv-f1449061b057cac5.yaml rename to releasenotes/notes/1.0/bump-msrv-f1449061b057cac5.yaml diff --git a/releasenotes/notes/circuit-get-parameter-d33c08925b5c7d72.yaml b/releasenotes/notes/1.0/circuit-get-parameter-d33c08925b5c7d72.yaml similarity index 78% rename from releasenotes/notes/circuit-get-parameter-d33c08925b5c7d72.yaml rename to releasenotes/notes/1.0/circuit-get-parameter-d33c08925b5c7d72.yaml index 755b5987451e..7816b14422f0 100644 --- a/releasenotes/notes/circuit-get-parameter-d33c08925b5c7d72.yaml +++ b/releasenotes/notes/1.0/circuit-get-parameter-d33c08925b5c7d72.yaml @@ -1,7 +1,7 @@ --- -features: +features_circuits: - | :class:`.QuantumCircuit` has two new methods, :meth:`~.QuantumCircuit.get_parameter` and :meth:`~.QuantumCircuit.has_parameter`, which respectively retrieve a :class:`.Parameter` - instance used in the circuit by name, and return a Boolean of whether a parameter with a + instance used in the circuit by name, and return a boolean of whether a parameter with a matching name (or the exact instance given) are used in the circuit. diff --git a/releasenotes/notes/commutative-inv-cancellation-uptophase-028525d21b199cef.yaml b/releasenotes/notes/1.0/commutative-inv-cancellation-uptophase-028525d21b199cef.yaml similarity index 63% rename from releasenotes/notes/commutative-inv-cancellation-uptophase-028525d21b199cef.yaml rename to releasenotes/notes/1.0/commutative-inv-cancellation-uptophase-028525d21b199cef.yaml index 9b5c6b537951..511348027927 100644 --- a/releasenotes/notes/commutative-inv-cancellation-uptophase-028525d21b199cef.yaml +++ b/releasenotes/notes/1.0/commutative-inv-cancellation-uptophase-028525d21b199cef.yaml @@ -1,13 +1,13 @@ --- -features: +features_transpiler: - | - Added two new arguments ``matrix_based`` and ``max_qubits`` to the - constructor of :class:`.CommutativeInverseCancellation` transpiler pass. - When ``matrix_based`` is ``True`` the pass uses matrix representations to - check whether two operations are inverse of each other. This makes the - checks more powerful, and in addition allows canceling pairs of operations + Added two new arguments, ``matrix_based`` and ``max_qubits``, to the + constructor of the :class:`.CommutativeInverseCancellation` transpiler pass. + When ``matrix_based`` is ``True``, the pass uses matrix representations to + check whether two operations are the inverse of each other. This makes the + checks more powerful, and in addition allows for cancelling pairs of operations that are inverse up to a phase, while updating the global phase of the circuit - accordingly. Generally this leads to more reductions at the expense of increased + accordingly. This generally leads to more reductions at the expense of increased runtime. The argument ``max_qubits`` limits the number of qubits in matrix-based commutativity and inverse checks. For example:: diff --git a/releasenotes/notes/dep-estimator-paulilist-ef2bb2865b66f012.yaml b/releasenotes/notes/1.0/dep-estimator-paulilist-ef2bb2865b66f012.yaml similarity index 92% rename from releasenotes/notes/dep-estimator-paulilist-ef2bb2865b66f012.yaml rename to releasenotes/notes/1.0/dep-estimator-paulilist-ef2bb2865b66f012.yaml index adbf1f5f9da0..d10bee554703 100644 --- a/releasenotes/notes/dep-estimator-paulilist-ef2bb2865b66f012.yaml +++ b/releasenotes/notes/1.0/dep-estimator-paulilist-ef2bb2865b66f012.yaml @@ -1,5 +1,5 @@ --- -upgrade: +upgrade_quantum_info: - | Using a :class:`~.PauliList` as an observable when calling diff --git a/releasenotes/notes/deprecate-circuit-qasm-e5bbad027388e3f2.yaml b/releasenotes/notes/1.0/deprecate-circuit-qasm-e5bbad027388e3f2.yaml similarity index 90% rename from releasenotes/notes/deprecate-circuit-qasm-e5bbad027388e3f2.yaml rename to releasenotes/notes/1.0/deprecate-circuit-qasm-e5bbad027388e3f2.yaml index 365f6d00dcc5..bb5b73dbfec1 100644 --- a/releasenotes/notes/deprecate-circuit-qasm-e5bbad027388e3f2.yaml +++ b/releasenotes/notes/1.0/deprecate-circuit-qasm-e5bbad027388e3f2.yaml @@ -1,5 +1,5 @@ --- -upgrade: +upgrade_circuits: - | Removed the ``Instruction.qasm`` method, which was deprecated in Qiskit 0.45.0. Use :func:`qiskit.qasm2.dump` with a complete :class:`.QuantumCircuit` instead. diff --git a/releasenotes/notes/1.0/deprecate-pulse-instruction-call-52dca0dd26e1c768.yaml b/releasenotes/notes/1.0/deprecate-pulse-instruction-call-52dca0dd26e1c768.yaml new file mode 100644 index 000000000000..304dd1059722 --- /dev/null +++ b/releasenotes/notes/1.0/deprecate-pulse-instruction-call-52dca0dd26e1c768.yaml @@ -0,0 +1,5 @@ +--- +upgrade_pulse: + - | + Removed the deprecated class ``qiskit.pulse.instructions.Call`` + No alternative pulse instruction is provided. diff --git a/releasenotes/notes/1.0/deprecate-qinfo-synthesis-23abd8c34fc0f52e.yaml b/releasenotes/notes/1.0/deprecate-qinfo-synthesis-23abd8c34fc0f52e.yaml new file mode 100644 index 000000000000..f4aca5c682da --- /dev/null +++ b/releasenotes/notes/1.0/deprecate-qinfo-synthesis-23abd8c34fc0f52e.yaml @@ -0,0 +1,12 @@ +--- +upgrade_synthesis: + - | + The following deprecated functions previously in :mod:`qiskit.quantum_info` + have been removed. These functions were marked as deprecated in the + Qiskit 0.40.0 release in 2023-01. + + * ``decompose_clifford``: you should use the + :func:`.qiskit.synthesis.synth_clifford_full` function instead. + * ``decompose_cnotdihedral``: you should use the + :func:`.qiskit.synthesis.synth_cnotdihedral_full` function instead. + diff --git a/releasenotes/notes/1.0/deprecate_aquire_alignment-28f64480ed838328.yaml b/releasenotes/notes/1.0/deprecate_aquire_alignment-28f64480ed838328.yaml new file mode 100644 index 000000000000..3de16dc20755 --- /dev/null +++ b/releasenotes/notes/1.0/deprecate_aquire_alignment-28f64480ed838328.yaml @@ -0,0 +1,6 @@ +--- +upgrade_transpiler: + - | + The deprecated method ``Target.aquire_alignment`` has been removed. It was marked as deprecated in + Qiskit 0.43 (released 2023-05). The method + :meth:`.Target.acquire_alignment` should be used instead. diff --git a/releasenotes/notes/1.0/deprecate_clifford_indexing-5e3500301a696bdc.yaml b/releasenotes/notes/1.0/deprecate_clifford_indexing-5e3500301a696bdc.yaml new file mode 100644 index 000000000000..00a254d31783 --- /dev/null +++ b/releasenotes/notes/1.0/deprecate_clifford_indexing-5e3500301a696bdc.yaml @@ -0,0 +1,7 @@ +--- +upgrade_quantum_info: + - | + Removed the deprecated ``__getitem__``/``__setitem__`` magic methods of + :class:`.Clifford`. + The methods were deprecated since Qiskit 0.44, released in 2023-07. + Instead, index or iterate through the :attr:`.Clifford.tableau` attribute. diff --git a/releasenotes/notes/1.0/deprecation-passmanager-0.25-95eb9b45b517370a.yaml b/releasenotes/notes/1.0/deprecation-passmanager-0.25-95eb9b45b517370a.yaml new file mode 100644 index 000000000000..33c341a41584 --- /dev/null +++ b/releasenotes/notes/1.0/deprecation-passmanager-0.25-95eb9b45b517370a.yaml @@ -0,0 +1,5 @@ +--- +upgrade_transpiler: + - | + Removed deprecated function ``qiskit.transpiler.preset_passmanagers.common.get_vf2_call_limit``. + Instead, use :func:`.get_vf2_limits`. diff --git a/releasenotes/notes/expr-hashable-var-types-7cf2aaa00b201ae6.yaml b/releasenotes/notes/1.0/expr-hashable-var-types-7cf2aaa00b201ae6.yaml similarity index 87% rename from releasenotes/notes/expr-hashable-var-types-7cf2aaa00b201ae6.yaml rename to releasenotes/notes/1.0/expr-hashable-var-types-7cf2aaa00b201ae6.yaml index 70a1cf81d061..2a6405ab712e 100644 --- a/releasenotes/notes/expr-hashable-var-types-7cf2aaa00b201ae6.yaml +++ b/releasenotes/notes/1.0/expr-hashable-var-types-7cf2aaa00b201ae6.yaml @@ -1,5 +1,5 @@ --- -features: +features_circuits: - | Classical types (subclasses of :class:`~classical.types.Type`) and variables (:class:`~.expr.Var`) are now hashable. diff --git a/releasenotes/notes/expr-var-standalone-2c1116583a2be9fd.yaml b/releasenotes/notes/1.0/expr-var-standalone-2c1116583a2be9fd.yaml similarity index 95% rename from releasenotes/notes/expr-var-standalone-2c1116583a2be9fd.yaml rename to releasenotes/notes/1.0/expr-var-standalone-2c1116583a2be9fd.yaml index c4f463f4a6bf..0a67e2168b03 100644 --- a/releasenotes/notes/expr-var-standalone-2c1116583a2be9fd.yaml +++ b/releasenotes/notes/1.0/expr-var-standalone-2c1116583a2be9fd.yaml @@ -1,5 +1,5 @@ --- -features: +features_circuits: - | :class:`~.expr.Var` nodes now have a :attr:`.Var.standalone` property to quickly query whether they own their own memory, or if they wrap old-style classical memory in the form of a diff --git a/releasenotes/notes/fast-sparse-pauli-operator-b41cacf11e8c4e0e.yaml b/releasenotes/notes/1.0/fast-sparse-pauli-operator-b41cacf11e8c4e0e.yaml similarity index 58% rename from releasenotes/notes/fast-sparse-pauli-operator-b41cacf11e8c4e0e.yaml rename to releasenotes/notes/1.0/fast-sparse-pauli-operator-b41cacf11e8c4e0e.yaml index 625231d2fb10..db64e18926d4 100644 --- a/releasenotes/notes/fast-sparse-pauli-operator-b41cacf11e8c4e0e.yaml +++ b/releasenotes/notes/1.0/fast-sparse-pauli-operator-b41cacf11e8c4e0e.yaml @@ -1,8 +1,8 @@ --- -features: +features_quantum_info: - | :meth:`.SparsePauliOp.from_operator` now uses an implementation of the - "tensorized Pauli decomposition algorithm" presented in - Hatznko, Binkowski and Gupta (2023) `__. The method is now + "tensorized Pauli decomposition algorithm" presented in + `Hatznko, Binkowski and Gupta (2023) `__. The method is now several orders of magnitude faster; for example, it is possible to decompose a random 10-qubit operator in around 250ms on a consumer Macbook Pro (Intel i7, 2020). diff --git a/releasenotes/notes/fix-annotated-qpy-6503362c79f29838.yaml b/releasenotes/notes/1.0/fix-annotated-qpy-6503362c79f29838.yaml similarity index 100% rename from releasenotes/notes/fix-annotated-qpy-6503362c79f29838.yaml rename to releasenotes/notes/1.0/fix-annotated-qpy-6503362c79f29838.yaml diff --git a/releasenotes/notes/fix-aqc-optimizer-typehint-34b54c6278d23f79.yaml b/releasenotes/notes/1.0/fix-aqc-optimizer-typehint-34b54c6278d23f79.yaml similarity index 80% rename from releasenotes/notes/fix-aqc-optimizer-typehint-34b54c6278d23f79.yaml rename to releasenotes/notes/1.0/fix-aqc-optimizer-typehint-34b54c6278d23f79.yaml index bca717c18745..92778bfbdc49 100644 --- a/releasenotes/notes/fix-aqc-optimizer-typehint-34b54c6278d23f79.yaml +++ b/releasenotes/notes/1.0/fix-aqc-optimizer-typehint-34b54c6278d23f79.yaml @@ -4,18 +4,16 @@ fixes: The use of the (deprecated) ``Optimizer`` class on :class:`~.AQC` did not have a non-deprecated alternative path, which should have been introduced in the original ``qiskit-algorithms`` deprecation PR - [#10406](https://github.com/Qiskit/qiskit/pull/10406). + `#10406 `_. It now accepts a callable that implements the :class:`~.Minimizer` protocol, as explicitly stated in the deprecation warning. The callable can look like the following example: .. code-block:: python + from functools import partial from scipy.optimize import minimize - from qiskit.transpiler.synthesis.aqc.aqc import AQC + from qiskit.synthesis.unitary.aqc import AQC optimizer = partial(minimize, args=(), method="L-BFGS-B", options={"maxiter": 200}) aqc = AQC(optimizer=optimizer) - - - diff --git a/releasenotes/notes/fix-barrier-arg-list-check-ff69f37ede6bdf6c.yaml b/releasenotes/notes/1.0/fix-barrier-arg-list-check-ff69f37ede6bdf6c.yaml similarity index 73% rename from releasenotes/notes/fix-barrier-arg-list-check-ff69f37ede6bdf6c.yaml rename to releasenotes/notes/1.0/fix-barrier-arg-list-check-ff69f37ede6bdf6c.yaml index b620a72666f3..78941544c799 100644 --- a/releasenotes/notes/fix-barrier-arg-list-check-ff69f37ede6bdf6c.yaml +++ b/releasenotes/notes/1.0/fix-barrier-arg-list-check-ff69f37ede6bdf6c.yaml @@ -3,5 +3,5 @@ fixes: - | Fixed an issue with the :class:`.Barrier` class. When adding a :class:`.Barrier` instance to a :class:`.QuantumCircuit` with the - :meth:`.QuantumCircuit.append` method previously there was no validation + :meth:`.QuantumCircuit.append` method, previously there was no validation that the size of the barrier matched the qargs specified. diff --git a/releasenotes/notes/fix-block-collapser-cregs-6c2d2dc6931d7bad.yaml b/releasenotes/notes/1.0/fix-block-collapser-cregs-6c2d2dc6931d7bad.yaml similarity index 100% rename from releasenotes/notes/fix-block-collapser-cregs-6c2d2dc6931d7bad.yaml rename to releasenotes/notes/1.0/fix-block-collapser-cregs-6c2d2dc6931d7bad.yaml diff --git a/releasenotes/notes/fix-blueprint-circuit-_append-b4d6c9c41db860f5.yaml b/releasenotes/notes/1.0/fix-blueprint-circuit-_append-b4d6c9c41db860f5.yaml similarity index 100% rename from releasenotes/notes/fix-blueprint-circuit-_append-b4d6c9c41db860f5.yaml rename to releasenotes/notes/1.0/fix-blueprint-circuit-_append-b4d6c9c41db860f5.yaml diff --git a/releasenotes/notes/fix-blueprintcircuit-phase-7102043cf2e47e33.yaml b/releasenotes/notes/1.0/fix-blueprintcircuit-phase-7102043cf2e47e33.yaml similarity index 77% rename from releasenotes/notes/fix-blueprintcircuit-phase-7102043cf2e47e33.yaml rename to releasenotes/notes/1.0/fix-blueprintcircuit-phase-7102043cf2e47e33.yaml index f835d8a97477..01602cc31a47 100644 --- a/releasenotes/notes/fix-blueprintcircuit-phase-7102043cf2e47e33.yaml +++ b/releasenotes/notes/1.0/fix-blueprintcircuit-phase-7102043cf2e47e33.yaml @@ -2,5 +2,5 @@ fixes: - | Calling :meth:`~.QuantumCircuit.copy` or :meth:`~.QuantumCircuit.copy_empty_like` on a - :class:¬.BlueprintCircuit` will now correctly propagate the + :class:`.BlueprintCircuit` will now correctly propagate the :attr:`~.QuantumCircuit.global_phase` to the copy. Previously, the global phase would always be zero after the copy. diff --git a/releasenotes/notes/fix-circuit-barrier-c696eabae1dcc6c2.yaml b/releasenotes/notes/1.0/fix-circuit-barrier-c696eabae1dcc6c2.yaml similarity index 98% rename from releasenotes/notes/fix-circuit-barrier-c696eabae1dcc6c2.yaml rename to releasenotes/notes/1.0/fix-circuit-barrier-c696eabae1dcc6c2.yaml index b16792f8fb3f..54b864050ad8 100644 --- a/releasenotes/notes/fix-circuit-barrier-c696eabae1dcc6c2.yaml +++ b/releasenotes/notes/1.0/fix-circuit-barrier-c696eabae1dcc6c2.yaml @@ -4,4 +4,4 @@ fixes: :meth:`.QuantumCircuit.barrier` will now generate correct output when given a :class:`set` as one of its inputs. Previously, it would append an invalid operation onto the circuit, though in practice this usually would not cause observable problems. - Fixed `#11208 `__ + Fixed `#11208 `__. diff --git a/releasenotes/notes/fix-circuit-compose-duplicate-59de6c1c51f58e54.yaml b/releasenotes/notes/1.0/fix-circuit-compose-duplicate-59de6c1c51f58e54.yaml similarity index 100% rename from releasenotes/notes/fix-circuit-compose-duplicate-59de6c1c51f58e54.yaml rename to releasenotes/notes/1.0/fix-circuit-compose-duplicate-59de6c1c51f58e54.yaml diff --git a/releasenotes/notes/fix-clifford-qpy-2ffc8308c888e7e0.yaml b/releasenotes/notes/1.0/fix-clifford-qpy-2ffc8308c888e7e0.yaml similarity index 100% rename from releasenotes/notes/fix-clifford-qpy-2ffc8308c888e7e0.yaml rename to releasenotes/notes/1.0/fix-clifford-qpy-2ffc8308c888e7e0.yaml diff --git a/releasenotes/notes/fix-default-case-empty-0076264db04d6c7a.yaml b/releasenotes/notes/1.0/fix-default-case-empty-0076264db04d6c7a.yaml similarity index 100% rename from releasenotes/notes/fix-default-case-empty-0076264db04d6c7a.yaml rename to releasenotes/notes/1.0/fix-default-case-empty-0076264db04d6c7a.yaml diff --git a/releasenotes/notes/fix-delay-broadcast-e8762b01dfd7e94f.yaml b/releasenotes/notes/1.0/fix-delay-broadcast-e8762b01dfd7e94f.yaml similarity index 100% rename from releasenotes/notes/fix-delay-broadcast-e8762b01dfd7e94f.yaml rename to releasenotes/notes/1.0/fix-delay-broadcast-e8762b01dfd7e94f.yaml diff --git a/releasenotes/notes/1.0/fix-error-message-qpy-version-cf0763da22ce2224.yaml b/releasenotes/notes/1.0/fix-error-message-qpy-version-cf0763da22ce2224.yaml new file mode 100644 index 000000000000..9138bc152d59 --- /dev/null +++ b/releasenotes/notes/1.0/fix-error-message-qpy-version-cf0763da22ce2224.yaml @@ -0,0 +1,9 @@ +--- +fixes: + - | + Fixed an issue with :func:`.qpy.load` when attempting to load a QPY format + version that is not supported by this version of Qiskit. It will now display + a descriptive error message. Previously, it would raise an internal error + because of the incompatibility between the formats, which was difficult to + debug. If the QPY format version is not supported, that indicates the Qiskit + version will need to be upgraded to read the QPY payload. diff --git a/releasenotes/notes/fix-instruction-condition-bits-17694f98628b30ad.yaml b/releasenotes/notes/1.0/fix-instruction-condition-bits-17694f98628b30ad.yaml similarity index 100% rename from releasenotes/notes/fix-instruction-condition-bits-17694f98628b30ad.yaml rename to releasenotes/notes/1.0/fix-instruction-condition-bits-17694f98628b30ad.yaml diff --git a/releasenotes/notes/fix-leaking-split-barrier-7c143d6b13b96ced.yaml b/releasenotes/notes/1.0/fix-leaking-split-barrier-7c143d6b13b96ced.yaml similarity index 88% rename from releasenotes/notes/fix-leaking-split-barrier-7c143d6b13b96ced.yaml rename to releasenotes/notes/1.0/fix-leaking-split-barrier-7c143d6b13b96ced.yaml index 5cd8f19dc150..f406bffe1cb6 100644 --- a/releasenotes/notes/fix-leaking-split-barrier-7c143d6b13b96ced.yaml +++ b/releasenotes/notes/1.0/fix-leaking-split-barrier-7c143d6b13b96ced.yaml @@ -3,7 +3,7 @@ fixes: - | Fixed an issue when using :func:`.transpile` or running a preset pass manager (such as generated by :func:`.generate_preset_pass_manager`) when - targetting a backend that has disjoint connectivity adding extra barriers + targeting a backend that has disjoint connectivity adding extra barriers to the output :class:`.QuantumCircuit`. In some cases several single qubit :class:`.Barrier` directives would be included in the output circuit right before any final measurements in the circuit. This was diff --git a/releasenotes/notes/fix-missing-pulse-lib-c370f5b9393d0df6.yaml b/releasenotes/notes/1.0/fix-missing-pulse-lib-c370f5b9393d0df6.yaml similarity index 66% rename from releasenotes/notes/fix-missing-pulse-lib-c370f5b9393d0df6.yaml rename to releasenotes/notes/1.0/fix-missing-pulse-lib-c370f5b9393d0df6.yaml index 1e67e9c73bbe..e6344eebb631 100644 --- a/releasenotes/notes/fix-missing-pulse-lib-c370f5b9393d0df6.yaml +++ b/releasenotes/notes/1.0/fix-missing-pulse-lib-c370f5b9393d0df6.yaml @@ -1,12 +1,12 @@ --- fixes: - | - Fixed a bug that results in an error when a user tries to load .calibration - data of a gate in :class:`.Target` in a particular situation. + Fixed an error when a user tries to load calibration + data of a gate from a :class:`.Target` in a particular situation. This occurs when the backend reports only partial calibration data, for example referencing a waveform pulse in a command definition but not including that waveform pulse in the pulse library. In this situation, the - Qiskit pulse object cannot be built, resulting in a failure to build the pulse + Qiskit pulse object could not be built, resulting in a failure to build the pulse schedule for the calibration. Now when calibration data is incomplete the :class:`.Target` treats it as equivalent to no calibration being reported at all and does not raise an exception. diff --git a/releasenotes/notes/fix-operator-power-bd9a00b4e6700d2e.yaml b/releasenotes/notes/1.0/fix-operator-power-bd9a00b4e6700d2e.yaml similarity index 99% rename from releasenotes/notes/fix-operator-power-bd9a00b4e6700d2e.yaml rename to releasenotes/notes/1.0/fix-operator-power-bd9a00b4e6700d2e.yaml index dbcfe069b893..b8c000a60c51 100644 --- a/releasenotes/notes/fix-operator-power-bd9a00b4e6700d2e.yaml +++ b/releasenotes/notes/1.0/fix-operator-power-bd9a00b4e6700d2e.yaml @@ -3,4 +3,3 @@ fixes: - | The :meth:`.Operator.power` method now works with floating-point exponents, matching the documented description. - diff --git a/releasenotes/notes/fix-optimize-1q-sim-407b88e45e6062b6.yaml b/releasenotes/notes/1.0/fix-optimize-1q-sim-407b88e45e6062b6.yaml similarity index 98% rename from releasenotes/notes/fix-optimize-1q-sim-407b88e45e6062b6.yaml rename to releasenotes/notes/1.0/fix-optimize-1q-sim-407b88e45e6062b6.yaml index f531561789e0..de075998a8a3 100644 --- a/releasenotes/notes/fix-optimize-1q-sim-407b88e45e6062b6.yaml +++ b/releasenotes/notes/1.0/fix-optimize-1q-sim-407b88e45e6062b6.yaml @@ -7,4 +7,4 @@ fixes: is now fixed so the pass :class:`.Optimize1qGatesDecomposition` will defer to the circuit's gate if the error rate (which includes number of gates) are the same. - Fixed `#10568 `__ + Fixed `#10568 `__. diff --git a/releasenotes/notes/fix-optimize-swap-before-measure-67e8896da2215d49.yaml b/releasenotes/notes/1.0/fix-optimize-swap-before-measure-67e8896da2215d49.yaml similarity index 78% rename from releasenotes/notes/fix-optimize-swap-before-measure-67e8896da2215d49.yaml rename to releasenotes/notes/1.0/fix-optimize-swap-before-measure-67e8896da2215d49.yaml index 9c743062c6d3..deabe8771b62 100644 --- a/releasenotes/notes/fix-optimize-swap-before-measure-67e8896da2215d49.yaml +++ b/releasenotes/notes/1.0/fix-optimize-swap-before-measure-67e8896da2215d49.yaml @@ -2,10 +2,8 @@ fixes: - | Fixed an issue with the :class:`~.OptimizeSwapBeforeMeasure` pass where - it would incorrectly optimize circuits involving swap and measure - instructions. This commit fixes the bug by changing `DAGCircuit.successors` - to `DAGCircuit.descendants`. Also, added a couple of extra tests to ensure - that the bug is fixed. For example:: + it would incorrectly optimize circuits involving swap and measure + instructions. For example:: from qiskit import QuantumCircuit from qiskit.transpiler.passes import OptimizeSwapBeforeMeasure @@ -16,7 +14,7 @@ fixes: qc.measure(0, 0) print(qc.draw()) print(pass_(qc).draw()) - + would previously print:: ┌─┐┌─┐ @@ -33,12 +31,12 @@ fixes: ║ └╥┘ c: 1/═╩══╩═ 0 0 - - and now the second ciruit is correctly optimized to:: - + + and now the second circuit is correctly optimized to:: + q_0: ────── ┌─┐┌─┐ q_1: ┤M├┤M├ └╥┘└╥┘ c: 1/═╩══╩═ - 0 0 \ No newline at end of file + 0 0 diff --git a/releasenotes/notes/fix-param-global-phase-31547267f6124552.yaml b/releasenotes/notes/1.0/fix-param-global-phase-31547267f6124552.yaml similarity index 69% rename from releasenotes/notes/fix-param-global-phase-31547267f6124552.yaml rename to releasenotes/notes/1.0/fix-param-global-phase-31547267f6124552.yaml index 13048f626dc4..e02d82045260 100644 --- a/releasenotes/notes/fix-param-global-phase-31547267f6124552.yaml +++ b/releasenotes/notes/1.0/fix-param-global-phase-31547267f6124552.yaml @@ -4,4 +4,4 @@ fixes: Fixed compatibility of :class:`.DynamicalDecoupling` and :class:`.PadDynamicalDecoupling` with circuits that have a parameterized global phase. - Fixed `#10569 `__. + Fixed `#10569 `__. diff --git a/releasenotes/notes/fix-parameterized-self-inverse-7cb2d68b273640f8.yaml b/releasenotes/notes/1.0/fix-parameterized-self-inverse-7cb2d68b273640f8.yaml similarity index 77% rename from releasenotes/notes/fix-parameterized-self-inverse-7cb2d68b273640f8.yaml rename to releasenotes/notes/1.0/fix-parameterized-self-inverse-7cb2d68b273640f8.yaml index 7ca796cdd2a5..8f1d5e4d2637 100644 --- a/releasenotes/notes/fix-parameterized-self-inverse-7cb2d68b273640f8.yaml +++ b/releasenotes/notes/1.0/fix-parameterized-self-inverse-7cb2d68b273640f8.yaml @@ -2,7 +2,7 @@ fixes: - | Fixed an issue with the :class:`~.InverseCancellation` pass where it would - incorrectly cancel gates passed in as self inverses with a parameter + incorrectly cancel gates passed in as self-inverses with a parameter value, if a run of gates had a different parameter value. For example:: from math import pi @@ -16,7 +16,8 @@ fixes: qc = QuantumCircuit(1) qc.rz(0, 0) qc.rz(pi, 0) + qc.rz(0, 0) inverse_pass(qc) - would previously have incorrectly cancelled the two rz gates. + would previously have incorrectly cancelled two of the rz gates. diff --git a/releasenotes/notes/1.0/fix-plot-state-city-viz-2963c83bcf3d3347.yaml b/releasenotes/notes/1.0/fix-plot-state-city-viz-2963c83bcf3d3347.yaml new file mode 100644 index 000000000000..690ae944314c --- /dev/null +++ b/releasenotes/notes/1.0/fix-plot-state-city-viz-2963c83bcf3d3347.yaml @@ -0,0 +1,9 @@ +--- +fixes: + - | + Adjusted zoom, font size, and margins of :func:`.plot_state_city` to fit the plot better for more figure + sizes. + - | + Corrected the Z-ordering behavior of bars and the zero-amplitude plane in :func:`.plot_state_city`. + - | + Corrected display of negative real value bars in :func:`.plot_state_city`. diff --git a/releasenotes/notes/fix-pulse-channel-hash-549a8fb5d8738c4d.yaml b/releasenotes/notes/1.0/fix-pulse-channel-hash-549a8fb5d8738c4d.yaml similarity index 100% rename from releasenotes/notes/fix-pulse-channel-hash-549a8fb5d8738c4d.yaml rename to releasenotes/notes/1.0/fix-pulse-channel-hash-549a8fb5d8738c4d.yaml diff --git a/releasenotes/notes/fix-qasm2-deepcopy-conditioned-gate-2fa75fee622c1fc0.yaml b/releasenotes/notes/1.0/fix-qasm2-deepcopy-conditioned-gate-2fa75fee622c1fc0.yaml similarity index 100% rename from releasenotes/notes/fix-qasm2-deepcopy-conditioned-gate-2fa75fee622c1fc0.yaml rename to releasenotes/notes/1.0/fix-qasm2-deepcopy-conditioned-gate-2fa75fee622c1fc0.yaml diff --git a/releasenotes/notes/fix-qpy-custom-gates-name-conflict-5c4c7df3484f04e0.yaml b/releasenotes/notes/1.0/fix-qpy-custom-gates-name-conflict-5c4c7df3484f04e0.yaml similarity index 98% rename from releasenotes/notes/fix-qpy-custom-gates-name-conflict-5c4c7df3484f04e0.yaml rename to releasenotes/notes/1.0/fix-qpy-custom-gates-name-conflict-5c4c7df3484f04e0.yaml index 8de7fb148ca7..50f4eefc356c 100644 --- a/releasenotes/notes/fix-qpy-custom-gates-name-conflict-5c4c7df3484f04e0.yaml +++ b/releasenotes/notes/1.0/fix-qpy-custom-gates-name-conflict-5c4c7df3484f04e0.yaml @@ -1,5 +1,5 @@ --- -upgrade: +upgrade_qpy: - | The latest format version of QPY is now :ref:`qpy_version_11` and this is what is emitted by default when running :func:`.qpy.dump`. @@ -16,4 +16,4 @@ fixes: QPY :ref:`qpy_version_11` so that each instance of a custom instruction is serialized individually and there will no longer be a potential conflict with overlapping names. - Fixes `#8941 `__ + Fixes `#8941 `__. diff --git a/releasenotes/notes/fix-qpy-statepreparation-retrieval-1feea5eb74db7f1e.yaml b/releasenotes/notes/1.0/fix-qpy-statepreparation-retrieval-1feea5eb74db7f1e.yaml similarity index 100% rename from releasenotes/notes/fix-qpy-statepreparation-retrieval-1feea5eb74db7f1e.yaml rename to releasenotes/notes/1.0/fix-qpy-statepreparation-retrieval-1feea5eb74db7f1e.yaml diff --git a/releasenotes/notes/1.0/fix-qpy-use-symengine-bool-like-d17550057a58abf2.yaml b/releasenotes/notes/1.0/fix-qpy-use-symengine-bool-like-d17550057a58abf2.yaml new file mode 100644 index 000000000000..926a628b2e9b --- /dev/null +++ b/releasenotes/notes/1.0/fix-qpy-use-symengine-bool-like-d17550057a58abf2.yaml @@ -0,0 +1,9 @@ +--- +fixes: + - | + Fixed an issue with the :func:`.qpy.dump` function where, when the + ``use_symengine`` flag was set to a truthy object that evaluated to + ``True`` but was not actually the boolean ``True``, the generated QPY + payload would be corrupt. For example, if you set ``use_symengine`` to + :obj:`.HAS_SYMENGINE`, this object evaluates to ``True`` when cast as a bool, + but isn't actually ``True``. diff --git a/releasenotes/notes/fix-qreg-visualization-after-layout-42d3e643b923d8bc.yaml b/releasenotes/notes/1.0/fix-qreg-visualization-after-layout-42d3e643b923d8bc.yaml similarity index 100% rename from releasenotes/notes/fix-qreg-visualization-after-layout-42d3e643b923d8bc.yaml rename to releasenotes/notes/1.0/fix-qreg-visualization-after-layout-42d3e643b923d8bc.yaml diff --git a/releasenotes/notes/fix-schedule-qpy-use-symengine-05ae1dfab73e3ff8.yaml b/releasenotes/notes/1.0/fix-schedule-qpy-use-symengine-05ae1dfab73e3ff8.yaml similarity index 100% rename from releasenotes/notes/fix-schedule-qpy-use-symengine-05ae1dfab73e3ff8.yaml rename to releasenotes/notes/1.0/fix-schedule-qpy-use-symengine-05ae1dfab73e3ff8.yaml diff --git a/releasenotes/notes/fix-stabilizerstate-repr-908c830028b1f868.yaml b/releasenotes/notes/1.0/fix-stabilizerstate-repr-908c830028b1f868.yaml similarity index 100% rename from releasenotes/notes/fix-stabilizerstate-repr-908c830028b1f868.yaml rename to releasenotes/notes/1.0/fix-stabilizerstate-repr-908c830028b1f868.yaml diff --git a/releasenotes/notes/fix-unitary-equal-eb828aca3aaa5e73.yaml b/releasenotes/notes/1.0/fix-unitary-equal-eb828aca3aaa5e73.yaml similarity index 100% rename from releasenotes/notes/fix-unitary-equal-eb828aca3aaa5e73.yaml rename to releasenotes/notes/1.0/fix-unitary-equal-eb828aca3aaa5e73.yaml diff --git a/releasenotes/notes/1.0/fix-v2-conversion-with-defective-backend-6d9cebe55b06b797.yaml b/releasenotes/notes/1.0/fix-v2-conversion-with-defective-backend-6d9cebe55b06b797.yaml new file mode 100644 index 000000000000..0b71414ee31f --- /dev/null +++ b/releasenotes/notes/1.0/fix-v2-conversion-with-defective-backend-6d9cebe55b06b797.yaml @@ -0,0 +1,15 @@ +--- +fixes: + - | + A bug where :func:`.convert_to_target` and :class:`.BackendV2Converter` raised an unexpected + error was solved. The bug occurred when the backend to convert included calibrations + for a gate that didn't have a definition in the backend properties. + Such gate is now broadcast to all qubits as an ideal error-free instruction, + even when calibrations for a finite set of qubits are reported. +upgrade_providers: + - | + The :class:`.BackendProperties` and :class:`.PulseDefaults` model objects used by the + :class:`.FakeOpenPulse2Q` have been updated to be internally consistent and add missing + instructions. If you were relying on the previous model objects as a compilation target you can + use the backend with Qiskit 0.46 and export a :class:`.QuantumCircuit` generated with + :func:`.transpile` and serialize it using :class:`.qpy.dump` to access it in this release. diff --git a/releasenotes/notes/1.0/fix_11143-d32a262538873a9d.yaml b/releasenotes/notes/1.0/fix_11143-d32a262538873a9d.yaml new file mode 100644 index 000000000000..9c151af8d516 --- /dev/null +++ b/releasenotes/notes/1.0/fix_11143-d32a262538873a9d.yaml @@ -0,0 +1,6 @@ +upgrade_visualization: + - | + The functions ``qiskit.visualization.state_visualization.num_to_latex_ket`` and + ``qiskit.visualization.state_visualization.numbers_to_latex_terms`` have been removed, as they + were removed in Qiskit 0.40 (released in 2023-01). For similar functionality, see Sympy's + ``nsimplify`` and ``latex`` functions. diff --git a/releasenotes/notes/1.0/fix_11536-c87d192a133b3dc3.yaml b/releasenotes/notes/1.0/fix_11536-c87d192a133b3dc3.yaml new file mode 100644 index 000000000000..428cd8f25258 --- /dev/null +++ b/releasenotes/notes/1.0/fix_11536-c87d192a133b3dc3.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Fixed an issue with the :func:`.circuit_drawer` function and + :meth:`.QuantumCircuit.draw` method when loading a matplotlib style + via the user configuration file. diff --git a/releasenotes/notes/fixes_10744-83e5f33f5db74a22.yaml b/releasenotes/notes/1.0/fixes_10744-83e5f33f5db74a22.yaml similarity index 73% rename from releasenotes/notes/fixes_10744-83e5f33f5db74a22.yaml rename to releasenotes/notes/1.0/fixes_10744-83e5f33f5db74a22.yaml index 22af9ea1bac0..911c70ea3950 100644 --- a/releasenotes/notes/fixes_10744-83e5f33f5db74a22.yaml +++ b/releasenotes/notes/1.0/fixes_10744-83e5f33f5db74a22.yaml @@ -1,9 +1,9 @@ --- -upgrade: +upgrade_circuits: - | The properties ``Bit.register`` and ``Bit.index`` are removed. They were deprecated in - Qiskit 0.25 (released in April, 2021). The qubits and bits now live only in the context of + Qiskit 0.25 (released in 2021-04). The qubits and bits now live only in the context of a :class:`.QuantumCircuit`. The alternative to the properties is to use :meth:`.QuantumCircuit.find_bit` to find all the containing - registers within a circuit and the index of the bit within the + registers within a circuit and the index of the bit within the circuit. diff --git a/releasenotes/notes/high-level-synthesis-plugin-list-beff523921c4c4eb.yaml b/releasenotes/notes/1.0/high-level-synthesis-plugin-list-beff523921c4c4eb.yaml similarity index 81% rename from releasenotes/notes/high-level-synthesis-plugin-list-beff523921c4c4eb.yaml rename to releasenotes/notes/1.0/high-level-synthesis-plugin-list-beff523921c4c4eb.yaml index fd5964f72c34..b99f8b25aee7 100644 --- a/releasenotes/notes/high-level-synthesis-plugin-list-beff523921c4c4eb.yaml +++ b/releasenotes/notes/1.0/high-level-synthesis-plugin-list-beff523921c4c4eb.yaml @@ -1,6 +1,6 @@ --- -features: +features_transpiler: - | - Added a new function, :func:`.high_level_synthesis_plugin_names` that is + Added a new function, :func:`.high_level_synthesis_plugin_names`, that can be used to get the list of installed high level synthesis plugins for a given operation name. diff --git a/releasenotes/notes/instructiondurations-subclass-from-backend-1240cb924f386816.yaml b/releasenotes/notes/1.0/instructiondurations-subclass-from-backend-1240cb924f386816.yaml similarity index 100% rename from releasenotes/notes/instructiondurations-subclass-from-backend-1240cb924f386816.yaml rename to releasenotes/notes/1.0/instructiondurations-subclass-from-backend-1240cb924f386816.yaml diff --git a/releasenotes/notes/1.0/iqp-default-1.0-d9335e866ac8fdbc.yaml b/releasenotes/notes/1.0/iqp-default-1.0-d9335e866ac8fdbc.yaml new file mode 100644 index 000000000000..dae479797d5a --- /dev/null +++ b/releasenotes/notes/1.0/iqp-default-1.0-d9335e866ac8fdbc.yaml @@ -0,0 +1,9 @@ +--- +upgrade_visualization: + - | + The default style for the circuit visualization using Matplotlib has been + changed to ``"iqp"``, matching the IBM Quantum Platform. + - | + The deprecated module ``qiskit.visualization.qcstyle`` has been removed. + This module has been marked as deprecated since Qiskit 0.39.0. Instead you + should use the :mod:`qiskit.visualization.circuit.qcstyle`. diff --git a/releasenotes/notes/lazy-testers-warn-on-import-errors-95a9bdaacc9c3d2b.yaml b/releasenotes/notes/1.0/lazy-testers-warn-on-import-errors-95a9bdaacc9c3d2b.yaml similarity index 75% rename from releasenotes/notes/lazy-testers-warn-on-import-errors-95a9bdaacc9c3d2b.yaml rename to releasenotes/notes/1.0/lazy-testers-warn-on-import-errors-95a9bdaacc9c3d2b.yaml index 0a3167cc1f66..f6cfda98f0df 100644 --- a/releasenotes/notes/lazy-testers-warn-on-import-errors-95a9bdaacc9c3d2b.yaml +++ b/releasenotes/notes/1.0/lazy-testers-warn-on-import-errors-95a9bdaacc9c3d2b.yaml @@ -1,11 +1,9 @@ --- -features: +features_misc: - | - A new warning base class, :exc:`.QiskitWarning`, was added. While Qiskit will continue to use + Added a new warning base class, :exc:`.QiskitWarning`. While Qiskit will continue to use built-in Python warnings (such as :exc:`DeprecationWarning`) when those are most appropriate, for cases that are more specific to Qiskit, the warnings will be subclasses of :exc:`.QiskitWarning`. - - | - :exc:`.QPYLoadingDeprecatedFeatureWarning` is now a subclass of :exc:`.QiskitWarning`. - | The optional-functionality testers (:mod:`qiskit.utils.optionals`) will now distinguish an optional dependency that was completely not found (a normal situation) with one that was found, diff --git a/releasenotes/notes/move-synthesis-plugin-error-61e3683bf5a0c225.yaml b/releasenotes/notes/1.0/move-synthesis-plugin-error-61e3683bf5a0c225.yaml similarity index 64% rename from releasenotes/notes/move-synthesis-plugin-error-61e3683bf5a0c225.yaml rename to releasenotes/notes/1.0/move-synthesis-plugin-error-61e3683bf5a0c225.yaml index 6ceb03b1b64c..bc9cb5784c9a 100644 --- a/releasenotes/notes/move-synthesis-plugin-error-61e3683bf5a0c225.yaml +++ b/releasenotes/notes/1.0/move-synthesis-plugin-error-61e3683bf5a0c225.yaml @@ -2,5 +2,5 @@ fixes: - | The :class:`.UnitarySynthesis` transpiler pass will now generate an error on initialization when - a nonexistent sythesis plugin is specified, rather than waiting until runtime to raise. Fixed + a nonexistent synthesis plugin is specified, rather than waiting until runtime to raise. Fixed `#11355 `__. diff --git a/releasenotes/notes/new-exception-too-wide-3231c1df15952445.yaml b/releasenotes/notes/1.0/new-exception-too-wide-3231c1df15952445.yaml similarity index 95% rename from releasenotes/notes/new-exception-too-wide-3231c1df15952445.yaml rename to releasenotes/notes/1.0/new-exception-too-wide-3231c1df15952445.yaml index d3bfa72c071e..5ba085769960 100644 --- a/releasenotes/notes/new-exception-too-wide-3231c1df15952445.yaml +++ b/releasenotes/notes/1.0/new-exception-too-wide-3231c1df15952445.yaml @@ -1,5 +1,5 @@ --- -features: +features_transpiler: - | Added a new exception class :exc:`.CircuitToWideForTarget` which subclasses :exc:`.TranspilerError`. It's used in places where a diff --git a/releasenotes/notes/overlap-circuit-barriers-63b9b1be9c1da100.yaml b/releasenotes/notes/1.0/overlap-circuit-barriers-63b9b1be9c1da100.yaml similarity index 100% rename from releasenotes/notes/overlap-circuit-barriers-63b9b1be9c1da100.yaml rename to releasenotes/notes/1.0/overlap-circuit-barriers-63b9b1be9c1da100.yaml diff --git a/releasenotes/notes/parameter-uuid-60dd46a739afabce.yaml b/releasenotes/notes/1.0/parameter-uuid-60dd46a739afabce.yaml similarity index 93% rename from releasenotes/notes/parameter-uuid-60dd46a739afabce.yaml rename to releasenotes/notes/1.0/parameter-uuid-60dd46a739afabce.yaml index f302c2499a43..bfea874f3199 100644 --- a/releasenotes/notes/parameter-uuid-60dd46a739afabce.yaml +++ b/releasenotes/notes/1.0/parameter-uuid-60dd46a739afabce.yaml @@ -1,5 +1,5 @@ --- -features: +features_circuits: - | A :attr:`~qiskit.circuit.Parameter.uuid` property was added to the :class:`qiskit.circuit.Parameter` class. In advanced use cases, diff --git a/releasenotes/notes/parameterexpression.numeric-958d365dadabfb81.yaml b/releasenotes/notes/1.0/parameterexpression.numeric-958d365dadabfb81.yaml similarity index 69% rename from releasenotes/notes/parameterexpression.numeric-958d365dadabfb81.yaml rename to releasenotes/notes/1.0/parameterexpression.numeric-958d365dadabfb81.yaml index babdf8325c37..7e6415a0e9b9 100644 --- a/releasenotes/notes/parameterexpression.numeric-958d365dadabfb81.yaml +++ b/releasenotes/notes/1.0/parameterexpression.numeric-958d365dadabfb81.yaml @@ -1,8 +1,8 @@ --- -features: +features_circuits: - | - A new method :meth:`.ParameterExpression.numeric` is added, which converts a fully bound - parameter expression into the most restrictive builtin Python numeric type that accurately + Added a new method, :meth:`.ParameterExpression.numeric`, which converts a fully bound + parameter expression into the most restrictive built-in Python numeric type that accurately describes the result of the symbolic evaluation. For example, a symbolic integer will become an :class:`int`, while a symbolic real number will become a :class:`float` and a complex number will become a :class:`complex`. This method includes several workarounds for peculiarities of diff --git a/releasenotes/notes/platform-support-f7f693aaf5dec044.yaml b/releasenotes/notes/1.0/platform-support-f7f693aaf5dec044.yaml similarity index 91% rename from releasenotes/notes/platform-support-f7f693aaf5dec044.yaml rename to releasenotes/notes/1.0/platform-support-f7f693aaf5dec044.yaml index ae4235d57065..e15bb711959b 100644 --- a/releasenotes/notes/platform-support-f7f693aaf5dec044.yaml +++ b/releasenotes/notes/1.0/platform-support-f7f693aaf5dec044.yaml @@ -9,13 +9,13 @@ upgrade: to debug an issue. Requiring ``symengine`` for all systems greatly decreases the complexity and optimizes Qiskit for higher performance. However, users on i686 Linux, 32 bit Windows, and s390x Linux (the platforms without - precompiled packages on PyPI) will need to build symengine from source. + precompiled packages on PyPI) will need to build Symengine from source. - | Support for 32 bit platforms, i686 Linux and 32 bit Windows, on Python < 3.10 has been downgraded from Tier 2 to Tier 3, as documented in the `platform support page `_. This is a consequence of making - ``symengine`` required for all users, as there is a lack of pre-compiled packages - available for these platforms, so users will need to build symengine from + ``symengine`` required for all users, as there is a lack of pre-compiled packages + available for these platforms, so users will need to build Symengine from source. - | For macOS users, the minimum version of macOS is now 10.12. Previously, the diff --git a/releasenotes/notes/1.0/prepare-1.0-e13b9b8273055775.yaml b/releasenotes/notes/1.0/prepare-1.0-e13b9b8273055775.yaml new file mode 100644 index 000000000000..602759f1c349 --- /dev/null +++ b/releasenotes/notes/1.0/prepare-1.0-e13b9b8273055775.yaml @@ -0,0 +1,79 @@ +--- +prelude: | + We are very pleased to release Qiskit 1.0.0. This release is the + culmination of 7 years of development to mature Qiskit into a stable, high- + performance SDK for quantum computing, and is the start of a new + era for the Qiskit project and community. Besides general performance and + stability improvements, the most significant changes with the 1.0.0 + release relate to the stability policy, release cycles, and versioning. + Qiskit is now formally using `semantic versioning `__, + and this means that, for the entire lifecycle of the 1.x release series, the project + is committed to maintaining backwards compatibility in its public documented + APIs. We're also now starting to offer bugfix support for major versions, so that you + continue to have a supported branch for 6 months after the release of the next major version. + This starts now with the 1.x and 0.x major series: the 0.46.x release will + continue to be supported, with periodic patch releases that contain bug fixes, for 6 + months after the release of 1.0. That is, 0.46.x will be supported until 2024-08. + You can see the full details of the new policy here: + + https://docs.quantum.ibm.com/start/install#qiskit-versioning + + Also of key importance in this release is the change in packaging. Since the + Qiskit 0.7 release in 2018-12, when Qiskit introduced its + `elements `__ + model, the ``qiskit`` package you would install has been a meta-package (or package of + packages) that installs the combined elements comprising Qiskit. As announced + in previous releases (for more details see the + `0.44.0 `__, + `0.45.3 `__, + and `0.46.0 `__ release + notes, along with this `blog post `__) + with the 1.0 release we're completing a transition to have a single ``qiskit`` package exposing + only the core SDK (what was previously ``qiskit-terra``). This means that for releases >= 1.0.0, + we have stopped using the ``qiskit-terra`` package and will only be publishing ``qiskit``. + As this change in packaging structure is not fully supported by the + Python package installer ``pip``, it is not possible to just use + ``pip install -U qiskit`` to upgrade + from qiskit 0.46.0 to 1.0.0. It is strongly recommended that to upgrade to + Qiskit 1.0.0 you create a separate virtual environment to isolate the installation. There is a + detailed migration guide that explains the packaging changes and how to install + Qiskit 1.0.0 in different scenarios which can be found here: + + https://qisk.it/1-0-packaging-migration + + As with all of our major releases, Qiskit 1.0.0 also has a plethora of new + features, the highlights for this release are: + + * The :class:`.QuantumCircuit` class's internal :attr:`~.QuantumCircuit.data` + structure has been rewritten in Rust to greatly improve the memory efficiency + of the :class:`.QuantumCircuit` objects by caching the arguments of the + instructions. + + * A new version of the primitives interface definition in :mod:`qiskit.primitives` + with the :class:`.BaseSamplerV2` and :class:`.BaseEstimatorV2` abstract + classes. This new version of the interface adds support for + performing vectorized calls to the primitive so that sweeps over + parameter value sets and observables can be efficiently specified. + + * A new experimental native OpenQASM 3 parser :func:`qiskit.qasm3.loads_experimental` + and :func:`qiskit.qasm3.load_experimental`. This new parser is still under development + and still has several limitations and is still experimental. However, + for where it is usable, the new parser is significantly faster and has + better diagnostic error message that allows to debug where an OpenQASM 3 program + is invalid. This new parser is written in Rust and based on a newly developed + Rust library for parsing OpenQASM3 which can be found here: + https://github.com/Qiskit/openqasm3_parser + + Finally, the Qiskit 1.0.0 release was an opportunity to clean up some technical debt + accumulated over the past 7 years of development. You'll notice that the Qiskit 1.0.0 + release is virtually free of ``DeprecationWarning``\s being emitted, and, at the same time, + the upgrade section of the 1.0.0 release notes is longer than usual. These are direct + consequences of the technical debt cleanup. To help with the migration + from 0.46.x to 1.0.0, besides the release notes, we have also published a + dedicated migration guide which can be found here: + + https://docs.quantum.ibm.com/api/migration-guides/qiskit-1.0-features + + This guide is meant to complement the release notes and have a targeted advice for how to + migrate the API changes after the removal of the deprecated functionality from the 0.46.0 + release. diff --git a/releasenotes/notes/preset-pass-manager-approximation-degree-503198b1974adf79.yaml b/releasenotes/notes/1.0/preset-pass-manager-approximation-degree-503198b1974adf79.yaml similarity index 96% rename from releasenotes/notes/preset-pass-manager-approximation-degree-503198b1974adf79.yaml rename to releasenotes/notes/1.0/preset-pass-manager-approximation-degree-503198b1974adf79.yaml index 01cf21e335f9..bceb609567e3 100644 --- a/releasenotes/notes/preset-pass-manager-approximation-degree-503198b1974adf79.yaml +++ b/releasenotes/notes/1.0/preset-pass-manager-approximation-degree-503198b1974adf79.yaml @@ -1,5 +1,5 @@ --- -upgrade: +upgrade_transpiler: - | The implicit use of ``approximation_degree!=1.0`` by default in the :func:`~.generate_preset_pass_manager` function has been diff --git a/releasenotes/notes/preset-passmanager-coupling-map-89e588e4260cb214.yaml b/releasenotes/notes/1.0/preset-passmanager-coupling-map-89e588e4260cb214.yaml similarity index 84% rename from releasenotes/notes/preset-passmanager-coupling-map-89e588e4260cb214.yaml rename to releasenotes/notes/1.0/preset-passmanager-coupling-map-89e588e4260cb214.yaml index 5830a57d2e2d..880257d95117 100644 --- a/releasenotes/notes/preset-passmanager-coupling-map-89e588e4260cb214.yaml +++ b/releasenotes/notes/1.0/preset-passmanager-coupling-map-89e588e4260cb214.yaml @@ -1,6 +1,6 @@ --- -features: +features_transpiler: - | - Enhanced the :func:`.generate_preset_pass_manager` function to allow users to + Enhanced the :func:`.generate_preset_pass_manager` function to allow users to provide a coupling map as a legacy-format list. Previously, users were required to provide a :class:`.CouplingMap` object. diff --git a/releasenotes/notes/primitives-v2-df871c0c6ac0b94a.yaml b/releasenotes/notes/1.0/primitives-v2-df871c0c6ac0b94a.yaml similarity index 98% rename from releasenotes/notes/primitives-v2-df871c0c6ac0b94a.yaml rename to releasenotes/notes/1.0/primitives-v2-df871c0c6ac0b94a.yaml index 7d76cb3f486c..f34e1b6a3234 100644 --- a/releasenotes/notes/primitives-v2-df871c0c6ac0b94a.yaml +++ b/releasenotes/notes/1.0/primitives-v2-df871c0c6ac0b94a.yaml @@ -1,5 +1,5 @@ --- -features: +features_primitives: - | Version 2 of the primitives is introduced via a new base class for both the sampler and the estimator, along with new types for their inputs and outputs. The emphasis of this new @@ -15,7 +15,7 @@ features: (e.g. bitstrings) from every shot, rather than providing a :class:`~.Counts`\-like return, and also to store data from separate :class:`~.ClassicalRegister`\s . This enables derived classes to implement sampler support for circuits with classical control flow. - + The primitive V2 base classes are: * :class:`.BaseSamplerV2` @@ -36,11 +36,11 @@ features: The reference implementation :class:`~.StatevectorEstimator` of :class:`~.BaseEstimatorV2` was added. As seen in the example below, this estimator (and all V2 estimators) supports providing arrays of observables and/or arrays of parameter value sets that are attached to particular - circuits. - + circuits. + Each tuple of ``(circuit, observables, parameter values, precision)``, called an estimator primitive unified bloc (PUB), produces its own array-based result. The - :meth:`~.EstimatorV2.run` method can be given many pubs at once. + :meth:`~.EstimatorV2.run` method can be given many pubs at once. .. code-block:: python @@ -100,15 +100,15 @@ features: for idx, pauli in enumerate(observables): plt.plot(result.data.evs[idx], label=pauli) plt.legend() - + - | The reference implementation :class:`~.StatevectorSampler` of :class:`~.BaseSamplerV2` was added. As seen in the example below, this sampler (and all V2 samplers) supports providing arrays of parameter value sets to bind against a single circuit. - + Each tuple of ``(circuit, parameter values, shots)``, called a sampler primitive unified bloc (PUB), produces its own array-based result. The :meth:`~.SamplerV2.run` - method can be given many pubs at once. + method can be given many pubs at once. .. code-block:: python @@ -174,4 +174,4 @@ features: # Or, convert into a list of bitstrings that preserve shot order. bitstrings = result.data.alpha.get_bitstrings(22) - print(bitstrings) \ No newline at end of file + print(bitstrings) diff --git a/releasenotes/notes/psutil-dependancy-removed-bf5366f516d92378.yaml b/releasenotes/notes/1.0/psutil-dependancy-removed-bf5366f516d92378.yaml similarity index 71% rename from releasenotes/notes/psutil-dependancy-removed-bf5366f516d92378.yaml rename to releasenotes/notes/1.0/psutil-dependancy-removed-bf5366f516d92378.yaml index 16b18020a430..1781157d3baf 100644 --- a/releasenotes/notes/psutil-dependancy-removed-bf5366f516d92378.yaml +++ b/releasenotes/notes/1.0/psutil-dependancy-removed-bf5366f516d92378.yaml @@ -8,7 +8,8 @@ upgrade: mean that the default number of processes used by :func:`.parallel_map` and functions that internally can use :func:`.parallel_map` such as :func:`.transpile` and :meth:`.PassManager.run` may use more or less parallel processes than in previous releases. If you'd like to adjust the - number of processes used you can use the ``QISKIT_NUM_PROCS`` environment variable or - ``num_processes`` field in a user configuration file (see the - `local configuration guide `__ + number of processes used you can use the new ``num_processes`` argument to those functions, or + the ``QISKIT_NUM_PROCS`` environment variable or ``num_processes`` field in a user configuration + file (see the `local configuration guide + `__ for more details) if you need to adjust the number of processes that Qiskit potentially uses. diff --git a/releasenotes/notes/qasm3-importer-0ba0691bcdeba72f.yaml b/releasenotes/notes/1.0/qasm3-importer-0ba0691bcdeba72f.yaml similarity index 99% rename from releasenotes/notes/qasm3-importer-0ba0691bcdeba72f.yaml rename to releasenotes/notes/1.0/qasm3-importer-0ba0691bcdeba72f.yaml index 5cb9ab2c8c03..01bcd9b16dc1 100644 --- a/releasenotes/notes/qasm3-importer-0ba0691bcdeba72f.yaml +++ b/releasenotes/notes/1.0/qasm3-importer-0ba0691bcdeba72f.yaml @@ -1,5 +1,5 @@ --- -features: +features_qasm: - | The :mod:`qiskit.qasm3` package now contains a built-in, Rust-based parser for reading OpenQASM 3 programs into :class:`.QuantumCircuit`\ s, found at :func:`qiskit.qasm3.load_experimental` and diff --git a/releasenotes/notes/qasm3-minor-version-2ae00ba8f72a1a53.yaml b/releasenotes/notes/1.0/qasm3-minor-version-2ae00ba8f72a1a53.yaml similarity index 81% rename from releasenotes/notes/qasm3-minor-version-2ae00ba8f72a1a53.yaml rename to releasenotes/notes/1.0/qasm3-minor-version-2ae00ba8f72a1a53.yaml index 138066932e0c..c622bde7ce78 100644 --- a/releasenotes/notes/qasm3-minor-version-2ae00ba8f72a1a53.yaml +++ b/releasenotes/notes/1.0/qasm3-minor-version-2ae00ba8f72a1a53.yaml @@ -3,4 +3,4 @@ fixes: - | The OpenQASM 3 exporters :func:`.qasm3.dump` and :func:`~.qasm3.dumps` will now correctly output files claiming to be version ``3.0`` rather than the unqualified ``3``, since the OpenQASM 3 - project has now standardised on versioning. + project has now standardized on versioning. diff --git a/releasenotes/notes/qasm3-stable-switch-61a10036d1587778.yaml b/releasenotes/notes/1.0/qasm3-stable-switch-61a10036d1587778.yaml similarity index 83% rename from releasenotes/notes/qasm3-stable-switch-61a10036d1587778.yaml rename to releasenotes/notes/1.0/qasm3-stable-switch-61a10036d1587778.yaml index 9cf90556390a..931406a70994 100644 --- a/releasenotes/notes/qasm3-stable-switch-61a10036d1587778.yaml +++ b/releasenotes/notes/1.0/qasm3-stable-switch-61a10036d1587778.yaml @@ -1,15 +1,15 @@ --- -features: +features_qasm: - | The OpenQASM 3 exporter (see :func:`~.qasm3.dump` and :func:`~.qasm3.dumps` functions in - :mod:`qiskit.qasm3`) now supports the stabilised syntax of the ``switch`` statement in OpenQASM 3 + :mod:`qiskit.qasm3`) now supports the stabilized syntax of the ``switch`` statement in OpenQASM 3 by default. The pre-certification syntax of the ``switch`` statement is still available by using the :attr:`.ExperimentalFeatures.SWITCH_CASE_V1` flag in the ``experimental`` argument of - the exporter. There is no feature flag required for the stabilised syntax, but if you are + the exporter. There is no feature flag required for the stabilized syntax, but if you are interfacing with other tooling that is not yet updated, you may need to pass the experimental flag. - The syntax of the stabilised form is slightly different with regards to terminating ``break`` + The syntax of the stabilized form is slightly different with regards to terminating ``break`` statements (no longer required nor permitted), and multiple cases are now combined into a single ``case`` line, rather than using C-style fall-through. For more detail, see `the OpenQASM 3 documentation on the switch-case construct diff --git a/releasenotes/notes/qft_lnn_synthesis-c917dc00c3a8cabc.yaml b/releasenotes/notes/1.0/qft_lnn_synthesis-c917dc00c3a8cabc.yaml similarity index 65% rename from releasenotes/notes/qft_lnn_synthesis-c917dc00c3a8cabc.yaml rename to releasenotes/notes/1.0/qft_lnn_synthesis-c917dc00c3a8cabc.yaml index e03e4fd086f9..b4f023b95e64 100644 --- a/releasenotes/notes/qft_lnn_synthesis-c917dc00c3a8cabc.yaml +++ b/releasenotes/notes/1.0/qft_lnn_synthesis-c917dc00c3a8cabc.yaml @@ -1,6 +1,6 @@ --- -features: +features_synthesis: - | Add a new synthesis method :func:`.synth_qft_line` of a QFT circuit - for linear nearest neighbor connectivity, which significantly reduces + for linear nearest-neighbor connectivity, which significantly reduces the number of SWAPs for large numbers of qubits compared to SABRE. diff --git a/releasenotes/notes/refactor-basicaer-to-basicprovider-e27aff9c8e81d26e.yaml b/releasenotes/notes/1.0/refactor-basicaer-to-basicprovider-e27aff9c8e81d26e.yaml similarity index 71% rename from releasenotes/notes/refactor-basicaer-to-basicprovider-e27aff9c8e81d26e.yaml rename to releasenotes/notes/1.0/refactor-basicaer-to-basicprovider-e27aff9c8e81d26e.yaml index 6c7643129473..cb1d8d4836c4 100644 --- a/releasenotes/notes/refactor-basicaer-to-basicprovider-e27aff9c8e81d26e.yaml +++ b/releasenotes/notes/1.0/refactor-basicaer-to-basicprovider-e27aff9c8e81d26e.yaml @@ -1,32 +1,42 @@ --- -upgrade: +upgrade_providers: - | The ``qiskit.providers.basicaer`` module, exposed as ``qiskit.BasicAer``, has been removed following it deprecation on the 0.46 release. Its functionality has been replaced by the :mod:`qiskit.quantum_info` module and the new :mod:`qiskit.providers.basic_provider` module. - + The migration from using ``qiskit.providers.basicaer`` (``qiskit.BasicAer``) - to :mod:`qiskit.providers.basic_provider` can be performed as follows:: - - Migrate from | Replace with - ------------------------------------------------------------------------------ - ``qiskit.BasicAer`` | # The new provider doesn't have a global instance, - | # imports should be from qiskit.providers.basic_provider - ``qiskit.providers.basicaer`` | :mod:`.basic_provider` - ``BasicAerProvider`` | :class:`.BasicProvider` - ``BasicAerJob`` | :class:`.BasicProviderJob` - ``QasmSimulatorPy`` | :class:`.BasicSimulator` - ``UnitarySimulatorPy`` | use :class:`~.quantum_info.Operator` - ``StatevectorSimulatorPy`` | use :class:`~.quantum_info.Statevector` + to :mod:`qiskit.providers.basic_provider` can be performed as follows: + + .. list-table:: BasicAer equivalences + :header-rows: 1 + + * - Migrate from + - Replace with + * - ``qiskit.BasicAer`` + - The new provider doesn't have a global instance, imports should be from ``qiskit.providers.basic_provider`` + * - ``qiskit.providers.basicaer`` + - :mod:`.basic_provider` + * - ``BasicAerProvider`` + - :class:`.BasicProvider` + * - ``BasicAerJob`` + - :class:`.BasicProviderJob` + * - ``QasmSimulatorPy`` + - :class:`.BasicSimulator` + * - ``UnitarySimulatorPy`` + - use :class:`~.quantum_info.Operator` + * - ``StatevectorSimulatorPy`` + - use :class:`~.quantum_info.Statevector` A notable difference is that the new provider is no longer exposed through a global instance (like ``BasicAer``), so it will not be valid to do ``from qiskit import BasicProvider``. Instead, the provider class must be imported from its submodule and instantiated manually:: from qiskit.providers.basic_provider import BasicProvider + provider = BasicProvider() - backend = provider.get_backend("sim_name") + backend = provider.get_backend("basic_simulator") The following examples show the migration paths of the three simulators in ``BasicAer``. @@ -37,7 +47,6 @@ upgrade: qc.h(0) qc.h(1) qc.cx(1,2) - qc.measure_all() # Former path from qiskit import BasicAer @@ -45,7 +54,6 @@ upgrade: statevector = backend.run(qc).result().get_statevector() # New path - qc.remove_final_measurements() # no measurements allowed from qiskit.quantum_info import Statevector statevector = Statevector(qc) @@ -56,7 +64,6 @@ upgrade: qc.h(0) qc.h(1) qc.cx(1,2) - qc.measure_all() # Former path from qiskit import BasicAer @@ -64,7 +71,6 @@ upgrade: result = backend.run(qc).result() # New path - qc.remove_final_measurements() # no measurements allowed from qiskit.quantum_info import Operator result = Operator(qc).data diff --git a/releasenotes/notes/remove-aer-hooks-1144714bbbdd0fe8.yaml b/releasenotes/notes/1.0/remove-aer-hooks-1144714bbbdd0fe8.yaml similarity index 75% rename from releasenotes/notes/remove-aer-hooks-1144714bbbdd0fe8.yaml rename to releasenotes/notes/1.0/remove-aer-hooks-1144714bbbdd0fe8.yaml index c500d013c2c6..821fe7d04719 100644 --- a/releasenotes/notes/remove-aer-hooks-1144714bbbdd0fe8.yaml +++ b/releasenotes/notes/1.0/remove-aer-hooks-1144714bbbdd0fe8.yaml @@ -1,13 +1,13 @@ --- -upgrade: +upgrade_misc: - | The object ``qiskit.Aer`` has been removed following its deprecation in Qiskit 0.46. You can - instead use ``qiskit_aer.Aer``, which is a drop-in replacement. + instead use :attr:`qiskit_aer.Aer`, which is a drop-in replacement. - | Importing from ``qiskit.providers.aer`` will no longer work, following its deprecation in Qiskit 0.46. You should instead import from ``qiskit_aer``, which is a drop-in replacement. - | Pulse jobs are no longer supported in fake backends, following the deprecation and removal - of the underlying simulation functionality in Qiskit Aer. For pulse-level simulation, outside + of the underlying simulation functionality in Aer. For pulse-level simulation, outside the context of circuit objects, consider using a special-purpose library such as `Qiskit Dynamics `__. diff --git a/releasenotes/notes/remove-algorithm-utils-707648b69af439dc.yaml b/releasenotes/notes/1.0/remove-algorithm-utils-707648b69af439dc.yaml similarity index 77% rename from releasenotes/notes/remove-algorithm-utils-707648b69af439dc.yaml rename to releasenotes/notes/1.0/remove-algorithm-utils-707648b69af439dc.yaml index 67c551dad70f..badf9e801e0a 100644 --- a/releasenotes/notes/remove-algorithm-utils-707648b69af439dc.yaml +++ b/releasenotes/notes/1.0/remove-algorithm-utils-707648b69af439dc.yaml @@ -1,5 +1,5 @@ --- -upgrade: +upgrade_algorithms: - | The following tools in :mod:`qiskit.utils` have been removed from the codebase: @@ -19,9 +19,7 @@ upgrade: * ``algorithm_globals`` These were deprecated in Qiskit 0.45 as a consequence of the migration - of ``qiskit.algorithms`` to a standalone - `package `_, where - these utils have also been migrated. They can be found in the new package + of ``qiskit.algorithms`` to `a standalone package + `_, where + these utilities have also been migrated. They can be found in the new package under ``qiskit_algorithms.utils``. - - diff --git a/releasenotes/notes/remove-bind-parameters-13da38072c28a881.yaml b/releasenotes/notes/1.0/remove-bind-parameters-13da38072c28a881.yaml similarity index 94% rename from releasenotes/notes/remove-bind-parameters-13da38072c28a881.yaml rename to releasenotes/notes/1.0/remove-bind-parameters-13da38072c28a881.yaml index 7e2552d8c0df..de0050d01280 100644 --- a/releasenotes/notes/remove-bind-parameters-13da38072c28a881.yaml +++ b/releasenotes/notes/1.0/remove-bind-parameters-13da38072c28a881.yaml @@ -1,5 +1,5 @@ --- -upgrade: +upgrade_circuits: - | The method ``QuantumCircuit.bind_parameters`` has been removed, following its deprecation in Qiskit 0.45. You can use :meth:`.QuantumCircuit.assign_parameters` as a drop-in replacement diff --git a/releasenotes/notes/remove-cfun-toplevel-5d0d58bed83d57ed.yaml b/releasenotes/notes/1.0/remove-cfun-toplevel-5d0d58bed83d57ed.yaml similarity index 94% rename from releasenotes/notes/remove-cfun-toplevel-5d0d58bed83d57ed.yaml rename to releasenotes/notes/1.0/remove-cfun-toplevel-5d0d58bed83d57ed.yaml index 52013163fe80..73fe85d6c0cd 100644 --- a/releasenotes/notes/remove-cfun-toplevel-5d0d58bed83d57ed.yaml +++ b/releasenotes/notes/1.0/remove-cfun-toplevel-5d0d58bed83d57ed.yaml @@ -1,5 +1,5 @@ --- -upgrade: +upgrade_circuits: - | Importing :class:`.Int1`, :class:`.Int2`, :class:`.BooleanFunction`, :func:`.classical_function` from :mod:`qiskit.circuit` is now disabled. Instead, import the objects from the diff --git a/releasenotes/notes/remove-configfake-c009f3d28b4fa12b.yaml b/releasenotes/notes/1.0/remove-configfake-c009f3d28b4fa12b.yaml similarity index 88% rename from releasenotes/notes/remove-configfake-c009f3d28b4fa12b.yaml rename to releasenotes/notes/1.0/remove-configfake-c009f3d28b4fa12b.yaml index cdcc93d63485..26df260da61e 100644 --- a/releasenotes/notes/remove-configfake-c009f3d28b4fa12b.yaml +++ b/releasenotes/notes/1.0/remove-configfake-c009f3d28b4fa12b.yaml @@ -1,5 +1,5 @@ --- -upgrade: +upgrade_providers: - | Removed the ``ConfigurableFakeBackend`` class deprecated in Qiskit 0.46.0. Instead, a suitable :class:`.FakeBackend` can be used. diff --git a/releasenotes/notes/remove-dag-none-be220777dc246803.yaml b/releasenotes/notes/1.0/remove-dag-none-be220777dc246803.yaml similarity index 93% rename from releasenotes/notes/remove-dag-none-be220777dc246803.yaml rename to releasenotes/notes/1.0/remove-dag-none-be220777dc246803.yaml index 44fbd7d134ee..3a1be19f8219 100644 --- a/releasenotes/notes/remove-dag-none-be220777dc246803.yaml +++ b/releasenotes/notes/1.0/remove-dag-none-be220777dc246803.yaml @@ -1,5 +1,5 @@ --- -upgrade: +upgrade_transpiler: - | It is no longer allowable to pass ``None`` as the ``qargs`` or ``cargs`` parameters in :meth:`.DAGCircuit.apply_operation_back` and :meth:`~.DAGCircuit.apply_operation_front`. If you diff --git a/releasenotes/notes/remove-deprecated-funcs-in-qobj-converter-402408e84b3043bb.yaml b/releasenotes/notes/1.0/remove-deprecated-funcs-in-qobj-converter-402408e84b3043bb.yaml similarity index 93% rename from releasenotes/notes/remove-deprecated-funcs-in-qobj-converter-402408e84b3043bb.yaml rename to releasenotes/notes/1.0/remove-deprecated-funcs-in-qobj-converter-402408e84b3043bb.yaml index b54c36ac950e..8c310f5733c5 100644 --- a/releasenotes/notes/remove-deprecated-funcs-in-qobj-converter-402408e84b3043bb.yaml +++ b/releasenotes/notes/1.0/remove-deprecated-funcs-in-qobj-converter-402408e84b3043bb.yaml @@ -1,5 +1,5 @@ --- -upgrade: +upgrade_pulse: - | Removed deprecated methods in :class:`.InstructionToQobjConverter` and :class:`.QobjToInstructionConverter`. This includes @@ -24,4 +24,4 @@ upgrade: * :meth:`.QobjToInstructionConverter.convert_snapshot` These public methods are all replaced with protected ones which are implicitly called from - the single entry point, i.e. call dunder method of the classes. + the single entry point, i.e. calling the class as like a function. diff --git a/releasenotes/notes/1.0/remove-deprecated-parametric-pulses-class-667e4b970e1163b3.yaml b/releasenotes/notes/1.0/remove-deprecated-parametric-pulses-class-667e4b970e1163b3.yaml new file mode 100644 index 000000000000..9a01f5177b18 --- /dev/null +++ b/releasenotes/notes/1.0/remove-deprecated-parametric-pulses-class-667e4b970e1163b3.yaml @@ -0,0 +1,6 @@ +--- +upgrade_pulse: + - | + The class ``qiskit.pulse.library.ParametricPulse`` and all subclasses are removed. + These were deprecated since Qiskit 0.39 (with qiskit-terra 0.22), released in 2022-10. + Instead, use :class:`.SymbolicPulse` and check its documentation for details. diff --git a/releasenotes/notes/1.0/remove-deprecated-quantumcircuit-a8c69a8e0b480e17.yaml b/releasenotes/notes/1.0/remove-deprecated-quantumcircuit-a8c69a8e0b480e17.yaml new file mode 100644 index 000000000000..ff6da8384290 --- /dev/null +++ b/releasenotes/notes/1.0/remove-deprecated-quantumcircuit-a8c69a8e0b480e17.yaml @@ -0,0 +1,6 @@ +--- +upgrade_circuits: + - | + The ``header`` and ``extension_lib`` data-only attributes from :class:`.QuantumCircuit` are + removed following their deprecation in Qiskit 0.45. These were internal details of the OpenQASM + 2 exporter which are no longer used. diff --git a/releasenotes/notes/remove-deprecated-unroller-4693330708c681e0.yaml b/releasenotes/notes/1.0/remove-deprecated-unroller-4693330708c681e0.yaml similarity index 67% rename from releasenotes/notes/remove-deprecated-unroller-4693330708c681e0.yaml rename to releasenotes/notes/1.0/remove-deprecated-unroller-4693330708c681e0.yaml index fbb25bb27f98..a67ccd74cb37 100644 --- a/releasenotes/notes/remove-deprecated-unroller-4693330708c681e0.yaml +++ b/releasenotes/notes/1.0/remove-deprecated-unroller-4693330708c681e0.yaml @@ -1,16 +1,16 @@ --- -upgrade: +upgrade_transpiler: - | - Removes the deprecated ``Unroller`` class in :mod:`qiskit.transpiler.passes.basis`. - This class was deprecated in Qiskit Terra 0.45 and has been replaced by + Removed the deprecated ``Unroller`` class in :mod:`qiskit.transpiler.passes.basis`. + This class was deprecated in Qiskit 0.45 and use of it can be replaced by the combination usage of :class:`.BasisTranslator` and :class:`.UnrollCustomDefinitions`. - Note that :class:`.BasisTranslator` and :class:`.UnrollCustomDefinitions` take different - arguments than ``Unroller``, as they requires a `EquivalenceLibrary` object to be passed in. + Note that :class:`.BasisTranslator` and :class:`.UnrollCustomDefinitions` take different + arguments than ``Unroller``, as they requires a ``EquivalenceLibrary`` object to be passed in. Where previously ``Unroller(basis_gates)`` could be used, you can now use:: - + from qiskit.circuit.library.standard_gates.equivalence_library import ( StandardEquivalenceLibrary as std_eqlib, ) @@ -19,4 +19,3 @@ upgrade: BasisTranslator(std_eqlib, basis_gates), ]) translated = pm.run(circuit) - \ No newline at end of file diff --git a/releasenotes/notes/1.0/remove-deprecated-visualization-pulse-8adf40ff1a69df63.yaml b/releasenotes/notes/1.0/remove-deprecated-visualization-pulse-8adf40ff1a69df63.yaml new file mode 100644 index 000000000000..d020d5669f2e --- /dev/null +++ b/releasenotes/notes/1.0/remove-deprecated-visualization-pulse-8adf40ff1a69df63.yaml @@ -0,0 +1,15 @@ +--- +upgrade_visualization: + - | + The following classes and methods in :mod:`qiskit.visualization.pulse` have been removed follow + their deprecation in Qiskit 0.40.0: + + * ``SchedStyle`` + * ``PulseStyle`` + * ``matplotlib.EventsOutputChannels`` + * ``matplotlib.WaveformDrawer`` + * ``matplotlib.ScheduleDrawer`` + * ``interpolation.interp1d`` + * ``interpolation.step_wise`` + + Use the new interface :func:`qiskit.visualization.pulse_drawer` for pulse visualization. diff --git a/releasenotes/notes/remove-discrete-pulse-library-d7aa098a528161df.yaml b/releasenotes/notes/1.0/remove-discrete-pulse-library-d7aa098a528161df.yaml similarity index 95% rename from releasenotes/notes/remove-discrete-pulse-library-d7aa098a528161df.yaml rename to releasenotes/notes/1.0/remove-discrete-pulse-library-d7aa098a528161df.yaml index fd18ee185c11..e8d1e97b9613 100644 --- a/releasenotes/notes/remove-discrete-pulse-library-d7aa098a528161df.yaml +++ b/releasenotes/notes/1.0/remove-discrete-pulse-library-d7aa098a528161df.yaml @@ -1,5 +1,5 @@ --- -upgrade: +upgrade_pulse: - | The discrete pulse library (previously located at ``qiskit.pulse.library.discrete``) was removed, following its deprecation in Qiskit 0.46. diff --git a/releasenotes/notes/remove-execute-699e9aca1662c174.yaml b/releasenotes/notes/1.0/remove-execute-699e9aca1662c174.yaml similarity index 82% rename from releasenotes/notes/remove-execute-699e9aca1662c174.yaml rename to releasenotes/notes/1.0/remove-execute-699e9aca1662c174.yaml index 30b390c34bc7..2dbc68905814 100644 --- a/releasenotes/notes/remove-execute-699e9aca1662c174.yaml +++ b/releasenotes/notes/1.0/remove-execute-699e9aca1662c174.yaml @@ -1,11 +1,10 @@ --- -upgrade: +upgrade_misc: - | Qiskit's :func:`~.execute_function.execute` function is removed. This function served as a high-level wrapper around transpiling a circuit with some transpile options and running it on a backend - with some run options. If you needed this functionality, consider staying in the 0.* - edition until transition is possible for you. To do the same thing, you can explicitly + with some run options. To do the same thing, you can explicitly use the :func:`~.transpile` function (with appropriate transpile options) followed by ``backend.run()`` (with appropriate run options). @@ -23,7 +22,7 @@ upgrade: Alternatively, the ``Sampler`` primitive is semantically equivalent to the deprecated :func:`~.execute_function.execute` function. The class :class:`.BackendSampler` is a generic wrapper for backends that do not support - primitives: + primitives:: from qiskit.primitives import BackendSampler sampler = BackendSampler(backend) diff --git a/releasenotes/notes/1.0/remove-extensions-ce520ba419c93c58.yaml b/releasenotes/notes/1.0/remove-extensions-ce520ba419c93c58.yaml new file mode 100644 index 000000000000..3a0c2ec9e720 --- /dev/null +++ b/releasenotes/notes/1.0/remove-extensions-ce520ba419c93c58.yaml @@ -0,0 +1,47 @@ +--- +upgrade_circuits: + - | + Removed the ``qiskit.extensions`` module, which has been pending deprecation since the 0.45 release + and has been fully deprecated in the 0.46 release. + The following operations from this module are available in :mod:`qiskit.circuit.library`: + + * :class:`~.library.DiagonalGate`, + * :class:`~.library.HamiltonianGateGate`, + * :class:`~.library.Initialize`, + * :class:`~.library.Isometry`, + * :class:`~.library.generalized_gates.mcg_up_diag.MCGupDiag`, + * :class:`~.library.UCGate`, + * :class:`~.library.UCPauliRotGate`, + * :class:`~.library.UCRXGate`, + * :class:`~.library.UCRYGate`, + * :class:`~.library.UCRZGate`, + * :class:`~.library.UnitaryGate`. + + The following objects have been removed: + + * ``SingleQubitUnitary`` (instead use :class:`.library.UnitaryGate`), + * ``Snapshot`` (superseded by Aer's save instructions), + * ``ExtensionError``, + + along with the following circuit methods: + + * ``QuantumCircuit.snapshot``, + * ``QuantumCircuit.squ``, + * ``QuantumCircuit.diagonal``, + * ``QuantumCircuit.hamiltonian``, + * ``QuantumCircuit.isometry`` and ``QuantumCircuit.iso``, + * ``QuantumCircuit.uc``, + * ``QuantumCircuit.ucrx``, + * ``QuantumCircuit.ucry``, + * ``QuantumCircuit.ucrz``. + + These operations can still be performed by appending the appropriate + instruction to a quantum circuit. + - | + Removed deprecated, duplicated :class:`.QuantumCircuit` methods. These include: + + * ``QuantumCircuit.cnot``, instead use :meth:`.QuantumCircuit.cx`, + * ``QuantumCircuit.toffoli``, instead use :meth:`.QuantumCircuit.ccx`, + * ``QuantumCircuit.fredkin``, instead use :meth:`.QuantumCircuit.cswap`, + * ``QuantumCircuit.mct``, instead use :meth:`.QuantumCircuit.mcx`, + * ``QuantumCircuit.i``, instead use :meth:`.QuantumCircuit.id`. diff --git a/releasenotes/notes/remove-fake-provider-and-backends-2fcf5256c772935f.yaml b/releasenotes/notes/1.0/remove-fake-provider-and-backends-2fcf5256c772935f.yaml similarity index 93% rename from releasenotes/notes/remove-fake-provider-and-backends-2fcf5256c772935f.yaml rename to releasenotes/notes/1.0/remove-fake-provider-and-backends-2fcf5256c772935f.yaml index 2b6b303b53c5..1a02f368c178 100644 --- a/releasenotes/notes/remove-fake-provider-and-backends-2fcf5256c772935f.yaml +++ b/releasenotes/notes/1.0/remove-fake-provider-and-backends-2fcf5256c772935f.yaml @@ -1,7 +1,7 @@ --- -deprecations: +upgrade_providers: - | - The :mod:`qiskit.providers.fake_provider` module has been migrated to + The deprecated :mod:`qiskit.providers.fake_provider` module has been migrated to the ``qiskit-ibm-runtime`` Python package. For this reason, the following elements in the :mod:`qiskit.providers.fake_provider` have been removed following their deprecation in Qiskit 0.46: @@ -10,8 +10,7 @@ deprecations: * ``qiskit.providers.fake_provider.FakeProviderForBackendV2`` * ``qiskit.providers.fake_provider.FakeProviderFactory`` * ``qiskit.providers.fake_provider.fake_backends.FakeBackendV2`` - * any fake backend contained in ``qiskit.providers.fake_provider.backends`` - (accessible through the provider) + * any fake backend contained in ``qiskit.providers.fake_provider.backends`` (accessible through the provider) * ``qiskit.providers.fake_provider.FakeQasmSimulator`` * ``qiskit.providers.fake_provider.FakeJob`` * ``qiskit.providers.fake_provider.FakeQobj`` diff --git a/releasenotes/notes/remove-ibmq-4bb57a04991da9af.yaml b/releasenotes/notes/1.0/remove-ibmq-4bb57a04991da9af.yaml similarity index 79% rename from releasenotes/notes/remove-ibmq-4bb57a04991da9af.yaml rename to releasenotes/notes/1.0/remove-ibmq-4bb57a04991da9af.yaml index 831b55ea9fdf..7faa67f8c6df 100644 --- a/releasenotes/notes/remove-ibmq-4bb57a04991da9af.yaml +++ b/releasenotes/notes/1.0/remove-ibmq-4bb57a04991da9af.yaml @@ -1,24 +1,24 @@ --- -upgrade: +upgrade_misc: - | - The deprecated ``qiskit.IBMQ`` object hase been removed. This alias object - was marked as deprecated in the 0.23.0 release. This alias object lazily + The deprecated ``qiskit.IBMQ`` object has been removed. This alias object + was marked as deprecated in the Qiskit 0.40.0 release. This alias object lazily redirected attribute access to ``qiskit.providers.ibmq.IBMQ``. As the ``qiskit-ibmq-provider`` package has now been retired and superseded by - ``qiskit-ibm-provider`` package which maintains its own namespace + ``qiskit-ibm-provider`` package which maintains its own namespace, maintaining this alias is no longer relevant. If you were relying on the ``qiskit.IBMQ`` alias you should migrate your usage to the ``qiskit-ibm-provider`` package, see the - `migration guide `__ + `migration guide `__ for more details. - | Removed the deprecated module ``qiskit.tools.jupyter`` which previously - included jupyter magics and widgets for interactively visualizing some data + included Jupyter magics and widgets for interactively visualizing some data from Qiskit. This module was deprecated in Qiskit 0.46.0. Most of this functionality was directly tied to the legacy ``qiskit-ibmq-provider`` package and was no longer valid so the module was removed. Similar functionality is available from the ``qiskit_ibm_provider.jupyter`` module - in the `qiskit-ibm-provider __` package. + in the `qiskit-ibm-provider `_ package. - | Removed the deprecated module ``qiskit.tools.monitor`` which previously included tools for tracking :class:`.JobV1` job instances, primarily from diff --git a/releasenotes/notes/remove-legacy-qasm2-parser-53ad3f1817fd68cc.yaml b/releasenotes/notes/1.0/remove-legacy-qasm2-parser-53ad3f1817fd68cc.yaml similarity index 83% rename from releasenotes/notes/remove-legacy-qasm2-parser-53ad3f1817fd68cc.yaml rename to releasenotes/notes/1.0/remove-legacy-qasm2-parser-53ad3f1817fd68cc.yaml index d3a581761060..2600ad0b659e 100644 --- a/releasenotes/notes/remove-legacy-qasm2-parser-53ad3f1817fd68cc.yaml +++ b/releasenotes/notes/1.0/remove-legacy-qasm2-parser-53ad3f1817fd68cc.yaml @@ -1,34 +1,36 @@ --- -upgrade: +upgrade_qasm: - | The legacy OpenQASM 2 parser module previously present in ``qiskit.qasm`` has been removed. It was marked as deprecated in Qiskit 0.46.0 release. The OpenQASM 2 parser has been superseded by the :mod:`qiskit.qasm2` module which - provides a faster more correct parser for QASM2. + provides a faster and more correct parser for QASM2. - | The ``qiskit.converters.ast_to_dag`` function has been removed. It previously was used to convert the abstract syntax tree generated by the legacy OpenQASM 2 parser (in the ``qiskit.qasm`` module which no longer exists) and convert that directly to a :class:`.DAGCircuit`. This function was marked as deprecated in the Qiskit 0.46.0 release. As the legacy - OpenQASM 2 parser has been removed this function no longer serves a purpose. + OpenQASM 2 parser has been removed, this function no longer serves a purpose. If you were previously using this, you can instead parse your OpenQASM 2 files into a :class:`.QuantumCircuit` using the :meth:`.QuantumCircuit.from_qasm_file` or :meth:`.QuantumCircuit.from_qasm_str` constructor methods and then converting that :class:`.QuantumCircuit` into a :class:`.DAGCircuit` with :func:`.circuit_to_dag`. +upgrade_circuits: - | Removed the ``QuantumCircuit.qasm()`` method to generate a OpenQASM 2 representation of the :class:`.QuantumCircuit` object. Instead the :func:`.qasm2.dump` or :func:`.qasm2.dumps` functions should be used. This function was marked as deprecated in the 0.46.0 release. If you were using - the ``QuantumCircuit.qasm()`` method to generate pygments formatted output + the ``QuantumCircuit.qasm()`` method to generate pygments-formatted output you should instead look at the standalone ``openqasm-pygments`` package to provide this functionality. +upgrade_misc: - | Removed the ``qiskit.tools.jupyter.library.qasm_widget`` function which - was used to visualize qasm strings in a jupyter notebook. This function + was used to visualize OpenQASM 2 strings in a Jupyter notebook. This function was marked as deprecated as part of the Qiskit 0.44.0 release. The function was originally used for building documentation but hasn't been used in some time and has been removed from Qiskit. diff --git a/releasenotes/notes/remove-namespace-hooks-995bdb7515a9fe35.yaml b/releasenotes/notes/1.0/remove-namespace-hooks-995bdb7515a9fe35.yaml similarity index 98% rename from releasenotes/notes/remove-namespace-hooks-995bdb7515a9fe35.yaml rename to releasenotes/notes/1.0/remove-namespace-hooks-995bdb7515a9fe35.yaml index df8601ba031c..b4311218b6fa 100644 --- a/releasenotes/notes/remove-namespace-hooks-995bdb7515a9fe35.yaml +++ b/releasenotes/notes/1.0/remove-namespace-hooks-995bdb7515a9fe35.yaml @@ -1,5 +1,5 @@ --- -upgrade: +upgrade_misc: - | Support for extensions of the ``qiskit`` and ``qiskit.providers`` namespaces by external packages has been removed. Support for doing this was deprecated diff --git a/releasenotes/notes/remove-old-noise-passes-7e157023a04f5f16.yaml b/releasenotes/notes/1.0/remove-old-noise-passes-7e157023a04f5f16.yaml similarity index 96% rename from releasenotes/notes/remove-old-noise-passes-7e157023a04f5f16.yaml rename to releasenotes/notes/1.0/remove-old-noise-passes-7e157023a04f5f16.yaml index c5b159cb241e..e3db16182dbb 100644 --- a/releasenotes/notes/remove-old-noise-passes-7e157023a04f5f16.yaml +++ b/releasenotes/notes/1.0/remove-old-noise-passes-7e157023a04f5f16.yaml @@ -1,5 +1,5 @@ --- -upgrade: +upgrade_transpiler: - | The deprecated ``NoiseAdaptiveLayout`` transpiler pass has been removed. It was marked as deprecated in Qiskit 0.46.0. This pass has been largely @@ -12,6 +12,6 @@ upgrade: It was marked as deprecated in Qiskit 0.46.0. This pass was not usable any longer because its internal operation was dependent on custom properties being set in the :class:`.BackendProperties` payload of a - :class:`.BackendV1` instance. As no backends are setting these fields + :class:`.BackendV1` instance. As no backends are setting these fields, the pass was removed. If you depend on the pass for a custom workflow you can use the version in Qiskit 0.46.x. diff --git a/releasenotes/notes/remove-opflow-qi-utils-3debd943c65b17da.yaml b/releasenotes/notes/1.0/remove-opflow-qi-utils-3debd943c65b17da.yaml similarity index 84% rename from releasenotes/notes/remove-opflow-qi-utils-3debd943c65b17da.yaml rename to releasenotes/notes/1.0/remove-opflow-qi-utils-3debd943c65b17da.yaml index 8157db5a5e46..62626e809957 100644 --- a/releasenotes/notes/remove-opflow-qi-utils-3debd943c65b17da.yaml +++ b/releasenotes/notes/1.0/remove-opflow-qi-utils-3debd943c65b17da.yaml @@ -1,5 +1,5 @@ --- -upgrade: +upgrade_algorithms: - | The ``qiskit.opflow`` module has been removed, following its deprecation in Qiskit 0.44. For more context on the deprecation and @@ -8,7 +8,7 @@ upgrade: - | - A series of legacy quantum execution utils have been removed, following their deprecation in Qiskit 0.44. + A series of legacy quantum execution utililties have been removed, following their deprecation in Qiskit 0.44. These include the ``qiskit.utils.QuantumInstance`` class, as well the modules: - ``qiskit.utils.backend_utils`` diff --git a/releasenotes/notes/remove-pulse-scoped-parameters-fa897399900f2ef2.yaml b/releasenotes/notes/1.0/remove-pulse-scoped-parameters-fa897399900f2ef2.yaml similarity index 100% rename from releasenotes/notes/remove-pulse-scoped-parameters-fa897399900f2ef2.yaml rename to releasenotes/notes/1.0/remove-pulse-scoped-parameters-fa897399900f2ef2.yaml diff --git a/releasenotes/notes/remove-qiskit-algorithms-a43541fe24b72208.yaml b/releasenotes/notes/1.0/remove-qiskit-algorithms-a43541fe24b72208.yaml similarity index 87% rename from releasenotes/notes/remove-qiskit-algorithms-a43541fe24b72208.yaml rename to releasenotes/notes/1.0/remove-qiskit-algorithms-a43541fe24b72208.yaml index 51112c0d064a..b5713437fae7 100644 --- a/releasenotes/notes/remove-qiskit-algorithms-a43541fe24b72208.yaml +++ b/releasenotes/notes/1.0/remove-qiskit-algorithms-a43541fe24b72208.yaml @@ -3,7 +3,7 @@ upgrade: - | The ``qiskit.algorithms`` module has been removed, following its deprecation in Qiskit 0.44. The primitive-based algorithms from this module have been migrated to a standalone library (``qiskit_algorithms``) - and can be found on PyPi or `GitHub `_. + and can be found on PyPI or `GitHub `_. The decision to migrate the algorithms module to a separate package was made to clarify the purpose Qiskit and make a distinction between the tools and libraries built on top of it. diff --git a/releasenotes/notes/remove-qiskit-test-8f3f43ed2a185f2f.yaml b/releasenotes/notes/1.0/remove-qiskit-test-8f3f43ed2a185f2f.yaml similarity index 95% rename from releasenotes/notes/remove-qiskit-test-8f3f43ed2a185f2f.yaml rename to releasenotes/notes/1.0/remove-qiskit-test-8f3f43ed2a185f2f.yaml index 82f83c61ae91..0937c04a9246 100644 --- a/releasenotes/notes/remove-qiskit-test-8f3f43ed2a185f2f.yaml +++ b/releasenotes/notes/1.0/remove-qiskit-test-8f3f43ed2a185f2f.yaml @@ -1,5 +1,5 @@ --- -upgrade: +upgrade_misc: - | The ``qiskit.test`` module is no longer a public module. This was never intended to be public, nor used outside of Qiskit's own test suite. All functionality was specific to Qiskit and no diff --git a/releasenotes/notes/remove-tools-2d13fc5ec1f45336.yaml b/releasenotes/notes/1.0/remove-tools-2d13fc5ec1f45336.yaml similarity index 98% rename from releasenotes/notes/remove-tools-2d13fc5ec1f45336.yaml rename to releasenotes/notes/1.0/remove-tools-2d13fc5ec1f45336.yaml index d5e2e611a576..66eee285ffdf 100644 --- a/releasenotes/notes/remove-tools-2d13fc5ec1f45336.yaml +++ b/releasenotes/notes/1.0/remove-tools-2d13fc5ec1f45336.yaml @@ -1,5 +1,5 @@ --- -upgrade: +upgrade_misc: - | The deprecated ``qiskit.tools.visualization`` module has removed. This module was deprecated in the Qiskit 0.46.0 release. This module was a legacy redirect diff --git a/releasenotes/notes/remove-transpiler-synthesis-3efbd076905ed141.yaml b/releasenotes/notes/1.0/remove-transpiler-synthesis-3efbd076905ed141.yaml similarity index 97% rename from releasenotes/notes/remove-transpiler-synthesis-3efbd076905ed141.yaml rename to releasenotes/notes/1.0/remove-transpiler-synthesis-3efbd076905ed141.yaml index 5161be3756d6..ddec0e87a290 100644 --- a/releasenotes/notes/remove-transpiler-synthesis-3efbd076905ed141.yaml +++ b/releasenotes/notes/1.0/remove-transpiler-synthesis-3efbd076905ed141.yaml @@ -1,5 +1,5 @@ --- -upgrade: +upgrade_transpiler: - | Removed the ``qiskit.transpiler.synthesis`` module, which has been deprecated since the 0.46 release. The following objects have been moved: diff --git a/releasenotes/notes/1.0/remove-visualization-code-deprecated-in-0.22-7bc99235f5912424.yaml b/releasenotes/notes/1.0/remove-visualization-code-deprecated-in-0.22-7bc99235f5912424.yaml new file mode 100644 index 000000000000..d35bc9019654 --- /dev/null +++ b/releasenotes/notes/1.0/remove-visualization-code-deprecated-in-0.22-7bc99235f5912424.yaml @@ -0,0 +1,10 @@ +upgrade_visualization: + - | + The deprecated support for passing a :class:`.QuasiDistribution`, + :class:`.ProbDistribution`, or a distribution dictionary to the ``data`` + argument of the :func:`.plot_histogram` visualization has been removed. + This functionality was marked as deprecated in the Qiskit 0.39.0 release + (2022-10). Instead if you would like to plot a histogram from a + :class:`.QuasiDistribution`, :class:`.ProbDistribution`, or a distribution + dictionary you should use the :func:`.plot_distribution` function + instead. diff --git a/releasenotes/notes/1.0/remove_deprecated_legacy_pulse_builder_commands-61b85da62d82fb8c.yaml b/releasenotes/notes/1.0/remove_deprecated_legacy_pulse_builder_commands-61b85da62d82fb8c.yaml new file mode 100644 index 000000000000..176a043d12b0 --- /dev/null +++ b/releasenotes/notes/1.0/remove_deprecated_legacy_pulse_builder_commands-61b85da62d82fb8c.yaml @@ -0,0 +1,47 @@ +--- +upgrade: + - | + Removed logic for injecting :class:`.QuantumCircuit` and :class:`.Gate` operations into the + pulse context (such as in :func:`.pulse.builder.call`), which was legacy behavior deprecated in + Qiskit 0.46. Pulse schedules should be built up as a full schedule context; circuits and gates + are a higher level of abstraction. + + This includes the removal of the related functions: + + * ``pulse.builder.call_gate`` + * ``pulse.builder.cx`` + * ``pulse.builder.u1`` + * ``pulse.builder.u2`` + * ``pulse.builder.u3`` + * ``pulse.builder.x`` + * ``pulse.builder.active_transpiler_settings`` + * ``pulse.builder.active_circuit_scheduler_settings`` + * ``pulse.builder.transpiler_settings`` + * ``pulse.builder.circuit_scheduler_settings`` + + The ``default_transpiler_settings`` and ``default_circuit_scheduler_settings`` arguments + to :func:`.pulse.builder.build` are similarly removed. + + .. code-block:: python + + from qiskit import transpile, schedule, QuantumCircuit, pulse + from qiskit.providers.fake_provider import Fake7QPulseV1 + + backend = Fake7QPulseV1() + + # Create a schedule from a hardware-based circuit. + qc = QuantumCircuit(2) + qc.cx(0, 1) + qc = transpile(qc, backend) + sched = schedule(qc, backend) + + # These pulse schedules can still be called in builder contexts. + with pulse.build(backend) as qc_sched: + pulse.call(sched) + + # Schedules for certain operations can also be directly retrieved + # from BackendV1 instances: + sched = backend.defaults().instruction_schedule_map.get('x', (0,)) + + # ... and from BackendV2 instances: + sched = backend.target['x'][(0,)].calibration diff --git a/releasenotes/notes/remove_qinfo_synthesis-1917c7ccfcc62180.yaml b/releasenotes/notes/1.0/remove_qinfo_synthesis-1917c7ccfcc62180.yaml similarity index 58% rename from releasenotes/notes/remove_qinfo_synthesis-1917c7ccfcc62180.yaml rename to releasenotes/notes/1.0/remove_qinfo_synthesis-1917c7ccfcc62180.yaml index 30d0a64760f7..a34ec7d7073f 100644 --- a/releasenotes/notes/remove_qinfo_synthesis-1917c7ccfcc62180.yaml +++ b/releasenotes/notes/1.0/remove_qinfo_synthesis-1917c7ccfcc62180.yaml @@ -1,10 +1,12 @@ --- -features: +features_synthesis: - | - A new class, :class:`~.TwoQubitWeylDecomposition`, has been added to :mod:`qiskit.synthesis`. - This class allows to apply the Weyl decomposition of two-qubit unitaries. + The class :class:`~.TwoQubitWeylDecomposition` has been added to the public API in + :mod:`qiskit.synthesis`. This class allows to apply the Weyl decomposition of two-qubit + unitaries. If you were previously importing this while it was a non-public class in the + now-removed ``qiskit.quantum_info.synthesis`` module, you should update your import paths. -upgrade: +upgrade_quantum_info: - | Removed the ``qiskit.quantum_info.synthesis`` module, which has been deprecated since the 0.46 release. The following objects have been moved to :mod:`qiskit.synthesis`: @@ -18,5 +20,5 @@ upgrade: * ``cnot_rxx_decompose`` These functions were removed, since they have already been deprecated in a previous release: - * ``decompose_clifford`` (use :func:`.qiskit.synthesis.synth_clifford_full` instead) - * ``decompose_cnotdihedral`` (use :func:`.qiskit.synthesis.synth_cnotdihedral_full` instead) + * ``decompose_clifford`` (use :func:`.synth_clifford_full` instead) + * ``decompose_cnotdihedral`` (use :func:`.synth_cnotdihedral_full` instead) diff --git a/releasenotes/notes/rollup-removals-ce8326ea90c0ad99.yaml b/releasenotes/notes/1.0/rollup-removals-ce8326ea90c0ad99.yaml similarity index 71% rename from releasenotes/notes/rollup-removals-ce8326ea90c0ad99.yaml rename to releasenotes/notes/1.0/rollup-removals-ce8326ea90c0ad99.yaml index 3c7ff781ee60..d032fdf45f61 100644 --- a/releasenotes/notes/rollup-removals-ce8326ea90c0ad99.yaml +++ b/releasenotes/notes/1.0/rollup-removals-ce8326ea90c0ad99.yaml @@ -1,41 +1,47 @@ --- -upgrade: +upgrade_transpiler: - | The ``target`` keyword alias when calling :class:`.TwoQubitBasisDecomposer` instances as - functions has been removed following its deprecation in qiskit-terra 0.23.0. You should + functions has been removed following its deprecation in Qiskit 0.40.0. You should pass the argument positionally as the first argument, or use the new name ``unitary``. + - | + The specialized transpiler pass :class:`.LinearFunctionsSynthesis` has been removed following + its deprecation in Qiskit 0.40.0. Since its deprecation it just has been a very thin wrapper around + :class:`.HighLevelSynthesis`, which you should use instead. + - | + The import path ``qiskit.transpiler.passes.scheduling.calibration_creators`` is removed. + The transpiler passes it housed, :class:`.RZXCalibrationBuilder` and :class:`.RZXCalibrationBuilderNoEcho` + can be imported directly from :mod:`qiskit.transpiler.passes`. + - | + The import path ``qiskit.transpiler.passes.scheduling.rzx_templates`` is removed. You + should import :func:`.rzx_templates` from :mod:`qiskit.transpiler.passes` directly. +upgrade_qasm: - | The ``qasm()`` methods of the classes :class:`.QuantumRegister` and :class:`.ClassicalRegister` have been removed. There is no replacement necessary; these were an internal detail of a legacy implementation of the OpenQASM 2 exporter. To export a program to OpenQASM 2, use :func:`.qasm2.dump` or :func:`.qasm2.dumps`. - - | - The specialized transpiler pass :class:`.LinearFunctionsSynthesis` has been removed following - its deprecation in qiskit-terra 0.23.0. Since its deprecation it just has been a very thin wrapper around - :class:`.HighLevelSynthesis`, which you should use instead. +upgrade_circuits: - | You can no longer set :attr:`.QuantumCircuit.metadata` to be ``None``, following deprecation - in qiskit-terra 0.24.0. Its type is :class:`dict`, so to clear it, set it to ``{}``. + in Qiskit 0.43.0. Its type is :class:`dict`, so to clear it, set it to ``{}``. + - | + The attribute ``.Register.name_format`` has been removed following its deprecation + in Qiskit 0.40.0. There is no restriction on register names any more, and the + regular expression there was simply ``[a-z][a-zA-Z0-9_]*``. + +upgrade_quantum_info: - | The functions :func:`.process_fidelity`, :func:`.average_gate_fidelity`, :func:`.gate_error` and :func:`.diamond_norm` will no longer attempt to coerce arbitrary inputs to their marked - expected types, following the deprecation in qiskit-terra 0.17.0. Pass inputs of the marked + expected types, following the deprecation in Qiskit 0.25.0. Pass inputs of the marked types to each argument directly. +upgrade_qpy: - | The module path ``qiskit.circuit.qpy_serialization`` has been removed, following its - deprecation in qiskit-terra 0.23.0. For QPY serialization, use :mod:`qiskit.qpy`, + deprecation in Qiskit 0.40.0. For QPY serialization, use :mod:`qiskit.qpy`, which is the new location. - - | - The attribute :attr:`.Register.name_format` has been removed following its deprecation - in qiskit-terra 0.23.0. There is no restriction on register names any more, and the - regular expression there was simply ``[a-z][a-zA-Z0-9_]*``. +upgrade_visualization: - | The ``link_interval_dt`` key of :class:`.QiskitTimelineStyle` has been removed. You should use the new name ``link_interval_percent``. - - | - The import path ``qiskit.transpiler.passes.scheduling.calibration_creators`` is removed. - The transpiler passes it housed, :class:`.RZXCalibrationBuilder` and :class:`.RZXCalibrationBuilderNoEcho` - can be imported directly from :mod:`qiskit.transpiler.passes`. - - | - The import path ``qiskit.transpiler.passes.scheduling.rzx_templates`` is removed. You - should import :func:`.rzx_templates` from :mod:`qiskit.transpiler.passes` directly. diff --git a/releasenotes/notes/rr-decomposition-synthesis-70eb88ada9305916.yaml b/releasenotes/notes/1.0/rr-decomposition-synthesis-70eb88ada9305916.yaml similarity index 77% rename from releasenotes/notes/rr-decomposition-synthesis-70eb88ada9305916.yaml rename to releasenotes/notes/1.0/rr-decomposition-synthesis-70eb88ada9305916.yaml index e4ec6a970a3c..7ccaaab1f5fc 100644 --- a/releasenotes/notes/rr-decomposition-synthesis-70eb88ada9305916.yaml +++ b/releasenotes/notes/1.0/rr-decomposition-synthesis-70eb88ada9305916.yaml @@ -2,7 +2,7 @@ fixes: - | Fixed an issue in :func:`.unitary_to_gate_sequence` which caused unitary - decomposition in RR basis to emit two R gates in some cases where the + decomposition in the RR basis to emit two R gates in some cases where the matrix can be expressed as a single R gate. Previously, in those cases you would get two R gates with the same phi parameter. Now, they are combined into one. diff --git a/releasenotes/notes/sabre-no-route-barrier-bc82fecb65d3ab9a.yaml b/releasenotes/notes/1.0/sabre-no-route-barrier-bc82fecb65d3ab9a.yaml similarity index 63% rename from releasenotes/notes/sabre-no-route-barrier-bc82fecb65d3ab9a.yaml rename to releasenotes/notes/1.0/sabre-no-route-barrier-bc82fecb65d3ab9a.yaml index fe77e9c51ef0..d5c86cee1812 100644 --- a/releasenotes/notes/sabre-no-route-barrier-bc82fecb65d3ab9a.yaml +++ b/releasenotes/notes/1.0/sabre-no-route-barrier-bc82fecb65d3ab9a.yaml @@ -2,8 +2,8 @@ fixes: - | Fixed an issue in the :class:`.SabreSwap` and :class:`.SabreLayout` - transpiler passes where it would incorrectly treat 2 qubit + transpiler passes where they would incorrectly treat 2-qubit :class:`.Barrier` instructions as an instruction that needs to be - routed according the transpiler :class:`.Target`. When this occured the - output was still correct but would potentially include unecessary + routed according the transpiler :class:`.Target`. When this occurred the + output was still correct but would potentially include unnecessary :class:`.SwapGate` instructions. diff --git a/releasenotes/notes/singletonize-instructions-78723f68cd0ac03f.yaml b/releasenotes/notes/1.0/singletonize-instructions-78723f68cd0ac03f.yaml similarity index 93% rename from releasenotes/notes/singletonize-instructions-78723f68cd0ac03f.yaml rename to releasenotes/notes/1.0/singletonize-instructions-78723f68cd0ac03f.yaml index ced4a873bd6a..51c2f14ecb78 100644 --- a/releasenotes/notes/singletonize-instructions-78723f68cd0ac03f.yaml +++ b/releasenotes/notes/1.0/singletonize-instructions-78723f68cd0ac03f.yaml @@ -1,32 +1,32 @@ --- -features: +features_circuits: - | The following standard library instructions are now instances of :class:`~.SingletonInstruction`: - + * :class:`~.Measure` * :class:`~.Reset` - + This means that if these classes are instantiated as (e.g.) ``Measure()`` using all the constructor defaults, they will all share a single global instance. This results in large reduction in the memory overhead for > 1 object of these types and significantly faster object construction time. -upgrade: +upgrade_circuits: - | The following standard library instructions: - + * :class:`~.Measure` * :class:`~.Reset` are immutable, unless the attributes ``label``, ``duration`` and ``unit`` are given as keyword arguments during class construction. + The attributes :attr:`~.Instruction.label`, :attr:`~.Instruction.duration`, :attr:`~.Instruction.unit`, and :attr:`~.Instruction.condition` attributes are all not publicly accessible and setting these attributes directly is not allowed and it will raise an exception. If they are needed for a particular instance you must ensure you have a mutable instance using :meth:`.Instruction.to_mutable` and use :meth:`.Instruction.c_if` for :attr:`~.Instruction.condition` + For the singleton variant of these instructions, there is a special attribute - :attr:`~.SingletonInstruction._singleton_lookup_key`, that when called generates a key based on the input + :meth:`~.SingletonInstruction._singleton_lookup_key`, that when called generates a key based on the input arguments, which can be used for identifying and indexing these instructions within the framework. - - diff --git a/releasenotes/notes/standard-gate-mapping-parameters-2b438cea945c82cd.yaml b/releasenotes/notes/1.0/standard-gate-mapping-parameters-2b438cea945c82cd.yaml similarity index 100% rename from releasenotes/notes/standard-gate-mapping-parameters-2b438cea945c82cd.yaml rename to releasenotes/notes/1.0/standard-gate-mapping-parameters-2b438cea945c82cd.yaml diff --git a/releasenotes/notes/1.0/symbolic-pulse-disable-validation-19cd8506b3a839b6.yaml b/releasenotes/notes/1.0/symbolic-pulse-disable-validation-19cd8506b3a839b6.yaml new file mode 100644 index 000000000000..4601cb3db938 --- /dev/null +++ b/releasenotes/notes/1.0/symbolic-pulse-disable-validation-19cd8506b3a839b6.yaml @@ -0,0 +1,19 @@ +--- +upgrade_pulse: + - | + Validation of :class:`qiskit.pulse.SymbolicPulse` objects can now be disabled. By setting + the class attribute :attr:`~qiskit.pulse.SymbolicPulse.disable_validation` to ``False`` + the method :meth:`.SymbolicPulse.validate_parameters` will not be triggered for all :class:`.SymbolicPulse` objects. + The automatic validation hindered JAX compatibility of the symbolic pulse library, and this + upgrade will make it easier to use Qiskit Pulse with JAX. Moreover, the parameter validation will also be + deactivated when using the :meth:`.Schedule.assign_parameters` and + :meth:`.ScheduleBlock.assign_parameters` methods. This constitutes a first + step towards a more general parameter validation mechanism, which will be implemented in the future to enable + JAX compatibility of the :class:`.ParameterExpression` class, such that parametrized schedules can be generated within a + JAX framework. + + Note that all library pulses automatically called :meth:`~.SymbolicPulse.validate_parameters`. However, as part + of the upgrade the call was moved directly to the initialization process of + :class:`.SymbolicPulse`. While this doesn't change the behavior of library pulses, + custom symbolic pulses which did not call :meth:`~.SymbolicPulse.validate_parameters` will now trigger the + method. The new class attribute will allow to easily disable this. diff --git a/releasenotes/notes/symengine_1-c907ed541eeb9a02.yaml b/releasenotes/notes/1.0/symengine_1-c907ed541eeb9a02.yaml similarity index 52% rename from releasenotes/notes/symengine_1-c907ed541eeb9a02.yaml rename to releasenotes/notes/1.0/symengine_1-c907ed541eeb9a02.yaml index f5831504eb0f..1ef92126ca69 100644 --- a/releasenotes/notes/symengine_1-c907ed541eeb9a02.yaml +++ b/releasenotes/notes/1.0/symengine_1-c907ed541eeb9a02.yaml @@ -2,4 +2,3 @@ upgrade: - | The minimum version required for symengine was bumped to >=0.11. - This allows to simplify some code in :meth:`.ParameterExpression.is_real`. diff --git a/releasenotes/notes/template-match-symbols-c00786155f101e39.yaml b/releasenotes/notes/1.0/template-match-symbols-c00786155f101e39.yaml similarity index 100% rename from releasenotes/notes/template-match-symbols-c00786155f101e39.yaml rename to releasenotes/notes/1.0/template-match-symbols-c00786155f101e39.yaml diff --git a/releasenotes/notes/terra-nullius-7ef598626d8118c1.yaml b/releasenotes/notes/1.0/terra-nullius-7ef598626d8118c1.yaml similarity index 91% rename from releasenotes/notes/terra-nullius-7ef598626d8118c1.yaml rename to releasenotes/notes/1.0/terra-nullius-7ef598626d8118c1.yaml index 562929a17b9f..b6161518b872 100644 --- a/releasenotes/notes/terra-nullius-7ef598626d8118c1.yaml +++ b/releasenotes/notes/1.0/terra-nullius-7ef598626d8118c1.yaml @@ -28,3 +28,5 @@ critical: If you are a library author, or have code that depends on Qiskit, you should update any old dependencies on ``qiskit-terra`` to instead depend on ``qiskit``. + + For more information on this change, see our `migration guide on Qiskit packaging `__. diff --git a/releasenotes/notes/update-dag-dependency-drawer-d06d4ae660c1cbc2.yaml b/releasenotes/notes/1.0/update-dag-dependency-drawer-d06d4ae660c1cbc2.yaml similarity index 82% rename from releasenotes/notes/update-dag-dependency-drawer-d06d4ae660c1cbc2.yaml rename to releasenotes/notes/1.0/update-dag-dependency-drawer-d06d4ae660c1cbc2.yaml index e26bf092b786..60b65043a37a 100644 --- a/releasenotes/notes/update-dag-dependency-drawer-d06d4ae660c1cbc2.yaml +++ b/releasenotes/notes/1.0/update-dag-dependency-drawer-d06d4ae660c1cbc2.yaml @@ -1,9 +1,9 @@ --- -features: +features_visualization: - | The :func:`.dag_drawer` has been updated for the :class:`.DAGDependency`. These - drawings have a new color scheme, and the nodes now indicate the ``Qubits`` and - ``Clbits`` that are used by the node. If the node has a ``condition`` the drawings + drawings have a new color scheme, and the nodes now indicate the qubits and + clbits that are used by the node. If the node has a condition, the drawings will indicate that as well. .. code-block:: python diff --git a/releasenotes/notes/1.0/update-primitive-job-f5c9b31f68c3ec3d.yaml b/releasenotes/notes/1.0/update-primitive-job-f5c9b31f68c3ec3d.yaml new file mode 100644 index 000000000000..2e42dcccf841 --- /dev/null +++ b/releasenotes/notes/1.0/update-primitive-job-f5c9b31f68c3ec3d.yaml @@ -0,0 +1,11 @@ +--- +upgrade_primitives: + - | + Added the :class:`.BasePrimitiveJob` class as an abstract job class for primitives + and made :class:`.PrimitiveJob` inherit :class:`.BasePrimitiveJob` + instead of :class:`.JobV1`. +deprecations_primitives: + - | + The methods :meth:`.PrimitiveJob.submit` and :meth:`.PrimitiveJob.wait_for_final_state` + have been removed following their deprecation in Qiskit 0.46. These were not intended to be + public methods, but were a legacy of an incorrect inheritance structure. diff --git a/releasenotes/notes/upgrade-pass-manager-98aa64edde67b5bb.yaml b/releasenotes/notes/1.0/upgrade-pass-manager-98aa64edde67b5bb.yaml similarity index 59% rename from releasenotes/notes/upgrade-pass-manager-98aa64edde67b5bb.yaml rename to releasenotes/notes/1.0/upgrade-pass-manager-98aa64edde67b5bb.yaml index be8b0ce26206..c31ffcfc3242 100644 --- a/releasenotes/notes/upgrade-pass-manager-98aa64edde67b5bb.yaml +++ b/releasenotes/notes/1.0/upgrade-pass-manager-98aa64edde67b5bb.yaml @@ -1,8 +1,8 @@ --- -upgrade: +upgrade_transpiler: - | A pattern for the pass piepline construction was upgraded. - The syntactic suger shown below for instantiation of flow controller was removed. + The syntactic sugar shown below for instantiation of flow controller was removed. .. code-block:: python @@ -16,7 +16,8 @@ upgrade: .. code-block:: python - from qiskit.passmanager.flow_controllers import ConditionalController, DoWhileController + from qiskit.passmanager import ConditionalController, DoWhileController + from qiskit.transpiler import PassManager pm = PassManager() pm.append( @@ -41,20 +42,19 @@ upgrade: ) - | - The append method of builtin flow controllers was removed. This includes + The append method of built-in flow controllers was removed. This includes - * :meth:`.ConditionalController.append` - * :meth:`.DoWhileController.append` - * :meth:`.FlowControllerLinear.append` + * ``ConditionalController.append`` + * ``DoWhileController.append`` + * ``FlowControllerLinear.append`` The task pipeline in a flow controller is frozen, and it must be passed when the controller instance is created. - | - Removed methods :meth:`qiskit.transpiler.PassManager.passes` and - :meth:`qiskit.transpiler.StagedPassManager.passes` that generates - a representation of inset passes in the form of list of dictionary, - however, this format doesn't efficiently represent more complicated pass pipeline, + Removed the ``passess`` methods of :class:`.PassManager` and :class:`.StagedPassManager` that + returned a representation of included passes in the form of list of dictionaries. + However, this format doesn't efficiently represent more complicated pass pipeline, which may include conditional branching and nested conditions. Instead of using this representation, please use following pattern @@ -66,14 +66,15 @@ upgrade: This directly returns a linearized base task instances in tuple format. - | - The max_iteration argument was removed from :meth:`qiskit.transpiler.PassManager.append` - and :meth:`qiskit.transpiler.PassManager.replace`. + The ``max_iteration`` argument was removed from :meth:`.PassManager.append` + and :meth:`.PassManager.replace`. - | - The following legacy classes were removed from the pass manager and transpiler module. - - * :class:`qiskit.passmanager.flow_controllers.FlowController` - * :class:`qiskit.transpiler.fencedobjs.FencedObject` - * :class:`qiskit.transpiler.fencedobjs.FencedPropertySet` - * :class:`qiskit.transpiler.fencedobjs.FencedDAGCircuit` - * :class:`qiskit.transpiler.runningpassmanager.RunningPassManager` + The following legacy classes were removed from the pass manager and transpiler modules following + their deprecation in Qiskit 0.46: + + * ``qiskit.passmanager.flow_controllers.FlowController`` + * ``qiskit.transpiler.fencedobjs.FencedObject`` + * ``qiskit.transpiler.fencedobjs.FencedPropertySet`` + * ``qiskit.transpiler.fencedobjs.FencedDAGCircuit`` + * ``qiskit.transpiler.runningpassmanager.RunningPassManager`` diff --git a/releasenotes/notes/vf2-threading-b778a36de5b8832a.yaml b/releasenotes/notes/1.0/vf2-threading-b778a36de5b8832a.yaml similarity index 80% rename from releasenotes/notes/vf2-threading-b778a36de5b8832a.yaml rename to releasenotes/notes/1.0/vf2-threading-b778a36de5b8832a.yaml index e813f9ed5129..6d4d4ef3559c 100644 --- a/releasenotes/notes/vf2-threading-b778a36de5b8832a.yaml +++ b/releasenotes/notes/1.0/vf2-threading-b778a36de5b8832a.yaml @@ -3,6 +3,6 @@ other: - | The :class:`.VF2Layout` and :class:`.VF2PostLayout` transpiler passes previously would potentially run their internal scoring using multithreading if the input - circuit's were sufficiently large. However, the multithreading usage has + circuits were sufficiently large. However, the multithreading usage has been removed from the passes as it was shown to cause a performance regression instead of an improvement like originally intended. diff --git a/releasenotes/notes/vf2postlayout-no-better-solution-eb5ced3c8a60ea23.yaml b/releasenotes/notes/1.0/vf2postlayout-no-better-solution-eb5ced3c8a60ea23.yaml similarity index 94% rename from releasenotes/notes/vf2postlayout-no-better-solution-eb5ced3c8a60ea23.yaml rename to releasenotes/notes/1.0/vf2postlayout-no-better-solution-eb5ced3c8a60ea23.yaml index 25d361e51896..488b087fcd30 100644 --- a/releasenotes/notes/vf2postlayout-no-better-solution-eb5ced3c8a60ea23.yaml +++ b/releasenotes/notes/1.0/vf2postlayout-no-better-solution-eb5ced3c8a60ea23.yaml @@ -1,5 +1,5 @@ --- -features: +features_transpiler: - | :class:`.VF2PostLayout` now distinguishes between 'no solution' and 'no better solution' when determining a :class:`.Layout` for a given quantum circuit. 'no better solution' is set when the diff --git a/releasenotes/notes/5079_IntegerComparator_num_ancilla_qubits-bd1cff3366c345ae.yaml b/releasenotes/notes/5079_IntegerComparator_num_ancilla_qubits-bd1cff3366c345ae.yaml deleted file mode 100644 index 9364ffd605b3..000000000000 --- a/releasenotes/notes/5079_IntegerComparator_num_ancilla_qubits-bd1cff3366c345ae.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -upgrade: - - | - The property ``IntegerComparator.num_ancilla_qubits`` is removed, which was - deprecated in Qiskit 0.23 (released on Oct 2020). Its functionality is fully covered - by :attr:`.IntegerComparator.num_ancilla`. diff --git a/releasenotes/notes/Update_backend_model_up_conversion_logic-75ecc2030a9fe6b1.yaml b/releasenotes/notes/Update_backend_model_up_conversion_logic-75ecc2030a9fe6b1.yaml deleted file mode 100644 index b94795720b9d..000000000000 --- a/releasenotes/notes/Update_backend_model_up_conversion_logic-75ecc2030a9fe6b1.yaml +++ /dev/null @@ -1,20 +0,0 @@ ---- -upgrade: - - | - Changed default value of two arguments :code:`add_delay` and :code:`filter_faulty` in - the :func:`.qiskit.providers.backend_compat.convert_to_target`. - Now this conversion function adds delay instruction and removes faulty instructions by default. -fixes: - - | - Fixes return of improper measurement schedule that may occur in the following program - - .. code-block:: python - - # import a fake backend which is a sub-class of BackendV2. - from qiskit.providers.fake_provider import FakePerth - backend = FakePerth() - sched = backend.instruction_schedule_map.get('measure', [0]) - - This unexpectedly returned a measure schedule including all device qubits, - which was fixed in this release. - Now this returns a schedule for qubit 0 as intended. diff --git a/releasenotes/notes/add-annotated-arg-to-control-d9a188fe66f037ad.yaml b/releasenotes/notes/add-annotated-arg-to-control-d9a188fe66f037ad.yaml deleted file mode 100644 index d2a6a2ec6f95..000000000000 --- a/releasenotes/notes/add-annotated-arg-to-control-d9a188fe66f037ad.yaml +++ /dev/null @@ -1,16 +0,0 @@ ---- -features: - - | - The methods :meth:`~qiskit.circuit.QuantumCircuit.control`, - :meth:`~qiskit.circuit.Gate.control`, as well as the similar methods - of subclasses of :class:`~qiskit.circuit.Gate` - (such as :class:`~qiskit.circuit.library.UnitaryGate` or - :class:`~qiskit.circuit.library.SwapGate`) all have an additional - argument ``annotated``. The default value of ``False`` corresponds to - the existing behavior, for example - ``SwapGate().control(1, annotated=False)`` returns a ``CSwapGate``, - while - ``SwapGate().control(2, annotated=False)`` returns a ``ControlledGate``. - The value of ``True`` returns an object of type - :class:`~.AnnotatedOperation` instead, avoiding the eager construction - of the controlled gate's definition. diff --git a/releasenotes/notes/add-annotated-arg-to-inverse-2e577f33793c06b1.yaml b/releasenotes/notes/add-annotated-arg-to-inverse-2e577f33793c06b1.yaml deleted file mode 100644 index 56cad8780594..000000000000 --- a/releasenotes/notes/add-annotated-arg-to-inverse-2e577f33793c06b1.yaml +++ /dev/null @@ -1,21 +0,0 @@ ---- -features: - - | - The methods :meth:`~qiskit.circuit.QuantumCircuit.inverse`, - :meth:`~qiskit.circuit.Instruction.inverse`, as well as the similar methods - of subclasses of :class:`~qiskit.circuit.Instruction` - (such as :class:`~qiskit.circuit.library.SwapGate` or - :class:`~qiskit.circuit.library.SGate`) all have an additional - argument ``annotated``. - The default value of ``False`` corresponds to the existing behavior. - Furthermore, for standard gates with an explicitly defined ``inverse`` method, - the argument ``annotated`` has no effect, for example both - ``SwapGate().inverse(annotated=False)`` and ``SwapGate().inverse(annotated=True)`` - return a ``SwapGate``, and both - ``SGate().inverse(annotated=False)`` and ``SGate().inverse(annotated=True)`` - return an ``SdgGate``. - The difference manifests for custom instructions without an explicitly defined - inverse. The value of ``False`` returns a fresh instruction with the - recursively inverted definition, just as before. The value of ``True`` - returns an :class:`~.AnnotatedOperation` that represents the instruction - modified with the "inverse modifier". diff --git a/releasenotes/notes/add-annotated-to-drawers-8bcc3a069dd981ad.yaml b/releasenotes/notes/add-annotated-to-drawers-8bcc3a069dd981ad.yaml deleted file mode 100644 index e3a28e68adf9..000000000000 --- a/releasenotes/notes/add-annotated-to-drawers-8bcc3a069dd981ad.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -fixes: - - | - Fixed an issue in the ``text`` circuit drawer when displaying operations - that were not :class:`.circuit.instruction.Instruction` class. These operations - would cause the drawer to fail. Examples were :class:`.Clifford` and - :class:`.AnnotatedOperation`. -features: - - | - The ``text`` and ``mpl`` circuit drawers will now display detailed - information for operations of :class:`.AnnotatedOperation`. If the - :attr:`.AnnotatedOperation.modifiers` contains a :class:`.ControlModifier` - the operation will be displayed the same way as controlled gates. If - the :class:'.InverseModifier` or :class:`.PowerModifier` is used, - these will be indicated with the base operation name. diff --git a/releasenotes/notes/add-commutation-library-88b7ff65b3d35f9a.yaml b/releasenotes/notes/add-commutation-library-88b7ff65b3d35f9a.yaml deleted file mode 100644 index 38df7cb2beac..000000000000 --- a/releasenotes/notes/add-commutation-library-88b7ff65b3d35f9a.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -features: - - | - Adds a commutation library to the :class:`.CommutationChecker`. The commutation library stores all - commutation relations of unparameterizable standard gates into a dictionary that allows for efficient - lookup at runtime. Furthermore, the :class:`.CommutationChecker` was refactored and an upper limit was - set to the number of cached commutation relations that are not in the commutation library. A session - commutation checker was added, that can be used to cache commutations computed during one qiskit - execution. Addresses `#8020 _` and - `#7101 _` - - | - Adds a `SessionCommutationChecker`, i.e. a commutation checker with commutations that are cached - consistently during the runtime of a python execution. diff --git a/releasenotes/notes/add-num-processes-kwarg-to-transpiler-3cb7f3457b54a535.yaml b/releasenotes/notes/add-num-processes-kwarg-to-transpiler-3cb7f3457b54a535.yaml deleted file mode 100644 index 42304c8ce852..000000000000 --- a/releasenotes/notes/add-num-processes-kwarg-to-transpiler-3cb7f3457b54a535.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -features: - - | - Add new keyword argument ``num_processes`` to :func:`~qiskit.compiler.transpiler`. - Allows for overriding user configurations file entry ``num_processes`` and - the environment variable ``QISKIT_NUM_PROCS`` on a per transpile basis. \ No newline at end of file diff --git a/releasenotes/notes/add-py312-support-7077426af34ac5da.yaml b/releasenotes/notes/add-py312-support-7077426af34ac5da.yaml deleted file mode 100644 index 4e2be1e92983..000000000000 --- a/releasenotes/notes/add-py312-support-7077426af34ac5da.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -features: - - | - Added support for using Qiskit with Python 3.12. diff --git a/releasenotes/notes/add-qpy-loading-depr-warning-8628b23ca63c3eb5.yaml b/releasenotes/notes/add-qpy-loading-depr-warning-8628b23ca63c3eb5.yaml deleted file mode 100644 index 4665c4c1c9f8..000000000000 --- a/releasenotes/notes/add-qpy-loading-depr-warning-8628b23ca63c3eb5.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -features: - - | - A new exception, :exc:`~.QPYLoadingDeprecatedFeatureWarning`, has been added to the QPY module. - This class allows for deprecation warnings to surface even if the depreacted feature - is in a variable point in the call stack, as is the case for many QPY loading functions that - are called recursively. diff --git a/releasenotes/notes/add-synth-circuit-from-stabilizer-list-4cf9cfa01bbc7ddf.yaml b/releasenotes/notes/add-synth-circuit-from-stabilizer-list-4cf9cfa01bbc7ddf.yaml deleted file mode 100644 index 6ba8f88729b2..000000000000 --- a/releasenotes/notes/add-synth-circuit-from-stabilizer-list-4cf9cfa01bbc7ddf.yaml +++ /dev/null @@ -1,14 +0,0 @@ ---- -features: - - | - Add :func:`qiskit.synthesis.synth_circuit_from_stabilizers` function that, given stabilizers, - returns a circuit that outputs the state stabilized by the stabilizers. - - - | - Add :meth:`qiskit.quantum_info.StabilizerState.from_stabilizer_list` method - that generates a stabilizer state from a list of stabilizers:: - - from qiskit.quantum_info import StabilizerState - - stabilizer_list = ["ZXX", "-XYX", "+ZYY"] - stab = StabilizerState.from_stabilizer_list(stabilizer_list) diff --git a/releasenotes/notes/dep-primitives-attr-6b4ec9fde34c42e8.yaml b/releasenotes/notes/dep-primitives-attr-6b4ec9fde34c42e8.yaml deleted file mode 100644 index 43e98cf86166..000000000000 --- a/releasenotes/notes/dep-primitives-attr-6b4ec9fde34c42e8.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -deprecations: - - | - The :class:`~.BaseEstimator` attributes :attr:`~.BaseEstimator.circuits` - :attr:`~.BaseEstimator.observables`, :attr:`~.BaseEstimator.parameters` - and :class:`~.BaseSampler` attributes :attr:`~.BaseSampler.circuits` - :attr:`~.BaseSampler.parameters` have been deprecated. - - | - Deprecates the :class:`~.BaseEstimator` ``_circuits``, ``_observables`` - and ``_parameters``, and :class:`~.BaseSampler` ``_circuits`` and - ``_parameters`` attributes set during `__init__`. Any subclasses - relying on these methods should now manually initialize them to avoid - deprecation warnings. diff --git a/releasenotes/notes/deprecate-pulse-instruction-call-52dca0dd26e1c768.yaml b/releasenotes/notes/deprecate-pulse-instruction-call-52dca0dd26e1c768.yaml deleted file mode 100644 index bb6d2ce66357..000000000000 --- a/releasenotes/notes/deprecate-pulse-instruction-call-52dca0dd26e1c768.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -upgrade: - - | - Removed the deprecated class :class:`qiskit.pulse.instructions.Call`. - No alternative pulse instruction is provided. diff --git a/releasenotes/notes/deprecate-qinfo-synthesis-23abd8c34fc0f52e.yaml b/releasenotes/notes/deprecate-qinfo-synthesis-23abd8c34fc0f52e.yaml deleted file mode 100644 index 176c5ddb86ad..000000000000 --- a/releasenotes/notes/deprecate-qinfo-synthesis-23abd8c34fc0f52e.yaml +++ /dev/null @@ -1,26 +0,0 @@ ---- -deprecations: - - | - The :mod:`qiskit.quantum_info.synthesis` module is deprecated and - will be removed in a future release. The following objects have been moved to - :mod:`qiskit.synthesis`: - - * :class:`~.OneQubitEulerDecomposer` has been moved to :mod:`qiskit.synthesis.one_qubit` - * :class:`~.TwoQubitBasisDecomposer` has been moved to :mod:`qiskit.synthesis.two_qubits` - * :class:`~.XXDecomposer` has been moved to :mod:`qiskit.synthesis.two_qubits` - * :func:`~.two_qubit_cnot_decompose` has been moved to :mod:`qiskit.synthesis.two_qubits` - * :func:`~.qs_decomposition` has been moved to :mod:`qiskit.synthesis.unitary` - - The class :class:`.Quaternion` has been migrated from :mod:`qiskit.quantum_info.synthesis` to - :mod:`qiskit.quantum_info`. This move has not affected the usual import path of the class. - - This function is deprecated and will be removed in a next release: - - * :func:`~.cnot_rxx_decompose` - -upgrade: - - | - These functions were removed, since they have already been deprecated in a previous release: - - * ``decompose_clifford`` (use :func:`.qiskit.synthesis.synth_clifford_full` instead) - * ``decompose_cnotdihedral`` (use :func:`.qiskit.synthesis.synth_cnotdihedral_full` instead) diff --git a/releasenotes/notes/deprecate-transpiler-synthesis-cf4e6e6dcdb42eca.yaml b/releasenotes/notes/deprecate-transpiler-synthesis-cf4e6e6dcdb42eca.yaml deleted file mode 100644 index bb89cfbdfbe2..000000000000 --- a/releasenotes/notes/deprecate-transpiler-synthesis-cf4e6e6dcdb42eca.yaml +++ /dev/null @@ -1,14 +0,0 @@ ---- -deprecations: - - | - The :mod:`qiskit.transpiler.synthesis` module is deprecated and - will be removed in a future release. The following objects have been moved: - - * :mod:`qiskit.transpiler.synthesis.aqc` has been moved to :mod:`qiskit.synthesis.unitary.aqc` - (except of :class:`qiskit.synthesis.unitary.aqc.AQCSynthesisPlugin`). - * :class:`qiskit.synthesis.unitary.aqc.AQCSynthesisPlugin` has been moved to - :class:`qiskit.transpiler.passes.synthesis.AQCSynthesisPlugin`. - * :func:`qiskit.transpiler.synthesis.graysynth` has been moved to - :func:`qiskit.synthesis.synth_cnot_phase_aam`. - * :func:`qiskit.transpiler.synthesis.cnot_synth` has been moved to - :func:`qiskit.synthesis.synth_cnot_count_full_pmh`. diff --git a/releasenotes/notes/deprecate_aquire_alignment-28f64480ed838328.yaml b/releasenotes/notes/deprecate_aquire_alignment-28f64480ed838328.yaml deleted file mode 100644 index 2c67abc3fd10..000000000000 --- a/releasenotes/notes/deprecate_aquire_alignment-28f64480ed838328.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -upgrade: - - | - The method ``qiskit.transpiler.target.Target.aquire_alignment``, deprecated in 0.24, has been removed. The method ``qiskit.transpiler.target.Target.acquire_alignment`` should be used instead. diff --git a/releasenotes/notes/deprecate_clifford_indexing-5e3500301a696bdc.yaml b/releasenotes/notes/deprecate_clifford_indexing-5e3500301a696bdc.yaml deleted file mode 100644 index 76969481ecbc..000000000000 --- a/releasenotes/notes/deprecate_clifford_indexing-5e3500301a696bdc.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -upgrade: - - | - Remove deprecated ``__getitem__``/``__setitem__`` magic methods of - :class:`~qiskit.quantum_info.operators.symplectic.Clifford`. - The methods were deprecated since Qiskit 0.44, released on July 2023. Instead, index or iterate through the :attr:`.Clifford.tableau` attribute. diff --git a/releasenotes/notes/deprecation-passmanager-0.25-95eb9b45b517370a.yaml b/releasenotes/notes/deprecation-passmanager-0.25-95eb9b45b517370a.yaml deleted file mode 100644 index 1383cafc1f26..000000000000 --- a/releasenotes/notes/deprecation-passmanager-0.25-95eb9b45b517370a.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -upgrade: - - | - Removed deprecated function :func:`~qiskit.transpiler.preset_passmanagers.common.get_vf2_call_limit` - and its corresponding test. Instead, use - :func:`~qiskit.transpiler.preset_passmanagers.common.get_vf2_limits` diff --git a/releasenotes/notes/estimatorv2-9b09b66ecc12af1b.yaml b/releasenotes/notes/estimatorv2-9b09b66ecc12af1b.yaml deleted file mode 100644 index 70504ac8f31f..000000000000 --- a/releasenotes/notes/estimatorv2-9b09b66ecc12af1b.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -features: - - | - Add :class:`~.BaseEstimatorV2` primitive base class for EstimatorV2 based on - `the RFC `_. diff --git a/releasenotes/notes/fix-error-message-qpy-version-cf0763da22ce2224.yaml b/releasenotes/notes/fix-error-message-qpy-version-cf0763da22ce2224.yaml deleted file mode 100644 index 67690c011126..000000000000 --- a/releasenotes/notes/fix-error-message-qpy-version-cf0763da22ce2224.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -fixes: - - | - Fixed an issue with :func:`.qpy.load` when attempting to load a QPY format - version that is not supported by this version of Qiskit it will now display - a descriptive error message. Previously, it would raise an internal error - because of the incompatibility between the formats which was difficult to - debug. If the QPY format verison is not supported that indicates the Qiskit - version will need to be upgraded to read the QPY payload. diff --git a/releasenotes/notes/fix-plot-state-city-viz-2963c83bcf3d3347.yaml b/releasenotes/notes/fix-plot-state-city-viz-2963c83bcf3d3347.yaml deleted file mode 100644 index 8205c2ded5f9..000000000000 --- a/releasenotes/notes/fix-plot-state-city-viz-2963c83bcf3d3347.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -fixes: - - | - Adjusted zoom, fontsize, and margins to fit the plot better for more figure - sizes. - - | - Corrected the Z-ordering behavior of bars and the zero-amplitude plane. - - | - Corrected display of negative real value bars diff --git a/releasenotes/notes/fix-qpy-use-symengine-bool-like-d17550057a58abf2.yaml b/releasenotes/notes/fix-qpy-use-symengine-bool-like-d17550057a58abf2.yaml deleted file mode 100644 index ae966ecfa63d..000000000000 --- a/releasenotes/notes/fix-qpy-use-symengine-bool-like-d17550057a58abf2.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -fixes: - - | - Fixed an issue with the :func:`.qpy.dump` function, when the - ``use_symengine`` flag was set to a truthy object that evaluated to - ``True`` but was not actually the boolean ``True`` the generated QPY - payload would be corrupt. For example, if you set ``use_symengine`` to - :obj:`.HAS_SYMENGINE` which evaluates to ``True`` when cast as a bool, - but isn't actually ``True``. diff --git a/releasenotes/notes/fix-v2-conversion-with-defective-backend-6d9cebe55b06b797.yaml b/releasenotes/notes/fix-v2-conversion-with-defective-backend-6d9cebe55b06b797.yaml deleted file mode 100644 index 2bd1b7ed46ab..000000000000 --- a/releasenotes/notes/fix-v2-conversion-with-defective-backend-6d9cebe55b06b797.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -fixes: - - | - A bug that :func:`.convert_to_target` or :class:`.BackendV2Converter` raises unexpected - error was solved. The bug occurs when the backend to convert includes calibration - for a gate that doesn't have definition in the backend properties. - Such gate should be broadcasted to all qubits as an ideal error-free instruction - even though actual calibrations for finite set of qubits are reported. -upgrade: - - | - Update properties and defaults information of :class:`.FakeOpenPulse2Q` backend. - Information for some missing instructions are added. diff --git a/releasenotes/notes/fix_11143-d32a262538873a9d.yaml b/releasenotes/notes/fix_11143-d32a262538873a9d.yaml deleted file mode 100644 index ed04a2520e68..000000000000 --- a/releasenotes/notes/fix_11143-d32a262538873a9d.yaml +++ /dev/null @@ -1,4 +0,0 @@ -upgrade: - - | - The functions ``qiskit.visualization.state_visualization.num_to_latex_ket`` and ``qiskit.visualization.state_visualization.numbers_to_latex_terms`` - have been removed, as they were removed in Qiskit 0.40 (released in Jan 2023). For similar functionality, see sympy's ``nsimplify`` and ``latex`` functions. \ No newline at end of file diff --git a/releasenotes/notes/fix_11536-c87d192a133b3dc3.yaml b/releasenotes/notes/fix_11536-c87d192a133b3dc3.yaml deleted file mode 100644 index a3600fb6a7d5..000000000000 --- a/releasenotes/notes/fix_11536-c87d192a133b3dc3.yaml +++ /dev/null @@ -1,4 +0,0 @@ ---- -fixes: - - | - A bug when loading MPL style from the configuration was fixed. diff --git a/releasenotes/notes/fix_backend_name-e84661707058b529.yaml b/releasenotes/notes/fix_backend_name-e84661707058b529.yaml deleted file mode 100644 index ed0cbe9a2658..000000000000 --- a/releasenotes/notes/fix_backend_name-e84661707058b529.yaml +++ /dev/null @@ -1,7 +0,0 @@ ---- -fixes: - - | - Fixed an issue in the :class:`.QuantumInstance` class where it was assuming - all ``AerSimulator`` backends were always :class:`.BackendV1`. This would cause - combatibility issues with the 0.13.0 release of ``qiskit-aer`` which is starting to - use :class:`.BackendV2` for `AerSimulator`` backends. diff --git a/releasenotes/notes/fix_sim_backend-f3971b1ed4d0c4e6.yaml b/releasenotes/notes/fix_sim_backend-f3971b1ed4d0c4e6.yaml deleted file mode 100644 index 5abfdc2d00cc..000000000000 --- a/releasenotes/notes/fix_sim_backend-f3971b1ed4d0c4e6.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -fixes: - - | - Fix `backend_utils.py` for simulator backends with BackendV2. - `is_simulator_backend` and `is_local_backend` returns `True` - if backend name that contains `simulator`. diff --git a/releasenotes/notes/iqp-default-1.0-d9335e866ac8fdbc.yaml b/releasenotes/notes/iqp-default-1.0-d9335e866ac8fdbc.yaml deleted file mode 100644 index 1abdf8e1ac75..000000000000 --- a/releasenotes/notes/iqp-default-1.0-d9335e866ac8fdbc.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -upgrade: - - | - The default style for the circuit visualization using Matplotlib has been - changed to ``"iqp"``, matching the IBM Quantum Platform. - - | - Remove the deprecated module ``qiskit.visualization.qcstyle`` in favor of - :mod:`qiskit.visualization.circuit.qcstyle`. diff --git a/releasenotes/notes/move_evolved_operator_ansatz-5406bc071013c443.yaml b/releasenotes/notes/move_evolved_operator_ansatz-5406bc071013c443.yaml deleted file mode 100644 index 91f993f594af..000000000000 --- a/releasenotes/notes/move_evolved_operator_ansatz-5406bc071013c443.yaml +++ /dev/null @@ -1,9 +0,0 @@ ---- -upgrade: - - | - The class :class:`.EvolvedOperatorAnsatz` has been migrated from - :mod:`qiskit.circuit.library` to :mod:`qiskit.circuit.library.n_local` to match - the location of its base class. This move has not affected the usual import path - of the class: ``from qiskit.circuit.library import EvolvedOperatorAnsatz``, but - now it is also accessible doing ``from qiskit.circuit.library.n_local import - EvolvedOperatorAnsatz``. diff --git a/releasenotes/notes/releasenotes/notes/remove-deprecated-parametric-pulses-class-667e4b970e1163b3.yaml b/releasenotes/notes/releasenotes/notes/remove-deprecated-parametric-pulses-class-667e4b970e1163b3.yaml deleted file mode 100644 index 7ba9d188f55a..000000000000 --- a/releasenotes/notes/releasenotes/notes/remove-deprecated-parametric-pulses-class-667e4b970e1163b3.yaml +++ /dev/null @@ -1,6 +0,0 @@ ---- -upgrade: - - | - The module ``ParametricPulse`` is removed. - All classes in it were deprecated since Qiskit 0.39 (with qiskit-terra 0.22), released on Oct 2022. - Instead, use :class:`.SymbolicPulse` and check its documentation for details. \ No newline at end of file diff --git a/releasenotes/notes/remove-deprecated-quantumcircuit-a8c69a8e0b480e17.yaml b/releasenotes/notes/remove-deprecated-quantumcircuit-a8c69a8e0b480e17.yaml deleted file mode 100644 index 454479fa997a..000000000000 --- a/releasenotes/notes/remove-deprecated-quantumcircuit-a8c69a8e0b480e17.yaml +++ /dev/null @@ -1,8 +0,0 @@ ---- -upgrade: - - | - Removed features deprecated in the 0.45 release for :class:`.QuantumCircuit`: - - * `header`, No alternative will be provided - * `extension_lib`, No alternative will be provided - diff --git a/releasenotes/notes/remove-deprecated-visualization-pulse-8adf40ff1a69df63.yaml b/releasenotes/notes/remove-deprecated-visualization-pulse-8adf40ff1a69df63.yaml deleted file mode 100644 index ab3ba5517880..000000000000 --- a/releasenotes/notes/remove-deprecated-visualization-pulse-8adf40ff1a69df63.yaml +++ /dev/null @@ -1,15 +0,0 @@ ---- -upgrade: - - | - The classes and methods in :mod:`qiskit.visualization.pulse`: - - * :class:`~qiskit.visualization.pulse.SchedStyle` - * :class:`~qiskit.visualization.pulse.PulseStyle` - * :class:`~qiskit.visualization.pulse.matplotlib.EventsOutputChannels` - * :class:`~qiskit.visualization.pulse.matplotlib.WaveformDrawer` - * :class:`~qiskit.visualization.pulse.matplotlib.ScheduleDrawer` - * :func:`~qiskit.visualization.pulse.interpolation.interp1d` - * :func:`~qiskit.visualization.interpolation.pulse.step_wise` - - Have been removed following their deprecation in Qiskit Terra 0.23. - Use the new interface :func:`qiskit.visualization.pulse_drawer` for pulse visualization. diff --git a/releasenotes/notes/remove-extensions-ce520ba419c93c58.yaml b/releasenotes/notes/remove-extensions-ce520ba419c93c58.yaml deleted file mode 100644 index ae9eb6e8176b..000000000000 --- a/releasenotes/notes/remove-extensions-ce520ba419c93c58.yaml +++ /dev/null @@ -1,47 +0,0 @@ ---- -upgrade: - - | - Removed the ``qiskit.extensions`` module, which has been pending deprecation since the 0.45 release - and has been fully deprecated in the 0.46 release. - The following operations from this module are available in :mod:`qiskit.circuit.library`: - - * :class:`~.library.DiagonalGate`, - * :class:`~.library.HamiltonianGateGate`, - * :class:`~.library.Initialize`, - * :class:`~.library.Isometry`, - * :class:`~.library.generalized_gates.mcg_up_diag.MCGupDiag`, - * :class:`~.library.UCGate`, - * :class:`~.library.UCPauliRotGate`, - * :class:`~.library.UCRXGate`, - * :class:`~.library.UCRYGate`, - * :class:`~.library.UCRZGate`, - * :class:`~.library.UnitaryGate`. - - The following objects have been removed: - - * ``SingleQubitUnitary`` (instead use :class:`.library.UnitaryGate`), - * ``Snapshot`` (superseded by Qiskit Aer's save instructions), - * ``ExtensionError``, - - along with the following circuit methods:: - - * ``QuantumCircuit.snapshot``, - * ``QuantumCircuit.squ``, - * ``QuantumCircuit.diagonal``, - * ``QuantumCircuit.hamiltonian``, - * ``QuantumCircuit.isometry`` and ``QuantumCircuit.iso``, - * ``QuantumCircuit.uc``, - * ``QuantumCircuit.ucrx``, - * ``QuantumCircuit.ucry``, - * ``QuantumCircuit.ucrz``. - - These operations can still be performed by appending the appropriate - instruction to a quantum circuit. - - | - Removed deprecated, duplicated :class:`.QuantumCircuit` methods. These include - - * ``QuantumCircuit.cnot``, instead use :meth:`.QuantumCircuit.cx`, - * ``QuantumCircuit.toffoli``, instead use :meth:`.QuantumCircuit.ccx`, - * ``QuantumCircuit.fredkin``, instead use :meth:`.QuantumCircuit.cswap`, - * ``QuantumCircuit.mct``, instead use :meth:`.QuantumCircuit.mcx`, - * ``QuantumCircuit.i``, instead use :meth:`.QuantumCircuit.id`. diff --git a/releasenotes/notes/remove-qobj-input-in-UnitarySimulatorPy-436c3a7c0dcc5eb6.yaml b/releasenotes/notes/remove-qobj-input-in-UnitarySimulatorPy-436c3a7c0dcc5eb6.yaml deleted file mode 100644 index a323af6935e8..000000000000 --- a/releasenotes/notes/remove-qobj-input-in-UnitarySimulatorPy-436c3a7c0dcc5eb6.yaml +++ /dev/null @@ -1,20 +0,0 @@ ---- - -upgrade: - - | - It is no longer allowed to pass a :class:`~qiskit.qobj.QasmQobj` as the first input to - The :meth:`~qiskit.providers.basicaer.UnitarySimulatorPy.run`. This functionality was - deprecated in Qiskit 0.46 and has now been removed. - - Example usage: - - from qiskit import transpile, QuantumCircuit - from qiskit.providers.basicaer import BasicAer - - backend = BasicAer.get_backend('unitary_simulator') - circuit = QuantumCircuit(2) - qc.h(0) - qc.cx(0, 1) - qc.measure_all() - tqc = transpile(circuit, backend) - result = backend.run(tqc).result() diff --git a/releasenotes/notes/remove-visualization-code-deprecated-in-0.22-7bc99235f5912424.yaml b/releasenotes/notes/remove-visualization-code-deprecated-in-0.22-7bc99235f5912424.yaml deleted file mode 100644 index a2d5e7cbbc71..000000000000 --- a/releasenotes/notes/remove-visualization-code-deprecated-in-0.22-7bc99235f5912424.yaml +++ /dev/null @@ -1,16 +0,0 @@ -deprecations: - - | - Removing deprecated visualization code (deprecated in 0.22). - - For :func:`.plot_histogram` visualization: Passing :class:`.QuasiDistribution`, - :class:`.ProbDistribution`, or a distribution dictionary to the `data` argument is deprecated. - If you would like to plot a histogram from a :class:`.QuasiDistribution`, - :class:`.ProbDistribution`, or a distribution dictionary you should be using the - :func:`.plot_distribution` function. - - Also removed reverse-bits argument deprecation from - -- :func:`.get_bit_get_index` - -- :func:`.get_condition_label_val` - - - diff --git a/releasenotes/notes/remove_deprecated_legacy_pulse_builder_commands-61b85da62d82fb8c.yaml b/releasenotes/notes/remove_deprecated_legacy_pulse_builder_commands-61b85da62d82fb8c.yaml deleted file mode 100644 index 5812d352f2ba..000000000000 --- a/releasenotes/notes/remove_deprecated_legacy_pulse_builder_commands-61b85da62d82fb8c.yaml +++ /dev/null @@ -1,77 +0,0 @@ ---- -upgrade: - - | - Removed logic for injecting circuit gate operation into the pulse context. - Removed logic for calling QuantumCircuit into pulse builder context. - - Removed - :func:`~qiskit.pulse.builder.call_gate`, - :func:`~qiskit.pulse.builder.cx`, - :func:`~qiskit.pulse.builder.u1`, - :func:`~qiskit.pulse.builder.u2`, - :func:`~qiskit.pulse.builder.u3`, - :func:`~qiskit.pulse.builder.x`, - :func:`~qiskit.pulse.builder.active_transpiler_settings`, - :func:`~qiskit.pulse.builder.active_circuit_scheduler_settings`, - :func:`~qiskit.pulse.builder.transpiler_settings`, - :func:`~qiskit.pulse.builder.circuit_scheduler_settings` - - :func:`~qiskit.pulse.builder._compile_lazy_circuit_before`, - :func:`~qiskit.pulse.builder._PulseBuilder.transpiler_settings`, - :func:`~qiskit.pulse.builder._PulseBuilder._compile_lazy_circuit`, - :func:`~qiskit.pulse.builder._PulseBuilder._compile_circuit`, - :func:`~qiskit.pulse.builder._PulseBuilder._new_circuit`, - :func:`~qiskit.pulse.builder._PulseBuilder.call_gate` - - Removed arguments :code:`default_transpiler_settings`, :code:`default_circuit_scheduler_settings` - in :func:`~qiskit.pulse.builder.build` - - Removed support of :class:`.QuantumCircuit` type for argument :code:`target` - in :func:`~qiskit.pulse.builder.call` - - Removed support of :class:`.QuantumCircuit` type for argument :code:`subroutine` - in :func:`~qiskit.pulse.builder._PulseBuilder.call_subroutine` - - - - .. code-block:: python - - from qiskit import compiler - from qiskit.providers.fake_provider import FakePerth - backend=FakePerth() - - """Users are encouraged to use gate operation in realm of QuantumCircuits, - not in qiskit-pulse. pulse should exclusively be used to make and call - schedules comprised of pulses like Drag, Gaussian, GaussianSquare etc""" - - #Example: - with pulse.build() as sched: - pulse.play(pulse.Gaussian(150, 0.40, 10) - pulse.play(pulse.GaussianSquare(150, 0.1, 12) - - """This is not encouraged but you can call - QuantumCircuit into a pulse builder context like this:""" - qc = QuantumCircuit(2) - qc.cx(0, 1) - qc = compiler.transpile(qc, backend) - sched = compiler.schedule(qc, backend) - - with pulse.build(backend) as qc_sched: - pulse.call(sched) - - """This example shows how to get pulse gate instructions. - For BackendV2""" - sched = backend.target['x'][(qubit,)].calibration - - # For BackendV1 - sched = backend.defaults().instruction_schedule_map.get('x', (0,)) - - - Modified module doc of :mod:`qiskit.pulse.builder` related with example - code with circuit elements. - - Modified related tests in - :file:`test/python/pulse/test_builder.py`, - :file:`test/python/pulse/test_block.py` - :file:`test/python/pulse/test_builder_v2.py` - :file:`test/python/transpiler/test_calibrationbuilder.py` diff --git a/releasenotes/notes/remove_qiskit_test-84bee228d8d768df.yaml b/releasenotes/notes/remove_qiskit_test-84bee228d8d768df.yaml deleted file mode 100644 index 2ff43bd7f22d..000000000000 --- a/releasenotes/notes/remove_qiskit_test-84bee228d8d768df.yaml +++ /dev/null @@ -1,5 +0,0 @@ ---- -upgrade: - - | - Remove ``qiskit.test``. This includes ``qiskit.test.QiskitTestCase`` (and ``BasicQiskitTestCase``) - which are now for interal unittesting use. diff --git a/releasenotes/notes/symbolic-pulse-disable-validation-19cd8506b3a839b6.yaml b/releasenotes/notes/symbolic-pulse-disable-validation-19cd8506b3a839b6.yaml deleted file mode 100644 index 767721f2fee7..000000000000 --- a/releasenotes/notes/symbolic-pulse-disable-validation-19cd8506b3a839b6.yaml +++ /dev/null @@ -1,19 +0,0 @@ ---- -upgrade: - - | - Validation of :class:`qiskit.pulse.SymbolicPulse` objects can now be disabled. By setting - the class attribute :attr:`qiskit.pulse.SymbolicPulse.disable_validation` to ``False`` - the method :meth:`validate_parameters` will not be triggered for all `SymbolicPulse` objects. - The automatic validation hindered JAX compatibility of the symbolic pulse library, and this - upgrade will make it easier to use Qiskit Pulse with JAX. Moreover, the parameter validation will also be - deactivated when using the :meth:`qiskit.pulse.Schedule.assign_parameters` and - :meth:`qiskit.pulse.ScheduleBlock.assign_parameters` methods. This constitutes a first - step towards a more general parameter validation mechanism, which will be implemented in the future to enable - JAX compatibility of the `ParameterExpression` class, such that parametrized schedules can be generated within a - JAX framework. - - Note that all library pulses automatically called :meth:`validate_parameters`. However, as part - of the upgrade the call was moved directly to the initialization process of - :class:`qiskit.pulse.SymbolicPulse`. While this doesn't change the behaviour of library pulses, - custom symbolic pulses which did not call :meth:`validate_parameters` will now trigger the - method. The new class attribute will allow to easily disable this. diff --git a/releasenotes/notes/update-primitive-job-f5c9b31f68c3ec3d.yaml b/releasenotes/notes/update-primitive-job-f5c9b31f68c3ec3d.yaml deleted file mode 100644 index 11d5ee88684a..000000000000 --- a/releasenotes/notes/update-primitive-job-f5c9b31f68c3ec3d.yaml +++ /dev/null @@ -1,10 +0,0 @@ ---- -upgrade: - - | - Added :class:`.BasePrimitiveJob` class as an abstract job class for Primitives - and made :class:`.PrimitiveJob` inherit :class:`.BasePrimitiveJob` - instead of :class:`.JobV1`. -deprecations: - - | - :meth:`.PrimitiveJob.submit` and :meth:`.PrimitiveJob.wait_for_final_state` - are deprecated and will be removed in the future release.