Ruff

Latest version: v0.8.6

Safety actively analyzes 693883 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 16 of 28

0.7.0

- The pytest rules `PT001` and `PT023` now default to omitting the decorator parentheses when there are no arguments
([12838](https://github.com/astral-sh/ruff/pull/12838), [#13292](https://github.com/astral-sh/ruff/pull/13292)).
This was a change that we attempted to make in Ruff v0.6.0, but only partially made due to an error on our part.
See the [blog post](https://astral.sh/blog/ruff-v0.7.0) for more details.
- The `useless-try-except` rule (in our `tryceratops` category) has been recoded from `TRY302` to
`TRY203` ([13502](https://github.com/astral-sh/ruff/pull/13502)). This ensures Ruff's code is consistent with
the same rule in the [`tryceratops`](https://github.com/guilatrova/tryceratops) linter.
- The `lint.allow-unused-imports` setting has been removed ([13677](https://github.com/astral-sh/ruff/pull/13677)). Use
[`lint.pyflakes.allow-unused-imports`](https://docs.astral.sh/ruff/settings/#lint_pyflakes_allowed-unused-imports)
instead.

0.6.9

Preview features

- Fix codeblock dynamic line length calculation for indented docstring examples ([13523](https://github.com/astral-sh/ruff/pull/13523))
- \[`refurb`\] Mark `FURB118` fix as unsafe ([13613](https://github.com/astral-sh/ruff/pull/13613))

Rule changes

- \[`pydocstyle`\] Don't raise `D208` when last line is non-empty ([13372](https://github.com/astral-sh/ruff/pull/13372))
- \[`pylint`\] Preserve trivia (i.e. comments) in `PLR5501` autofix ([13573](https://github.com/astral-sh/ruff/pull/13573))

Configuration

- \[`pyflakes`\] Add `allow-unused-imports` setting for `unused-import` rule (`F401`) ([13601](https://github.com/astral-sh/ruff/pull/13601))

Bug fixes

- Support ruff discovery in pip build environments ([13591](https://github.com/astral-sh/ruff/pull/13591))
- \[`flake8-bugbear`\] Avoid short circuiting `B017` for multiple context managers ([13609](https://github.com/astral-sh/ruff/pull/13609))
- \[`pylint`\] Do not offer an invalid fix for `PLR1716` when the comparisons contain parenthesis ([13527](https://github.com/astral-sh/ruff/pull/13527))
- \[`pyupgrade`\] Fix `UP043` to apply to `collections.abc.Generator` and `collections.abc.AsyncGenerator` ([13611](https://github.com/astral-sh/ruff/pull/13611))
- \[`refurb`\] Fix handling of slices in tuples for `FURB118`, e.g., `x[:, 1]` ([13518](https://github.com/astral-sh/ruff/pull/13518))

Documentation

- Update GitHub Action link to `astral-sh/ruff-action` ([13551](https://github.com/astral-sh/ruff/pull/13551))

0.6.8

Preview features

- Remove unnecessary parentheses around `match case` clauses ([13510](https://github.com/astral-sh/ruff/pull/13510))
- Parenthesize overlong `if` guards in `match..case` clauses ([13513](https://github.com/astral-sh/ruff/pull/13513))
- Detect basic wildcard imports in `ruff analyze graph` ([13486](https://github.com/astral-sh/ruff/pull/13486))
- \[`pylint`\] Implement `boolean-chained-comparison` (`R1716`) ([13435](https://github.com/astral-sh/ruff/pull/13435))

Rule changes

- \[`lake8-simplify`\] Detect `SIM910` when using variadic keyword arguments, i.e., `**kwargs` ([13503](https://github.com/astral-sh/ruff/pull/13503))
- \[`pyupgrade`\] Avoid false negatives with non-reference shadowed bindings of loop variables (`UP028`) ([13504](https://github.com/astral-sh/ruff/pull/13504))

Bug fixes

- Detect tuples bound to variadic positional arguments i.e. `*args` ([13512](https://github.com/astral-sh/ruff/pull/13512))
- Exit gracefully on broken pipe errors ([13485](https://github.com/astral-sh/ruff/pull/13485))
- Avoid panic when analyze graph hits broken pipe ([13484](https://github.com/astral-sh/ruff/pull/13484))

Performance

- Reuse `BTreeSets` in module resolver ([13440](https://github.com/astral-sh/ruff/pull/13440))
- Skip traversal for non-compound statements ([13441](https://github.com/astral-sh/ruff/pull/13441))

0.6.7

Preview features

- Add Python version support to ruff analyze CLI ([13426](https://github.com/astral-sh/ruff/pull/13426))
- Add `exclude` support to `ruff analyze` ([13425](https://github.com/astral-sh/ruff/pull/13425))
- Fix parentheses around return type annotations ([13381](https://github.com/astral-sh/ruff/pull/13381))

Rule changes

- \[`pycodestyle`\] Fix: Don't autofix if the first line ends in a question mark? (D400) ([13399](https://github.com/astral-sh/ruff/pull/13399))

Bug fixes

- Respect `lint.exclude` in ruff check `--add-noqa` ([13427](https://github.com/astral-sh/ruff/pull/13427))

Performance

- Avoid tracking module resolver files in Salsa ([13437](https://github.com/astral-sh/ruff/pull/13437))
- Use `forget` for module resolver database ([13438](https://github.com/astral-sh/ruff/pull/13438))

0.6.6

Preview features

- \[`refurb`\] Skip `slice-to-remove-prefix-or-suffix` (`FURB188`) when non-trivial slice steps are present ([13405](https://github.com/astral-sh/ruff/pull/13405))
- Add a subcommand to generate dependency graphs ([13402](https://github.com/astral-sh/ruff/pull/13402))

Formatter

- Fix placement of inline parameter comments ([13379](https://github.com/astral-sh/ruff/pull/13379))

Server

- Fix off-by one error in the `LineIndex::offset` calculation ([13407](https://github.com/astral-sh/ruff/pull/13407))

Bug fixes

- \[`fastapi`\] Respect FastAPI aliases in route definitions ([13394](https://github.com/astral-sh/ruff/pull/13394))
- \[`pydocstyle`\] Respect word boundaries when detecting function signature in docs ([13388](https://github.com/astral-sh/ruff/pull/13388))

Documentation

- Add backlinks to rule overview linter ([13368](https://github.com/astral-sh/ruff/pull/13368))
- Fix documentation for editor vim plugin ALE ([13348](https://github.com/astral-sh/ruff/pull/13348))
- Fix rendering of `FURB188` docs ([13406](https://github.com/astral-sh/ruff/pull/13406))

0.6.5

Preview features

- \[`pydoclint`\] Ignore `DOC201` when function name is "**new**" ([13300](https://github.com/astral-sh/ruff/pull/13300))
- \[`refurb`\] Implement `slice-to-remove-prefix-or-suffix` (`FURB188`) ([13256](https://github.com/astral-sh/ruff/pull/13256))

Rule changes

- \[`eradicate`\] Ignore script-comments with multiple end-tags (`ERA001`) ([13283](https://github.com/astral-sh/ruff/pull/13283))
- \[`pyflakes`\] Improve error message for `UndefinedName` when a builtin was added in a newer version than specified in Ruff config (`F821`) ([13293](https://github.com/astral-sh/ruff/pull/13293))

Server

- Add support for extensionless Python files for server ([13326](https://github.com/astral-sh/ruff/pull/13326))
- Fix configuration inheritance for configurations specified in the LSP settings ([13285](https://github.com/astral-sh/ruff/pull/13285))

Bug fixes

- \[`ruff`\] Handle unary operators in `decimal-from-float-literal` (`RUF032`) ([13275](https://github.com/astral-sh/ruff/pull/13275))

CLI

- Only include rules with diagnostics in SARIF metadata ([13268](https://github.com/astral-sh/ruff/pull/13268))

Playground

- Add "Copy as pyproject.toml/ruff.toml" and "Paste from TOML" ([13328](https://github.com/astral-sh/ruff/pull/13328))
- Fix errors not shown for restored snippet on page load ([13262](https://github.com/astral-sh/ruff/pull/13262))

Page 16 of 28

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.