Ruff now catches version-specific syntax errors (match statements, walrus operators) and compiler-stage errors (duplicate parameters, yield outside functions) before runtime, replacing separate linting passes.
Summary
Syntax error detection moves left in the dev cycle—catch version incompatibilities and compiler errors during linting rather than test runs. Reduces friction for multi-version projects with per-file version targeting.
Why it matters
Syntax error detection moves left in the dev cycle—catch version incompatibilities and compiler errors during linting rather than test runs. Reduces friction for multi-version projects with per-file version targeting.
Implementation verdict
Drop-in upgrade for existing Ruff users. Breaking changes minimal; most projects upgrade without code changes. Requires explicit target-version configuration to leverage new syntax detection—defaults to Python 3.13 for syntax checking, 3.9 for other rules. Worth upgrading now if your CI already uses Ruff.
Sources
Dev Signal
Get briefs like this in your inbox — free, 3x a week.
100+ sources compressed into one 4-minute read. Ranked, cited, implementation-ready.