Ruff v0.16.0: Default rules jump from 59 to 413
Original: Ruff v0.16.0 – Significant new updates – 413 default rules up from 59
Why This Matters
Ruff's 7x increase in default rules marks a significant shift toward stricter out-of-the-box Python code quality enforcement.
Astral released Ruff v0.16.0 on July 23, 2026. The Python linter and formatter now enables 413 rules by default, up from 59, and adds Markdown code block formatting and new suppression comment features.
Astral's Ruff v0.16.0 brings a major expansion to its default rule set, growing from 59 to 413 enabled rules out of 968 total — up from 708 since v0.1.0. The newly enabled rules include checks from popular linters such as flake8-bugbear (B) and pyupgrade (UP), as well as Ruff's own RUF category. These cover severe issues like syntax errors and immediate runtime errors that were previously opt-in only. Users who wish to keep the old defaults can explicitly set select = ["E4", "E7", "E9", "F"] in their config.
Ruff v0.16 also stabilizes Markdown code block formatting: running `ruff format` on .md files will now reformat fenced code blocks tagged with `python`, `py`, `pyi`, `pycon`, and related info strings. Suppression is available via `fmt: off/on` comments or HTML-style comments around Markdown regions.
Additionally, the release expands suppression comment support. Building on v0.15's `ruff: disable` / `ruff: enable` range suppression, v0.16 adds `ruff: ignore` for inline single-line suppression, similar to existing `noqa` comments.