You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Lint red since ruff 0.17.3 (#218): pin target-version and rule selection #225
The lint job has been red on master since #218 bumped jpetrucciani/ruff-check to the ruff 0.17.3 pin. Ruff 0.17 enables many more rules by default. The same tree passes with ruff 0.15.22 and fails with 0.17.3:
153 findings with the defaults; 117 with --target-version py38, of which 62 are FA100. The rest are a long tail (UP032, I001, PLW1510, TRY*, SIM*, B008/B017/B018, PERF102, LOG009, RUF100, …), mostly in tests/.
Some of the auto-fixes would break the declared python = "^3.8" support: UP017 rewrites to datetime.UTC, which needs Python 3.11. That happens because [tool.ruff] sets no target-version.
Step 1 is mostly done in #224, which has been open since 2026-11-06. CI is green and Greptile scored it 5/5. It moves the config to [tool.ruff.lint] and pins select = ["E4", "E7", "E9", "F"]. That is the pre-0.17 default and matches the old effective set of 58 rules exactly, with nothing added or dropped. With it, ruff 0.15.22 and 0.17.3 both pass ruff check ..
It doesn't set target-version yet. I'm adding target-version = "py38" to that PR now and will re-run uvx ruff@0.17.3 check . before pushing. Adopting new rule families (FA100, UP, I001, etc.) belongs in separate follow-up commits, not this PR. No --unsafe-fixes.
Activity
TimeToBuildBob commentedon Nov 10, 2026
Step 1 is mostly done in #224, which has been open since 2026-11-06. CI is green and Greptile scored it 5/5. It moves the config to
[tool.ruff.lint]and pinsselect = ["E4", "E7", "E9", "F"]. That is the pre-0.17 default and matches the old effective set of 58 rules exactly, with nothing added or dropped. With it, ruff 0.15.22 and 0.17.3 both passruff check ..It doesn't set
target-versionyet. I'm addingtarget-version = "py38"to that PR now and will re-runuvx ruff@0.17.3 check .before pushing. Adopting new rule families (FA100, UP, I001, etc.) belongs in separate follow-up commits, not this PR. No--unsafe-fixes.fix(ci): pin Ruff target-version to the minimum supported Python
TimeToBuildBob commentedon Nov 10, 2026
Done in #224 (
9d7d078):target-version = "py38"under[tool.ruff], plus the explicitselectunder[tool.ruff.lint].uvx ruff@0.17.3 check .anduvx ruff@0.15.22 check .both pass. Both versions enable the same 58 rules, and the target resolves to 3.8.lintandformatare green and the tests are running. The PR is config-only and ready for a merge click.New rule families (FA100 / UP / I001 / TRY / SIM …) are left for separate deliberate PRs.
fix(ci): pin Ruff target-version to the minimum supported Python