Back to Explore

astral-sh/ruff

GitHub
13 updates · last 90 days1 watchersOpen source

Last release:

Ruff is an extremely fast Python linter and code formatter, written in Rust, used to check code style and run automated fixes. It can lint and format Python code from the command line, and it supports configuration via pyproject.toml and editor integrations (for example, VS Code).

Project status

  • Ruff appears actively maintained, the upstream source shows a push on 2026-09-03, and recent version updates are frequent and ongoing.
  • Apparent update cadence is approximately weekly to every few weeks in the last several weeks (0.16.1 through 0.16.5 span 2026-07-30 to 2026-08-27, with an additional upstream push on 2026-09-03).

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • 0.16.6

    Ruff 0.16.6 is a relatively focused release with multiple preview-category rule adjustments, plus several parser and rule-specific bug fixes. It also includes documentation updates and a small behavior tweak related to unary plus in match patterns on Python 3.15. The provided code diff suggests several internal and CI-related changes that are not mentioned in the release notes.

    Features
  • 0.16.5

    Ruff 0.16.5 expands preview support for lint rule selection via categories, and allows rules that do not have a rule code. The CLI and diagnostic formatting logic was updated to tolerate missing rule codes and to expose category information for rule help/output.

    Features
  • 0.16.4

    Ruff 0.16.4 focuses on preview feature enhancements (autofixes and rule behavior tweaks), plus a few targeted bug fixes around platform support and diagnostic emission. The release notes also include some rule alignment changes and two server-related improvements. However, the code diff reveals additional internal behavior changes (new diagnostic ID, configuration parsing path change, and a status mapping change for rule explanations) that are not mentioned in the release notes.

    Features
  • 0.16.3

    Ruff 0.16.3 includes a set of targeted rule fixes, new preview-rule behavior (including a pyupgrade UP048 rule), and improved CLI output by hyperlinking rule codes in `ruff check --statistics`. It also includes performance-oriented release build changes (PGO, smaller `Expr`, and using mimalloc v3) as documented in the release notes.

    Features
  • 0.16.2

    Release 0.16.2 includes a bug fix to reduce false positives in `flake8-pyi` (PYI041), and a server-side change to dynamically register formatting capabilities to exclude TOML files. The release notes do not mention any API changes, but the code diff shows multiple Rust API visibility/signature changes across internal crates (mdtest, ruff_db) and a refactor to module resolution in the CLI.

  • 0.16.1

    Ruff 0.16.1 primarily ships preview improvements to output and several targeted bug fixes across multiple rule sets, plus small server and documentation updates. The code diff shows a new configuration value that affects how fix summaries display rule information, along with internal test and harness adjustments.

    Features
  • 0.16.0

    Ruff 0.16.0 makes large user-visible changes: it enables a much larger default rule set, adds Markdown formatting for Python code blocks by default, and updates suppression comments to use `ruff: ignore` syntax. The release also improves formatter and linter output for `--check`, including showing fix diffs and supporting additional output formats like `github` and `gitlab`, plus minor JSON output schema flexibility.

    BreakingFeatures
  • 0.15.22

    Ruff 0.15.22 includes a handful of preview-rule additions (notably around `noqa` to `ruff:ignore` and human-readable ignores/selectors), plus small bug fixes and some performance-related lexer/parser improvements. The release notes focus on linting rule changes and documentation, but the code diff shows additional, potentially user-visible behavior changes around TOML handling and mdtest internals that are not described.

    Features
  • 0.15.21

    Ruff 0.15.21 adds two user-facing CLI capabilities, including a new `--add-ignore` option to automatically insert `ruff:ignore` comments and `ruff format --extend-exclude` to extend file selection exclusions. The release also includes multiple bug fixes and performance/formatter improvements, largely focused on preview behavior and rendering efficiency.

    Features
  • 0.15.20

    Ruff 0.15.20 ships multiple preview CLI improvements around rule selector parsing, including support for human-readable selector names and updated handling for removed selectors. It also updates `noqa` shebang matching behavior, along with several internal memory reporting and database durability changes.

    BreakingFeatures
  • 0.15.19

    Ruff 0.15.19 ships a preview UX improvement for hover text on suppression comments, along with a couple of bug fixes related to configuration fallback and notebook-cell edit boundaries. The release also includes several formatter and lint-performance optimizations and (per the notes) publishes Ruff crates to crates.io.

    Features
  • 0.15.18

    Ruff 0.15.18 focuses on preview-only UX improvements, including better handling of ignore comments, removing severity from human-readable outputs, and showing human-readable rule names in CLI, LSP, and playground diagnostics. The diff also reveals additional internal refactors, including changes to diagnostic rendering behavior and mdtest’s assertion parsing and matching behavior.

    Features
  • 0.15.17

    Ruff 0.15.17 is primarily a preview-focused release with improvements around suppression comment handling and human-readable naming in CLI output. It also includes several bug fixes, a few rule-message clarifications/removals, and a small performance improvement, plus formatter and CLI tweaks.

    Features
  • 0.15.16

    Ruff 0.15.16 adds new preview linting for flake8-async ASYNC119 (yield inside a context manager within an async generator) and a new preview change for flake8-async terminal-loop behavior. It also includes a set of targeted bug fixes across eradicate, pyflakes, pylint, and pyupgrade, plus some parsing performance improvements.

    Features
  • 0.15.15

    Ruff 0.15.15 primarily focuses on a set of preview and bug fix updates, along with formatter and server improvements. The release notes also call out several performance and memory optimizations in the lexer and AST, plus documentation adjustments for linting rule edge cases.

    Features
  • 0.15.14

    Ruff 0.15.14 primarily delivers new preview linter rules (notably RUF075 and AIR202) plus a set of rule fixes and configuration-related bug fixes. The release notes also mention broader infrastructure work like full PEP 798 support and adding a parser recursion limit, alongside some performance and documentation updates.

    Features
  • 0.15.13

    Ruff 0.15.13 adds preview linting for catching lazy imports that are eagerly evaluated, along with several targeted bug fixes and improved diagnostics output. It also updates CLI messaging and configuration behavior, including increasing the maximum allowed `line-length` value. The diff shows additional internal API and output-format changes that are not mentioned in the release notes.

    Features
  • 0.15.12

    Ruff 0.15.12 adds new preview-mode Airflow rule AIR004 (task-branch-as-short-circuit), plus several preview improvements around suppression directives. It also updates cache file handling so cache files respect default Unix permissions. Most other changes in the release notes are rule behavior tweaks and documentation/accessibility updates.

    Features
  • 0.15.11

    ruff 0.15.11 primarily adds and refines rule behavior behind preview features, including a new Airflow rule (AIR201) and improved flake8-bandit mask analysis. It also includes a flake8-async bug fix for ASYNC109 plus some documentation updates. While the release notes focus on lint-rule behavior, the code diff shows several significant internal API and behavior changes that are not mentioned.

    Features
  • 0.15.10

    Ruff 0.15.10 rolls out several preview and rule-related changes, mainly around the flake8-logging and flake8-self rule sets, plus a server enhancement. The release notes also include multiple formatting and linting bug fixes (especially around f-strings and indentation handling) and one rule change (RUF019) treating f-string interpolation as a potential side effect.

    Features