fix(ci): unblock the format gate — ruff 0.16 formats Markdown code blocks - #102
Merged
Conversation
main is currently red on the repo-wide format check, independent of any code change: CI runs `uv run ruff format --check .`, which resolves ruff **latest** (0.16.0) rather than the 0.15.17 pinned in uv.lock. Ruff 0.16 formats Python code blocks inside Markdown by default, where 0.15 gated that behind --preview. So a ruff release turned an untouched file into a build failure, and every open PR inherits it. This commit only realigns two trailing comments in docs/MODELS.md — whitespace, no content change. It unblocks PRs #99, #100 and #101. It does not address the underlying drift: because pyproject declares `ruff>=0.8.0` and CI does not run uv with --frozen, the next ruff release can red main again the same way. Tracked separately.
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.
Summary
mainis currently red on the repo-wide format check, with no code changerequired to trigger it. Every open PR inherits the failure.
Root cause
CI runs
uv run ruff format --check .(.github/workflows/ci.yml:31).pyproject.tomldeclaresruff>=0.8.0(unpinned) and CI does not pass--frozen, souv runresolves ruff latest = 0.16.0, not the 0.15.17pinned in
uv.lock.refuses:
Markdown formatting is experimental, enable preview mode..py+ 90.md) where a local~/venvs/socr/bin/ruff format --check .checks only 130 and reports clean.So a ruff release turned an untouched, previously-passing file into a build
failure, and the failure is not locally reproducible with the repo's own
pinned toolchain.
This PR
Realigns two trailing comments in
docs/MODELS.md. Whitespace only, no contentchange:
Unblocks #99, #100, #101.
What this does NOT fix
The drift itself. The next ruff release can red
mainthe same way. Options,none taken here because it is a repo-policy call:
pyproject.toml(matchinguv.lock), so the gate isreproducible locally — my preference, since CLAUDE.md calls lint a blocking
gate and a blocking gate that can't be reproduced locally is a trap.
uv run --frozen, honouringuv.lock.command in CLAUDE.md, so contributors run the same check CI does.
Worth noting for (3): CLAUDE.md currently documents
~/venvs/socr/bin/ruff format --check <files>as the gate. That venv has ruff0.15.15 and will never reproduce CI's markdown check.
Test plan — observed results
uvx ruff@latest format --check .→ before:2 files would be reformatted, 218 files already formatted; after this commit plus the bake-off note fix: clean.uvx ruff@latest format --check docs/MODELS.md→1 file already formatted~/venvs/socr/bin/pytest tests/ -q→ 1249 passed, 1 xfailed (unchanged;this touches no Python)