Skip to content

Add Python 3.13-3.15 support (pyo3 0.30) - #18

Merged
seanmacavaney merged 1 commit into
mainfrom
py315-support
Oct 16, 2026
Merged

seanmacavaney merged 1 commit into
mainfrom
py315-support

Conversation

@seanmacavaney

Copy link
Copy Markdown
Collaborator

Adds Python 3.13, 3.14 and 3.15 support for the Python bindings.

  • python/Cargo.toml: pyo3 0.21.2 → 0.30. 0.21 only supports up to Python 3.12; 0.30 (released 2026-10-13) is the first release that supports Python 3.15.0 final. No source changes were needed in python/src/lib.rs.
  • Drops Python 3.7 and 3.8, since pyo3 0.30 no longer supports 3.8: requires-python becomes >=3.9, the 3.8 classifier is removed, and the wheel matrices are 3.9-3.15 on Linux, Windows and macOS. If you need 3.8 wheels, say so and I'll look at an abi3 build instead.
  • pyproject.toml: adds 3.13-3.15 classifiers.

Checked on Linux x86_64: maturin build --release for Python 3.15.0 works, and indexing then searching 200 synthetic documents returns the same documents and scores as main built with pyo3 0.21 on Python 3.12. I did not run the publish workflow, or build on Windows or macOS.

Not addressed here: .cargo/config.toml sets target-cpu=native, so wheels are built for the CPU of the CI runner. The published bmp 0.2.6 cp312 wheel crashes with Illegal instruction on an AVX2-only machine (AMD Threadripper) in my test. That is worth a separate fix; the wheels from this PR's workflow will have the same problem until then.

🤖 Generated with Claude Code

Bump pyo3 to 0.30, which supports Python 3.15, and extend the wheel matrices.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@seanmacavaney
seanmacavaney merged commit 5939185 into main Oct 16, 2026
1 check passed
@seanmacavaney
seanmacavaney deleted the py315-support branch October 16, 2026 14:10
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