Raise Python floor to 3.11 and bump backend extras - #1
Merged
Merged
Conversation
added 2 commits
September 3, 2026 23:33
Require Python >=3.11 across packaging, CI, and docs so current PennyLane/Cirq/Braket stacks can install. Pin Qiskit extras to an explicit 2.x range and raise other optional backend floors to verified current majors. Adjust the Qiskit wrapper for removed execute/bind_parameters and classical-register clashes under Qiskit 2.x.
The OAuth app used for push lacks the GitHub `workflow` scope, so `.github/workflows/ci.yml` cannot be updated in this PR. Document the intended matrix change (drop 3.10; keep 3.11+) in the PR description for a follow-up with appropriate credentials.
Contributor
Author
Follow-up: CI Python matrixThis PR raises python-version: ["3.10", "3.11", "3.12"]Pushing that one-line change needs a token with the
Everything else in the PR is already on the branch. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Raises the supported Python floor from 3.10 → 3.11 and bumps optional quantum-backend extras to current majors verified on PyPI (2026-09-04). This is a breaking change for Python 3.10 users: installers on 3.10 will no longer resolve
superquantx.Several backends (PennyLane 0.45, Cirq 1.7, Amazon Braket SDK 1.127) already require Python ≥3.11, so keeping a 3.10 floor was no longer coherent with the extras we advertise.
Python floor
requires-python = ">=3.11"Backend extra floor bumps (verified on PyPI)
pennylanepennylane>=0.45.0,pennylane-lightning>=0.45.0qiskitqiskit>=2.0,<3,qiskit-aer>=0.17.0,qiskit-ibm-runtime>=0.49.0cirqcirq>=1.7.0braketamazon-braket-sdk>=1.127.0tketpytket>=2.18.0,pytket-qiskit>=0.78.0oceandwave-ocean-sdk>=9.0.0,dimod>=0.12.22Qiskit 2.x policy
Qiskit extras now use an explicit 2.x range (
qiskit>=2.0,<3) instead of open-ended>=1.0. The Qiskit wrapper was audited and minimally fixed for APIs removed or changed under 2.x:qiskit.execute→backend.run/Statevectorbind_parameters→assign_parametersAer.get_backendfallback →AerSimulatorcreate_circuitCompatibility table
Added a declared/tested backend version table in
docs/BACKENDS.md.CI workflow note (follow-up needed)
Updating
.github/workflows/ci.yml(drop3.10from the test matrix; optionally add3.13) failed to push because the authenticated OAuth app lacks the GitHubworkflowscope. Please apply that matrix change in a follow-up with a token that hasworkflowscope.docs.ymlalready uses 3.11 and was left unchanged.Test results / gaps
pytest tests/unit/ --no-cov): 73 passed, 14 failed, 2 skipped.NetworkXassertion issues with backends not fully wired in unit mocks__repr__/ pydantic positional-arg expectationspytest-asyncioplugin wiringpennylane,qiskit,cirq,braket,tket,ocean).get_statevector+execute_circuitOK after wrapper fixes.Package version in
src/superquantx/version.pywas not bumped (release process unchanged).Test plan
pip install/uv syncrejects Python 3.10 and succeeds on 3.11+uv sync --extra qiskitresolvesqiskit>=2,<3and runs a small circuit["3.11", "3.12", "3.13"]onceworkflowscope is available