From f1ce47003630af6cfa8bc01ba944321ba697f6db Mon Sep 17 00:00:00 2001 From: Sean Whalen <44679+seanthegeek@users.noreply.github.com> Date: Fri, 24 Jul 2026 21:54:04 -0400 Subject: [PATCH] Pin ruff exactly, matching the existing pyright pin rationale MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit CI installs the [build] extra fresh on every run, and ruff was the one lint tool left unpinned. ruff 0.16.0 (released this week) began flagging this codebase's str.format() house style, so every PR started failing lint on lines it never touched. Pin to 0.15.21 — the version the codebase is clean under — with the same bump-deliberately comment pyright carries. Upgrading to 0.16 and converting to f-strings can be its own PR. Co-Authored-By: Claude Fable 5 --- pyproject.toml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 7f3f0502..6a276d1c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -91,7 +91,12 @@ build = [ # stays on requests because its permissive-TLS fallback is built on # urllib3's HTTPAdapter machinery. "requests>=2.22.0", - "ruff", + # Pinned exactly for the same reason as pyright: ruff's default rule + # set evolves between releases (0.16.0 began flagging this codebase's + # str.format() style), so an unpinned version breaks CI without any + # code change. Bump deliberately and fix any new findings in the same + # PR as the bump. + "ruff==0.15.21", "sphinx", "sphinx_rtd_theme", ]