Skip to content

Add Python 3.15 support #33

Description

@CarlKCarlK

Track support for Python 3.15 in bed-reader.

Scope:

  • Update Python classifiers and any version constraints.
  • Add Python 3.15 to CI and wheel/artifact verification.
  • Exercise both the Python API and Rust-backed paths on Python 3.15.

Version policy:

  • Target Python 3.12-3.15 for the release adding Python 3.15.
  • Drop Python 3.10, whose end of life is expected around October 2026, and Python 3.11 in line with Scientific Python SPEC 0's three-year support window.
  • Revisit the floor annually: add the newest Python and drop versions outside that three-year window.
  • Reassess dependency minimums and remove compatibility constraints that exist only for Python 3.10 or 3.11.

Release workflow modernization:

  • Bring publication workflow up to the current FaST-LMM/PySnpTools standard.
  • Add a tag-triggered release workflow that verifies the tag matches the package version.
  • Run the Rust test/clippy checks and Python test suite against the tagged source.
  • Build the maturin wheels and sdist, then clean-install and smoke-test the exact artifacts before publication.
  • Validate the wheel rebuilt from the sdist and fail on mismatches.
  • Publish to PyPI only after artifact tests pass, using Trusted Publishing and attestations.
  • Pin action/tool versions consistently with the modern workflows.
  • Decide separately whether the corresponding Rust crate should be published from the same release and add an explicit crates.io validation/publication step if so.
  • Resolve and enforce the Python/Rust package version relationship before release.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions