Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepare 1.2.0 release #12933

Merged
merged 12 commits into from
Aug 15, 2024
Merged

Prepare 1.2.0 release #12933

merged 12 commits into from
Aug 15, 2024

Conversation

Cryoris
Copy link
Contributor

@Cryoris Cryoris commented Aug 9, 2024

Summary

Prepare the 1.2.0 release.

Details and comments

Opening this already so people can have a look at whether I missed any typos 🙂 Prelude is currently a draft, maybe we should put some more concrete numbers on the performance improvements and mention some new features.

@Cryoris Cryoris added the on hold Can not fix yet label Aug 9, 2024
@Cryoris Cryoris added this to the 1.2.0 milestone Aug 9, 2024
mod:`qiskit.circuit.random` is not working for some reason I do not understand
@Cryoris Cryoris marked this pull request as ready for review August 12, 2024 09:04
@Cryoris Cryoris requested a review from a team as a code owner August 12, 2024 09:04
@qiskit-bot
Copy link
Collaborator

One or more of the following people are relevant to this code:

@Cryoris Cryoris changed the title [WIP] Prepare 1.2.0 release Prepare 1.2.0 release Aug 12, 2024
Copy link
Member

@mtreinish mtreinish left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We might have had some issues with the migration of release notes. I didn't see: https://github.com/Qiskit/qiskit/blob/main/releasenotes/notes/default-level-2-generate-preset-passmanager-ec758ddc896ae2d6.yaml in 1.2.0, but it definitely should be there.

@Cryoris
Copy link
Contributor Author

Cryoris commented Aug 12, 2024

It seems that PR didn't make it into the stable/1.2 branch, thus the reno is missing 😅

- no optimization level 2 default
- fix peephole wording
releasenotes/notes/1.2/backendv1-d0d0642ed38fed3c.yaml Outdated Show resolved Hide resolved
Comment on lines 7 to 13
- To expose backend information with no access to execution (just a hardware description),
consider constructing a :class:`.Target` directly.
- To provide access to execution capabilities, consider relying on the primitives interfaces
instead.
- Alternatively, to continue providing simultaneous :class:`.Target` (hardware information)
and ``run`` (execution) capabilities, consider moving to :class:`.BackendV2`
(see `the migration guide<https://qisk.it/backendV1-to-V2>`_).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a weird suggestion bulleted list, the normal workflow would be to just have people migrate to BackendV2. Like I get there is a narrative around using primitives for execution, but migrating to BackendV2 isn't about execution and a target. You can think of it as providing an interface for building targets. Just saying build a target isn't useful if you're maintaining a provider.

releasenotes/notes/1.2/prepare-1.2.0-b19149907f9aae29.yaml Outdated Show resolved Hide resolved
releasenotes/notes/1.2/prepare-1.2.0-b19149907f9aae29.yaml Outdated Show resolved Hide resolved
Comment on lines 1 to 5
---
fixes:
- |
Fixed a missing decorator in :class:`.C3SXGate` that made it fail if :meth:`.C3SXGate.to_matrix`
was called. The gate matrix is now return as expected.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't we delete these and the other 1.1.x release notes that are erroneously being detected as part of the 1.2.0 release since we've already documented the fixes?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, they're already deleted locally, I didn't push it to not interrupt CI on that last PR 🙂

@@ -13,25 +13,19 @@ features_misc:
decreases the memory overhead of a :class:`.CircuitInstruction` and
:class:`.DAGOpNode` object at the cost of decreased runtime on multiple
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This probably should be "increased runtime" since it gets slower when you build without a cache.

@@ -1,7 +1,13 @@
---
deprecations_providers:
- |
The `Qobj` structure and related classes are now deprecated, they were introduced as part of the `BackendV1` workflow and are no longer necessary for interacting with :class:`.BackendV2` backends. Remote backend interaction should be done via `QPY` or `OpenQASM` instead.
The Qobj structure and related classes (see :mod:`qiskit.qobj`) are now deprecated. They were
introduced as part of the :class:`.BackendV1` workflow and are no longer necessary for
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It was actually part of BaseBackend (i.e. BackendV0) the concrete difference between BaseBackend and BackendV1 was BaseBackend only took a Qobj as the input for job submission while BackendV1 used a QuantumCircuit. But this is probably just a historical default and not worth updating here.

Comment on lines 6 to 7
interacting with :class:`.BackendV2` backends. Remote backend interaction should be done via
QPY (see :mod:`qiskit.qpy`) or OpenQASM (see :mod:`qiskit.qasm2` and :mod:`qiskit.qasm3`) instead.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would say:

Suggested change
interacting with :class:`.BackendV2` backends. Remote backend interaction should be done via
QPY (see :mod:`qiskit.qpy`) or OpenQASM (see :mod:`qiskit.qasm2` and :mod:`qiskit.qasm3`) instead.
interacting with :class:`.BackendV2` backends. :class:`.QuantumCircuit` serialization should be done via
QPY (see :mod:`qiskit.qpy`) or OpenQASM (see :mod:`qiskit.qasm2` and :mod:`qiskit.qasm3`) instead.

then ``max_operands`` will default to 4 and a random circuit with a random gate distribution will
be generated. If both ``num_operand_distribution`` and ``max_operands`` are specified at the same
time then ``num_operand_distribution`` will be used to generate the random circuit.

Example usage::
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could use the plot directive here if we want a circuit visualization showing the random circuit instead of just the code.

prelude: >
The Qiskit 1.2.0 release focuses mainly on improving performance
and quality of the compiler. Also, it is the last release supporting
Python 3.8. By Qiskit 1.3.0 the minimal required Python version
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Python 3.8. By Qiskit 1.3.0 the minimal required Python version
Python 3.8. In Qiskit 1.3.0 the minimal required Python version

Copy link
Member

@mtreinish mtreinish left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This LGTM now, thanks for handling this release @Cryoris!

@mtreinish mtreinish removed the on hold Can not fix yet label Aug 15, 2024
@mtreinish mtreinish enabled auto-merge August 15, 2024 19:00
@mtreinish mtreinish added this pull request to the merge queue Aug 15, 2024
Merged via the queue into Qiskit:stable/1.2 with commit 443ece5 Aug 15, 2024
14 checks passed
@Cryoris Cryoris deleted the prepare-1.2.0 branch August 16, 2024 07:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants