Extend Python support to 3.14; test min/max in CI#1490
Open
dimitri-yatsenko wants to merge 1 commit into
Open
Conversation
datajoint-python declared support for 3.10–3.13 but CI (a single pixi environment) only exercised 3.13, and 3.14 — released 2025-10 — was excluded. This closes the ceiling gap and makes the declared range actually tested. - pyproject.toml: bump requires-python and the pixi python dependency to ">=3.10,<3.15" (adds 3.14); add per-version PyPI classifiers for 3.10–3.14. - pyproject.toml: add version-pinned pixi test environments (test-py310, test-py314) so CI can run the suite on both ends of the range. Each solves independently, since a solve-group cannot span Python versions. - .github/workflows/test.yaml: run the containerized test job as a matrix over [test-py310, test-py314]. Note: 3.10 reaches end-of-life 2026-10; dropping it (min → 3.11) is a follow-up, kept out of this change to avoid a breaking bump.
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.
Motivation
An audit of supported Python versions against the official EOL schedule found two gaps:
>=3.10) ✅Two problems: (1) the ceiling lagged a full release behind — 3.14 has been out since Oct 2025 but
requires-python = ">=3.10,<3.14"blocked it; and (2) although the package claimed 3.10–3.13, the pixi-based test job resolved a single interpreter (3.13), so the declared floor was never exercised.Changes
pyproject.tomlrequires-pythonand the pixipythondependency →>=3.10,<3.15(adds 3.14).Programming Language :: Python), so the supported range is discoverable on PyPI.test-py310andtest-py314(each solves independently — a solve-group can't span Python versions)..github/workflows/test.yaml— run the containerized test job as a matrix over[test-py310, test-py314], so both ends of the supported range are validated on every push/PR.Notes / follow-ups
target-version/mypypython_version) is a small breaking bump left as a follow-up rather than folded in here.unit-testsjob (fast feedback) now resolves to the highest supported version (3.14); the full matrix covers min+max.pixi.lockis re-solved in CI (locked: false), so no committed lock update is needed; the PR's own CI run validates that all dependencies resolve on both 3.10 and 3.14.Verification
pyproject.tomlparses as valid TOML with the intendedrequires-python, classifiers, and pixi environments.check-yaml,check-toml, andactionlintpre-commit hooks pass on the changed files. Cross-Python dependency resolution is validated by this PR's CI matrix.