⚡ ci: move Python 3.15 tests off the per-PR critical path (#736) - #738
Merged
Conversation
Python 3.15 is a prerelease with no prebuilt native-extension wheels, so tox-uv compiles cryptography/pydantic-core from source and the job runs ~3x slower (~137s vs ~45s) — the long pole on every PR. Drop 3.15 from the per-PR test matrix and run it in a dedicated `test-py315` job on pushes to main instead. 3.14 already covers newest-stable behavior on every PR; 3.15 breakage still surfaces on each merge. Reversible in one edit once cp315 wheels ship. No branch-protection change needed: the required `test` check is the summary aggregation job, not an individual matrix leg. Spec Kit artifacts under specs/002-ci-py315-speedup/. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0166iS8CRLfRiyqCBaYtRDaR
|
Profile summary: |
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.
Closes #736.
Problem
Python 3.15 is a prerelease with no prebuilt native-extension wheels, so
tox-uvcompilescryptography/pydantic-corefrom source. Its per-PRtestleg takes ~137s vs ~45s for stable versions — the long pole on every PR, with no added coverage benefit (3.14 already exercises newest-stable behavior).Change (one file:
.github/workflows/ci.yml)3.15from the per-PRtestmatrix → PR gate now tops out at 3.14t (~40–60s).test-py315job gated onif: github.event_name == 'push'→ 3.15 still runstox -e py315on every merge tomain, preserving early-warning coverage off the critical path."3.15"back to the matrix and deletetest-py315once cp315 wheels ship upstream.Why no branch-protection change
The required
testcheck is the summary aggregation job (tests-complete,name: test), not an individual matrix leg — verified viagh api .../branches/main/protection. Removing3.15from the matrix leaves the required check intact and reporting.Verification
uvx zizmor .github/workflows/— clean, no new findings.main) confirm once CI runs on this PR and after merge.Spec Kit
Built via the full Spec Kit workflow (specify → clarify → plan → tasks → analyze → implement); artifacts under
specs/002-ci-py315-speedup/. Clarified decision: post-merge onmain(no cron, no per-PR build caching).🤖 Generated with Claude Code