Skip to content

Raise Python floor to 3.11 and bump backend extras - #1

Merged
Superagentic-AI merged 2 commits into
mainfrom
bump-python-311-backend-floors
Sep 4, 2026
Merged

Superagentic-AI merged 2 commits into
mainfrom
bump-python-311-backend-floors

Conversation

@Superagentic-AI

Copy link
Copy Markdown
Contributor

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"
  • Classifiers / ruff / black / mypy targets updated (3.9/3.10 removed)
  • README, install/quickstart docs, and contributing/dev docs no longer advertise 3.10
  • Core scientific floors left 3.11-compatible (do not force NumPy/SciPy majors that require Python ≥3.12)

Backend extra floor bumps (verified on PyPI)

Extra New declared floor Latest verified
pennylane pennylane>=0.45.0, pennylane-lightning>=0.45.0 0.45.1 / 0.45.0
qiskit qiskit>=2.0,<3, qiskit-aer>=0.17.0, qiskit-ibm-runtime>=0.49.0 2.5.2 / 0.17.2 / 0.49.0
cirq cirq>=1.7.0 1.7.0
braket amazon-braket-sdk>=1.127.0 1.127.0
tket pytket>=2.18.0, pytket-qiskit>=0.78.0 2.18.1 / 0.78.0
ocean dwave-ocean-sdk>=9.0.0, dimod>=0.12.22 9.4.0 / 0.12.22

Qiskit 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.executebackend.run / Statevector
  • bind_parametersassign_parameters
  • Aer.get_backend fallback → AerSimulator
  • classical-register name clash when measuring circuits created by create_circuit

Compatibility table

Added a declared/tested backend version table in docs/BACKENDS.md.

CI workflow note (follow-up needed)

Updating .github/workflows/ci.yml (drop 3.10 from the test matrix; optionally add 3.13) failed to push because the authenticated OAuth app lacks the GitHub workflow scope. Please apply that matrix change in a follow-up with a token that has workflow scope. docs.yml already uses 3.11 and was left unchanged.

Test results / gaps

  • Core unit tests (pytest tests/unit/ --no-cov): 73 passed, 14 failed, 2 skipped.
  • Failures look pre-existing / environment-related, not introduced by the floor bump:
    • Braket/Ocean tests: mock/NetworkX assertion issues with backends not fully wired in unit mocks
    • Circuit __repr__ / pydantic positional-arg expectations
    • Async client tests needing pytest-asyncio plugin wiring
  • All optional extras installed successfully at the new floors (pennylane, qiskit, cirq, braket, tket, ocean).
  • Qiskit 2.5.2 smoke test: get_statevector + execute_circuit OK after wrapper fixes.
  • Full integration / hardware suites not run.

Package version in src/superquantx/version.py was not bumped (release process unchanged).

Test plan

  • Confirm pip install / uv sync rejects Python 3.10 and succeeds on 3.11+
  • uv sync --extra qiskit resolves qiskit>=2,<3 and runs a small circuit
  • Spot-check other extras install on 3.11
  • Follow-up PR: CI matrix ["3.11", "3.12", "3.13"] once workflow scope is available
  • Optionally triage the 14 pre-existing unit failures separately

Shashi Jagtap 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.
@Superagentic-AI

Copy link
Copy Markdown
Contributor Author

Follow-up: CI Python matrix

This PR raises requires-python to >=3.11, but .github/workflows/ci.yml still has:

python-version: ["3.10", "3.11", "3.12"]

Pushing that one-line change needs a token with the workflow scope (the shared gh OAuth login and the GitHub plugin both lack it). Please either:

  1. Edit ci.yml on this branch in the GitHub UI to ["3.11", "3.12"], or
  2. Push that change from an account/token that can update workflow files.

Everything else in the PR is already on the branch.

@Superagentic-AI
Superagentic-AI merged commit d485c65 into main Sep 4, 2026
10 of 12 checks passed
@Superagentic-AI
Superagentic-AI deleted the bump-python-311-backend-floors branch September 4, 2026 00:02
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.

1 participant