Ruff v0.16.0
July 23, 2026 — Brent Westbrook
Ruff v0.16.0 is available now. Install: uv tool install ruff@latest
Ruff is an extremely fast Python linter and formatter written in Rust.
Better default rule set (breaking)
Ruff now enables 413 rules by default, up from 59 in previous versions. Since the default set was last modified in v0.1.0, total rules grew from 708 to 968. The new defaults include rules from flake8-bugbear (B), pyupgrade (UP), and Ruff’s RUF category. Full listing: Default Rules docs page.
To revert to the old default set:
[lint]
select = ["E4", "E7", "E9", "F"]
New features
- Markdown code block formatting: Formats fenced Python/py/pyi/pycon blocks in Markdown (and Quarto
{python}blocks) by default. - ruff: ignore comments: Same-line or preceding-line suppression like noqa;
ruff: file-ignorefor whole-file; optional reasons;--add-ignoreCLI; preview support for rule names. - Fixes shown in check / format —check output: Diffs for available fixes in default full output; format —check gains linter output formats (JSON, GitHub, GitLab). Small JSON breaking change: some location fields may be null.
Stabilizations
Multiple rules left preview (AIR303, CPY001, FURB164, FURB192, ISC004, LOG004, PLE0304, PLR0917, PLR1708, RUF036, RUF063, RUF068, etc.). Additional preview behaviors stabilized for BLE001, FA102, INT00x, S310, S508/S509, UP019.