chore(ci): test on Python 3.11 and 3.12 - #31
Merged
Conversation
pyproject declares requires-python = ">=3.11" and the classifiers list both 3.11 and 3.12, but CI only ever ran on 3.12 — so a 3.11-specific regression (a dep without 3.11 wheels, a 3.12-only syntax slip) would ship unnoticed. Run the full gate as a matrix across both versions. fail-fast is off so one version breaking still surfaces the other's result. Verified locally that ruff + mypy + the full pytest suite pass on 3.11.10 before adding the job.
Branch protection requires a status check named exactly 'pytest + ruff + mypy', but a matrix job's check is suffixed per python version. Rename the matrix job to 'test (py…)' and add a fixed-name 'gate' job that needs the matrix and is green only when every version passed — so the required context stays stable as the supported-version list changes.
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.
What
pyprojectdeclaresrequires-python = ">=3.11"and the classifiers list both 3.11 and 3.12, but CI only ran on 3.12 — a 3.11-specific regression (a dependency without 3.11 wheels, a 3.12-only syntax slip) would ship unnoticed.Run the full gate (ruff + mypy + pytest, with the same
[dev,paper-analysis,claim-extraction,pdf]install and spaCy model) as a matrix across 3.11 and 3.12.fail-fast: falseso a break on one version still reports the other.Test plan
ruffclean,mypyclean,pytest -q --strict-markers→ 553 passed, 14 skipped (identical to 3.12)