Repository navigation
chore(ruff): extend ruff defaults at pinned 0.17.4 - #166
Merged
Merged
Conversation
Fleet ruff spec PR6 (ai-config ADR-0094). `select` replaced ruff's default rules; `extend-select` keeps them on, so a pin bump that adds defaults is gated by that PR's lint. - ruff.toml byte-identical to ai-config/math; tests/test_ruff_config.py pins the whole parsed file - requirements-ci-test.txt re-vendored from dotfiles master: ruff 0.16.4 -> 0.17.4, also mypy, pyright, coverage, hypothesis - EXE001: drop shebangs; both files run only via `python3 <path>` - SIM115/SIM117 fixed without behaviour change - renovate.json: exclude ruff from automerge, matching the preset Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RMRWKL79zkdDZhRcLHSiJE
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RMRWKL79zkdDZhRcLHSiJE
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
PR6 of the fleet ruff spec (ai-config
docs/superpowers/specs/2026-11-08-fleet-ruff-defaults-design.md, ADR-0094; reference implementation ai-config#358). Rows R11, R12, R13, R17, V1, V3, N1-N5.ruff.tomlis byte-identical to ai-config master and math 127a731c:extend-selectover ruff's defaults (addsC901), so a ruff pin bump that adds default rules is gated by that PR's lint.tests/test_ruff_config.pyis a byte copy of ai-config's and pins the whole parsedruff.toml.requirements-ci-test.txtis re-vendored byte-identical from dotfiles master. This moves more than ruff: ruff 0.16.4 -> 0.17.4, mypy 2.3.1 -> 2.4.1, pyright 1.1.411 -> 1.1.414, coverage 7.15.4 -> 7.17.2, hypothesis 6.165.10 -> 6.170.15, plus ast-serialize, iniconfig, librt, mypy-extensions, nodeenv and pluggy. There are no new package names.ruff check scripts/ tests/reports at 0.17.4, without behaviour change (N1) and without adding any# noqa(R13):scripts/test_metrics.py,tests/test_test_metrics.py): deleted the shebang (R12). Nothing runs either file by path: CI callspython3 scripts/test_metrics.py, and math keeps its own copy, called the same way._tmp):NamedTemporaryFileis now awithblock.delete=Falsekeeps the file, sof.nameis still valid.with.assertRaisesstays innermost.renovate.json: added"!ruff"tomatchPackageNamesof packageRules 0 and 2 (theautomerge-okrules), as in ai-config's preset (R17).xml.etreeinscripts/test_metrics.py) that security-review found. This branch did not add it.Test Plan
make testexits 0 at 498414c: nextest 1188/1188, pytest 207 passed, bats 16/16, lint clean (V1, local).ruff check scripts/ tests/at 0.17.4:All checks passed!.ruff format --check: 13 files already formatted.tests/test_ruff_config.pyagainst the oldselectconfig -> 3 failed, 4 passed. Against the new config -> 7 passed.7 passed. Withextend-ignore = ["F"]added under[lint]->1 failed, 6 passed(test_whole_config_is_pinned).packageRulesstart with the preset's (prefix-equal, 5/5).renovate_preset_sync.pyreadsorigin/main, so it reports etch-cli ok only after merge; it will be re-run then.test_propagates_unexpected_exceptiongoes red with the patched exception removed, and dropping_tmp'swritereddens 6 tests.--cov-fail-under=90). The Rust 81% floor is unaffected (no.rschange).Code review
reviewed-sha: ad709b1
diff-hash: 053c347331fcef56d3d2c8d1c114f4138e3f147293a4ec34650d13c41c8b4b8e
branch: chore/fleet-ruff-defaults
worktree: /home/bruce/git-repos/personal/etch-cli-wt-ruff
reviewers: 5/5
No issues found.
Spec alignment
SKIP: no open plan has a
spec:line in etch-cli. The spec and its## Amendmentslive in ai-config. Manual check against PR6's rows: R11, R12 (EXE001 fixes), R13, R17 and N1-N5 are met. One item needs a spec answer: R12's clause "no file in a gated scope keeps both a shebang and mode100644" is hit, read literally, by the pre-existingtests/pre_push.bats(bats shebang, mode 100644, not checked by ruff, run asbats tests/pre_push.bats). It is reported to ai-config and not changed here.🤖 Generated with Claude Code
https://claude.ai/code/session_01RMRWKL79zkdDZhRcLHSiJE