Repository navigation
Standardize CI workflows: tests matrix, lint with format check, publish - #5
Merged
Merged
Conversation
- tests.yaml replaces pytest.yaml: run on pull requests and pushes to main (and on dispatch); matrix is the requires-python floor and newest (3.10, 3.14) x highest/lowest-direct; setup-uv@v6; coverage reported in term-missing and xml form. - lint.yaml replaces ruff.yaml and ty.yaml: ruff check, ruff format --check and ty on the whole tree as separate jobs. - publish.yaml: setup-uv@v6; v* tags only. - pyproject: pin the ruff rule set to ruff's pre-0.16 defaults so the lint job does not drift with ruff releases (0.16 widened the defaults and the unpinned job would report 57 findings today); exclude *.md from ruff so `ruff format` leaves the README's aligned examples alone. - README badges follow the renamed workflows. Co-Authored-By: Claude Mythos 5.1 <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.
Why
The lint job's rule set was whatever the current ruff release considered default. ruff 0.16 widened those defaults substantially, so the unpinned job now reports 57 findings on code that was clean in February. The test workflow ran five interpreters at a single resolution, and the workflows were split across four files with older action majors.
What changes
pytest.yaml: triggers onpull_request, pushes tomain, and manual dispatch. Matrix is therequires-pythonfloor and newest (3.10, 3.14) ×highest/lowest-direct.setup-uv@v6pins the interpreter;uv syncthenpytest --cov=srcwith term-missing and xml reports.ruff.yamlandty.yaml:ruff check .,ruff format --check .andty check, each on pull requests.setup-uv@v6; runs onv*tags only. ThePYPI_API_TOKENsecret is still used;id-token: writeis in place for trusted publishing once a publisher is registered on PyPI.[tool.ruff.lint] select = ["E4", "E7", "E9", "F"]pins the rule set to ruff's pre-0.16 defaults, so the job checks the same things it did before and stops drifting with releases.extend-exclude = ["*.md"]keepsruff format(which formats Python fences in Markdown since 0.16) from collapsing the README's hand-aligned result comments.Verified locally
ruff check .andruff format --check .: clean with ruff 0.17.3.pyteston 3.10 / lowest-direct and 3.14 / highest: 15 passed, 1 xfailed each.ty check: 4 diagnostics (tests/test_coordinate.py49, 53, 55: tuple arithmetic onCoordinatethat the tests exercise on purpose;tests/test_questions.py41). The last ty run in February was green with an older ty; this is tool drift, not a change here, so the ty job will be red until those four are annotated.🤖 Generated with Claude Code