From 50636d37a32b2c92fcd196389682d6b3e83c3979 Mon Sep 17 00:00:00 2001 From: 1bcMax Date: Sat, 25 Jul 2026 22:09:21 -0700 Subject: [PATCH] =?UTF-8?q?fix(ci):=20pin=20ruff=20=E2=80=94=20an=20unpinn?= =?UTF-8?q?ed=20linter=20broke=20CI=20with=20no=20code=20change?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CI has been red since 2026-07-21 on every branch, including ones that touch no Python at all. Nothing in the repo changed: ruff is installed as ruff>=0.1.0, so CI resolves whatever is newest, and 0.16.0 reports 1903 errors here — mostly UP006/UP045 typing modernisation that 0.14.x did not raise under the same target-version = "py39". Verified by running 0.16.0 against main: 1903 errors. 0.14.11 on the same tree: clean. The tree is fine; the linter moved. black is already pinned exactly, with the comment "Pin version for consistent formatting". A linter needs that guarantee for the same reason and did not have it. This applies the repo's own convention to ruff. Deliberately NOT fixing the 1903 findings. Adopting 0.16.0's rules is a real change worth making on purpose, in a PR that can be reviewed as such — not absorbed silently to turn CI green. --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 4a23eb0..0cd7b9e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ dev = [ "pytest-asyncio>=0.21.0", "black==24.10.0", # Pin version for consistent formatting "mypy>=1.0.0", - "ruff>=0.1.0", + "ruff==0.14.11", # Pin version: an unpinned linter breaks CI with no code change ] anthropic = [ "anthropic>=0.40.0",