Ruff v0.8 bumps default target Python from 3.8 to 3.9, causing formatting and linting changes if you haven't explicitly set `requires-python` or `target-version`—update your config now to avoid surprises.
Summary
Default version bumps silently alter formatting output and rule behavior across your codebase. Without explicit configuration, developers will see unexpected with-statement parenthesization, import reordering, and new linter complaints on existing code.
Why it matters
Default version bumps silently alter formatting output and rule behavior across your codebase. Without explicit configuration, developers will see unexpected with-statement parenthesization, import reordering, and new linter complaints on existing code.
Implementation verdict
Replace your Ruff config: add `project.requires-python = ">= 3.8"` in pyproject.toml or set `target-version = "py38"` in [tool.ruff] to preserve old behavior, or accept the format shift and declare Python 3.9+ support. Ready to deploy now if you handle the breaking changes upfront.
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.