Skip to content

chore: bump minimum Python to 3.11 and support through 3.14#66

Merged
charlesbmi merged 4 commits into
mainfrom
bump-python-3.11-3.15
Jun 15, 2026
Merged

chore: bump minimum Python to 3.11 and support through 3.14#66
charlesbmi merged 4 commits into
mainfrom
bump-python-3.11-3.15

Conversation

@charlesbmi

@charlesbmi charlesbmi commented Jun 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Bump requires-python from >=3.10,<3.14 to >=3.11,<3.15
  • Update PyPI classifiers, Ruff target version, CMake minimum Python, and wheel CI matrix
  • Refresh uv.lock for the new supported range

Test plan

  • CI passes (CPU tests, GPU tests, docs, wheels)
  • Wheel build matrix covers 3.11–3.14

Made with Cursor

Raise requires-python to >=3.11,<3.15 and align build tooling, wheel
matrices, and lockfile with the updated supported range.

Co-authored-by: Cursor <cursoragent@cursor.com>
@qodo-code-review

qodo-code-review Bot commented Jun 15, 2026

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0) 🎨 UX issues (0) 🔗 Cross-repo conflicts (0)

Grey Divider


Action required

1. Wheel targets out of sync ✓ Resolved 🐞 Bug ☼ Reliability
Description
The PR raises the minimum Python to 3.11 (and CMake now requires Python>=3.11), but cibuildwheel is
still configured to build a cp310 wheel, which will conflict with the new build requirements. The PR
also adds Python 3.14 to wheel import/smoke-test matrices, but cibuildwheel doesn’t build cp314
wheels, so the 3.14 install step will not find a matching artifact.
Code

CMakeLists.txt[R33-34]

+# search for Python >= 3.11 including the Development.Module component required by nanobind
+find_package(Python 3.11 COMPONENTS Interpreter Development.Module REQUIRED)
Evidence
CI now tests wheels on Python 3.14 and installs a wheel matching the interpreter’s cp-tag, but the
cibuildwheel configuration in the PR branch still only builds cp310–cp313. Separately, the PR
updates CMake to require Python 3.11+, making a cp310 wheel target incompatible with the new build
requirements.

.github/workflows/wheels.yml[54-81]
pyproject.toml[230-236]
pyproject.toml[20-21]
CMakeLists.txt[33-35]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The repository’s cibuildwheel build targets are inconsistent with the new supported Python range.
- `cp310` is still listed as a wheel build target, but the project now requires Python >= 3.11 and CMake explicitly requires Python 3.11+, so the `cp310` wheel build is expected to fail.
- `cp314` is not listed as a wheel build target, but the wheels workflow now tests installation/import on Python 3.14, so the test job will not find a `cp314` wheel to install.

## Issue Context
- Wheel tests now include Python 3.14.
- Build system (CMake) requires Python >= 3.11.
- cibuildwheel build list still includes cp310 and omits cp314.

## Fix Focus Areas
- pyproject.toml[230-236]
 - Remove `cp310-manylinux_x86_64`.
 - Add `cp314-manylinux_x86_64`.
 - Ensure the list matches the supported range (cp311–cp314).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

Comment thread CMakeLists.txt
@qodo-code-review

qodo-code-review Bot commented Jun 15, 2026

Copy link
Copy Markdown

Code review by qodo was updated up to the latest commit 855e63f

charlesbmi and others added 3 commits June 15, 2026 11:55
Update cibuildwheel build targets for Python 3.11–3.14 and bump the
action to v3.3 so cp314 wheels are produced.

Co-authored-by: Cursor <cursoragent@cursor.com>
@charlesbmi charlesbmi merged commit 83a12e6 into main Jun 15, 2026
12 of 14 checks passed
@charlesbmi charlesbmi deleted the bump-python-3.11-3.15 branch June 15, 2026 21:32
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