Repository navigation
👷 ci: test on Python 3.10, 3.14, and 3.15 - #83
Merged
Merged
Conversation
Replace 3.13 with 3.14 and 3.15 in the test matrix, so the PEP 814 built-in frozendict path (and JAX's native support for it) is tested. The newest-dependencies canary moves to 3.15 and the coverage artifact to 3.14. The lock is bumped for jax/jaxlib (0.11.2 on 3.14+) and for every package whose locked version had no cp314/cp315 wheels (numpy, scipy, ml-dtypes, opt-einsum, markupsafe, pyyaml, watchdog, librt), so no CI job builds from source. 3.10 resolutions are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #83 +/- ##
========================================
Coverage ? 100.00%
========================================
Files ? 3
Lines ? 98
Branches ? 0
========================================
Hits ? 98
Misses ? 0
Partials ? 0 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
pywin32 311 (via ipykernel -> jupyter-core in the dev group, which the nox test session installs) has no cp315 wheels and cannot be built from source, failing the 3.15 Windows job. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
The test matrix is now 3.10, 3.14, 3.15 (replacing 3.13), on Linux, macOS and Windows. This is the first time CI tests the code path that uses the PEP 814 built-in
frozendictwith JAX's native pytree support. #82's parity tests also run against the real built-in on 3.15.Changes
ci.yml["3.10", "3.14", "3.15"].tests-latestcanary, which installs the newest dependencies, now runs on 3.15. It exists to catch upstream breakage early, which matters most on the newest Python.uv.lockuv sync --lockedwould have failed.ipykernel→jupyter-corein thedevgroup, which the nox test session installs, and it is what failed the first 3.15 Windows run. Every numeric package now has cp315 wheels for Linux x86_64, macOS arm64 and Windows amd64.zensicalin thedocsgroup, which is part ofdev. Both compiled cleanly in local runs. pyyaml also falls back to pure Python if its C extension fails to build.pyproject.toml: adds the 3.14 and 3.15 classifiers and removes a duplicated 3.10 line._core.py: the comment on thesys.version_info >= (3, 15)branch said CI didn't exercise it, which is no longer true. Thepragma: no coverstays because each job's coverage report only sees one side of the branch.Verification (local, macOS arm64)
For each Python version I ran the CI steps in a fresh environment:
uv sync --locked --no-default-groups --group nox --group testfollowed bynox -s test.frozendictuv sync --locked --all-groups --no-build --dry-run --python-platform …succeeds for every OS × Python combination in the matrix, except for the pyyaml and watchdog source builds noted above. The docs workflow's locked install andzensical buildalso still work, andprek run --all-filespasses.🤖 Generated with Claude Code