Back to Explore

astral-sh/ruff

GitHub
11 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

  • Actively maintained: The upstream repository shows a very recent push (2026-07-02 02:08 UTC), and the source continues to publish frequent updates through the 0.15.x series.
  • Apparent cadence: Updates are frequent and tightly spaced in recent history (roughly weekly, sometimes multiple in a week), indicating an active development cycle rather than maintenance-only work.

AI summary generated

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

Recent updates

  • 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
  • 0.15.9

    Ruff 0.15.9 primarily contains lint rule fixes, some preview feature behavior tweaks, and a new formatter option for nested string quote styling. It also includes a small rendering change to avoid trailing whitespace in diff-style fix output. However, the code diff shows at least one significant internal API removal that is not mentioned in the release notes.

    Features
  • 0.15.8

    Ruff 0.15.8 adds several new preview lint rules (unnecessary-if, useless-finally, f-string-percent-format), plus a bug fix to graph analysis that resolves string imports that reference attributes. It also includes a performance improvement for diagnostic rendering and a server-side warning when Markdown files are skipped due to preview being disabled.

    Features
  • 0.15.7

    Ruff 0.15.7 focuses on preview behavior and a few rule and server behavior tweaks, plus some documentation updates. The release notes mention preview severity display, suppressing certain UI elements for non-Python documents, and recognizing the `pyrefly:` pragma form.

    Features