chore: align ruff version between CI and local tooling#34
Merged
Conversation
The dev dependency was a floor-only ruff>=0.6 while the pre-commit hook hard-pinned v0.6.9, so local tooling and CI resolved ruff versions almost a year apart. Pin both to 0.15.11 (a single source of truth) and record it in the lockfile. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
One-time alignment after pinning ruff to 0.15.11. The newer formatter relocates assertion messages; no behavior change. Co-Authored-By: Claude Opus 4.8 <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 drift
This repo had two ruff installs at very different versions, each acting as a source of truth:
.pre-commit-config.yamlhard-pinned theruff-pre-commithook atrev: v0.6.9, which is what thelint-and-testCI job runs (CI is the enforced source of truth).pyproject.tomldeclared the dev dependency asruff>=0.6(floor only), souvresolved the newest release (0.15.11), which is whatuv run ruff ...and editors use locally.Those two resolved almost a year apart. Ruff's formatter changed across that gap, so the same file got formatted one way locally and a different way in CI, producing CI-only format failures that did not reproduce with local
uv run ruff.What changed
rev, and the dev dependency as an exactruff==0.15.11(matching the hook exactly, so there is one pinned version).uv.lockto recordruff==0.15.11.pre-commit run --all-files). No behavior change.The ruff lint hook (with
--fix) passed clean with no new rule violations, so no[tool.ruff.lint]ignore additions were needed and the config sections are untouched. The format hook reformatted a single file (a relocated assertion message intests/test_sync.py).The bulk-but-small mechanical reformat is isolated in its own
style:commit, separate from thechore:version-pin commit, so the version change is reviewable on its own.Verification
uv run pre-commit run --all-filesis green (all hooks Passed), and a second consecutive run leaves the tree clean.uv run pytest: 650 passed.🤖 Generated with Claude Code