← Package directory
Available on winget

Install Ruff

An extremely fast Python linter, written in Rust.

Install with winget
winget install --id astral-sh.ruff
Upgrade
winget upgrade --id astral-sh.ruff
Uninstall
winget uninstall --id astral-sh.ruff

About Ruff

An extremely fast Python linter, written in Rust.

What's new in 0.15.13

Released on 2026-05-14. Preview features - Add a rule to flag lazy imports that are eagerly evaluated (#25016) - [pylint] Standardize diagnostic message (PLR0914, PLR0917) (#24996) Bug fixes - Fix F811 false positive for class methods (#24933) - Fix setting selection for multi-folder workspace (#24819) - [eradicate] Fix false positive for lines with leading whitespace (ERA001) (#25122) - [flake8-pyi] Fix false positive for f-string debug specifier (PYI016) (#24098) Rule changes - Always include panic payload in panic diagnostic message (#24873) - Restrict PYI034 for in-place operations to enclosing class (#24511) - Improve error message for parameters that are declared `global` (#24902) - Update known stdlib (#25103) Performance - [isort] Avoid constructing `glob::Pattern`s for literal known modules (#25123) CLI - Add TOML examples to `--config` help text (#25013) - Colorize ruff check 'All checks passed' (#25085) Configuration - Increase max allowed value of `line-length` setting (#24962) Documentation - Add D203 to rules that conflict with the formatter (#25044) - Clarify COM819 and formatter interaction (#25045) - Clarify that `NotImplemented` is a value, not an exception (F901) (#25054) - Update number of lint rules supported (#24942) Other changes - Simplify the playground's markdown template (#24924)

Read release notes

Version history

Version Updated Notes
0.15.13 Unknown Released on 2026-05-14. Preview features - Add a rule to flag lazy imports that are eagerly evaluated (#25016) - [pylint] Standardize diagnostic message (PLR0914, PLR0917) (#24996) Bug fixes - Fix F811 false positive for...
0.15.12 Unknown Released on 2026-04-24. Preview features - Implement `#ruff:file-ignore` file-level suppressions (#23599) - Implement `#ruff:ignore` logical-line suppressions (#23404) - Revert preview changes to displayed diagnostic sev...
0.15.11 Unknown Released on 2026-04-16. Preview features - [ruff] Ignore RUF029 when function is decorated with `asynccontextmanager` (#24642) - [airflow] Implement `airflow-xcom-pull-in-template-string` (AIR201) (#23583) - [flake8-band...
0.15.10 Unknown Released on 2026-04-09. Preview features - [flake8-logging] Allow closures in except handlers (LOG004) (#24464) - [flake8-self] Make `SLF` diagnostics robust to non-self-named variables (#24281) - [flake8-simplify] Make...
0.15.9 Unknown Released on 2026-04-02. Preview features - [pyflakes] Flag annotated variable redeclarations as F811 in preview mode (#24244) - [ruff] Allow dunder-named assignments in non-strict mode for RUF067 (#24089) Bug fixes - [fl...
0.15.8 Unknown Released on 2026-03-26. Preview features - [ruff] New rule `unnecessary-if` (RUF050) (#24114) - [ruff] New rule `useless-finally` (RUF072) (#24165) - [ruff] New rule `f-string-percent-format` (RUF073): warn when using `%...
0.15.7 Unknown Released on 2026-03-19. Preview features - Display output severity in preview (#23845) - Don't show `noqa` hover for non-Python documents (#24040) Rule changes - [pycodestyle] Recognize `pyrefly:` as a pragma comment (E5...
0.15.6 Unknown Released on 2026-03-12. Preview features - Add support for `lazy` import parsing (#23755) - Add support for star-unpacking of comprehensions (PEP 798) (#23788) - Reject semantic syntax errors for lazy imports (#23757) -...
0.15.5 Unknown Released on 2026-03-05. Preview features - Discover Markdown files by default in preview mode (#23434) - [perflint] Extend PERF102 to comprehensions and generators (#23473) - [refurb] Fix FURB101 and FURB103 false positi...
0.15.4 Unknown Released on 2026-02-26. This is a follow-up release to 0.15.3 that resolves a panic when the new rule PLR1712 was enabled with any rule that analyzes definitions, such as many of the `ANN` or `D` rules. Bug fixes - Fix p...
0.15.3 Unknown Released on 2026-02-26. Preview features - Drop explicit support for `.qmd` file extension (#23572) This can now be enabled instead by setting the `extension` option: ```toml # ruff.toml extension = { qmd = "markdown" }...
0.15.2 Unknown Released on 2026-02-19. Preview features - Expand the default rule set (#23385) In preview, Ruff now enables a significantly expanded default rule set of 412 rules, up from the stable default set of 59 rules. The new rul...
0.15.1 Unknown Released on 2026-02-12. Preview features - [airflow] Add ruff rules to catch deprecated Airflow imports for Airflow 3.1 (AIR321) (#22376) - [airflow] Third positional parameter not named `ti_key` should be flagged for `B...
0.15.0 Unknown Released on 2026-02-03. Check out the blog post for a migration guide and overview of the changes! Breaking changes - Ruff now formats your code according to the 2026 style guide. See the formatter section below or in th...
0.14.14 Unknown Released on 2026-01-22. Preview features - Preserve required parentheses in lambda bodies (#22747) - Combine range suppression code diagnostics (#22613) - [airflow] Second positional argument to `Asset`/`Dataset` should...
0.14.13 Unknown Released on 2026-01-15. This is a follow-up release to 0.14.12. Because of an issue publishing the WASM packages, there is no GitHub release or Git tag for 0.14.12, although the package was published to PyPI. The content...
0.14.11 Unknown Released on 2026-01-08. Preview features - Consolidate diagnostics for matched disable/enable suppression comments (#22099) - Report diagnostics for invalid/unmatched range suppression comments (#21908) - [airflow] Passi...
0.14.10 Unknown Released on 2025-12-18. Preview features - [formatter] Fluent formatting of method chains (#21369) - [formatter] Keep lambda parameters on one line and parenthesize the body if it expands (#21385) - [flake8-implicit-str-...
0.14.9 Unknown Released on 2025-12-11. Preview features - [ruff] New RUF100 diagnostics for unused range suppressions (#21783) - [pylint] Detect subclasses of builtin exceptions (PLW0133) (#21382) Bug fixes - Fix comment placement in l...
0.14.8 Unknown Released on 2025-12-04. Preview features - [flake8-bugbear] Catch `yield` expressions within other statements (B901) (#21200) - [flake8-use-pathlib] Mark fixes unsafe for return type changes (PTH104, PTH105, PTH109, PTH1...