Lower minimum Python to 3.11; release 0.1.1#32
Merged
Conversation
The codebase uses no 3.12-only language features (no PEP 695 generic syntax, no `type` aliases). Verified the full test suite (237 tests, 100% coverage) passes on Python 3.11.15. Updates the floor in pyproject.toml, .python-version, ruff target, ty environment, the setup-uv composite action default, and the CI matrix. The drift-enforcement tests in test_docs_consistency.py keep these in lockstep. uv.lock regenerated to add cp311 wheels and the tomli dependency that pytest-cov needs on 3.11.
splch
added a commit
to qiskit-community/qiskit-ionq
that referenced
this pull request
Apr 30, 2026
…nastics The upstream ionq-core 0.1.1 (ionq/ionq-core-python#32) lowers its Python floor from 3.12 to 3.11. Match it: bump qiskit-ionq's floor to 3.11 and remove every workaround the conditional install required. - setup.py: python_requires=">=3.11"; drop the 3.10 classifier (3.11/12/13 remain). - requirements.txt: ionq-core>=0.1.1 (unconditional, no PEP 508 marker). - qiskit_ionq/__init__.py: import IonQSession unconditionally and add it to __all__ unconditionally; drop the try/except ImportError shim. - test/test_ionq_session_v2.py: drop pytest.importorskip("ionq_core") and the now-unneeded `# noqa: E402` on the IonQSession import. - qiskit_ionq/session.py: drop the "Requires Python >=3.12" docstring note. - MIGRATION_2.0.md: 1.1.0 requires Python >=3.11; 2.0 will require >=3.12; 3.10 is the only version dropped in 1.1.0. - .github/workflows/ci.yml: matrix is ["3.11", "3.12", "3.13"]. - tox.ini: drop py310 from envlist and gh-actions. Net: ~25 lines removed (the conditional import, the importorskip, the noqa, the docstring qualifier, the 3.10 matrix entries) for a much simpler 1.1.0 surface. Depends on ionq-core 0.1.1 being released first.
7 tasks
Cynocracy
approved these changes
Apr 30, 2026
splch
added a commit
to qiskit-community/qiskit-ionq
that referenced
this pull request
Apr 30, 2026
ionq-core 0.1.1 is not yet released to PyPI; the upstream PR ionq/ionq-core-python#32 (which contains the Python 3.11 floor) is still open. Pin the dependency to the branch via a PEP 508 git URL so this PR's CI can exercise the real integration without waiting for the upstream release. Switch back to `ionq-core>=0.1.1` once the upstream PR merges and ships.
guenp
approved these changes
Apr 30, 2026
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
typealiases), and the full test suite passes on 3.11.pyproject.toml(requires-python, classifier list, rufftarget-version, ty environment),.python-version,setup-uvaction default, and the CI matrix (now["3.11", "3.12", "3.13", "3.14"], with coverage gated on the 3.11 floor).uv.lockto add cp311 wheels and thetomlidependency thatpytest-covneeds on 3.11.CHANGELOG.mdentry under Keep a Changelog format.Test plan
uv run ruff checkuv run ruff format --checkuv run ty check ionq_core/uv run pytestlocally on Python 3.11.15 (237 passed, 100% branch coverage;test_docs_consistencypasses after the mirrored updates)Important
Most code in
ionq_core/is auto-generated and overwritten on regeneration.See CONTRIBUTING.md for which files are safe to edit.