Skip to content

feat(python): support CPython 3.9-3.13 with per-version wheels - #2

Merged
muthmann merged 2 commits into
mainfrom
feature/python-version-support
Mar 18, 2026
Merged

feat(python): support CPython 3.9-3.13 with per-version wheels#2
muthmann merged 2 commits into
mainfrom
feature/python-version-support

Conversation

@muthmann

@muthmann muthmann commented Mar 18, 2026

Copy link
Copy Markdown
Owner

Summary

  • Drop EOL Python 3.8, add Python 3.13 support
  • Upgrade to PyO3 0.23 + numpy crate 0.23 (Bound API migration in lib.rs)
  • Release workflow now builds wheels for every supported interpreter (3.9–3.13) on each OS
  • CI test matrix extended to include Python 3.13

Changes

  • evt3-python/Cargo.toml: pyo3 0.20→0.23, numpy 0.20→0.23
  • evt3-python/src/lib.rs: GIL Refs → Bound API (~15 lines of type signature changes)
  • evt3-python/pyproject.toml: requires-python ≥3.9, added 3.13 classifier
  • .github/workflows/ci.yml: added 3.13 to Python test matrix
  • .github/workflows/release.yml: per-interpreter wheel builds, added Rust toolchain step

Test plan

  • cargo check -p evt3-python compiles clean
  • cargo fmt --all -- --check passes
  • cargo clippy -p evt3-python -- -D warnings passes
  • CI passes on all Python versions (3.9–3.13)
  • Release workflow builds wheels correctly (verify on tag push)

Drop EOL Python 3.8, add Python 3.13 support. Upgrade to PyO3 0.23
and numpy crate 0.23 with Bound API migration. Release workflow now
builds wheels for every supported interpreter on each OS.
GitHub runner package index can be stale, causing 404 errors when
fetching transitive dependencies like libcurl4-openssl-dev.
@muthmann
muthmann merged commit de2561c into main Mar 18, 2026
14 checks passed
@muthmann
muthmann deleted the feature/python-version-support branch March 18, 2026 10:16
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