Ruff v0.16.0 – Significant new updates – 413 default rules up from 59

193 points · 105 comments on HN · read original →

Points and comments are a snapshot, not live.

Ruff v0.16.0 enables 413 lint rules by default, up from 59.

Ruff v0.16.0, an extremely fast Python linter and formatter written in Rust, now enables 413 rules by default, up from 59. The new default set includes rules from flake8-bugbear, pyupgrade, and Ruff's own RUF category. The release also adds Markdown code block formatting, new `ruff: ignore` and `ruff: file-ignore` suppression comments, and displays diffs for fixes in `check` and `format --check` output. Twelve rules have been stabilized out of preview.

What commenters are saying

Commenters broadly welcome the expansion, noting that strong defaults reduce configuration needs. Some express mixed feelings, recalling past projects where overly strict linting produced illegible code with hacks to satisfy tools. They question whether AI coding agents have the judgment to appropriately ignore benign warnings. Others note that the autofix (`ruff check --fix`) only handles about 10-30% of the new warnings in existing codebases, leaving tedious manual work that LLMs can assist with. A separate discussion compares Ruff favorably to Go's more fragmented linting ecosystem.