ruff/changelogs/0.10.x.md

8.0 KiB

Changelog 0.10.x

0.10.0

Check out the blog post for a migration guide and overview of the changes!

Breaking changes

See also, the "Remapped rules" section which may result in disabled rules.

  • Changes to how the Python version is inferred when a target-version is not specified (#16319)

    Because of a mistake in the release process, the requires-python inference changes are not included in this release and instead shipped as part of 0.11.0. You can find a description of this change in the 0.11.0 section.

  • Updated TYPE_CHECKING behavior (#16669)

    Previously, Ruff only recognized typechecking blocks that tested the typing.TYPE_CHECKING symbol. Now, Ruff recognizes any local variable named TYPE_CHECKING. This release also removes support for the legacy if 0: and if False: typechecking checks. Use a local TYPE_CHECKING variable instead.

  • More robust noqa parsing (#16483)

    The syntax for both file-level and in-line suppression comments has been unified and made more robust to certain errors. In most cases, this will result in more suppression comments being read by Ruff, but there are a few instances where previously read comments will now log an error to the user instead. Please refer to the documentation on Error suppression for the full specification.

  • Avoid unnecessary parentheses around with statements with a single context manager and a trailing comment (#14005)

    This change fixes a bug in the formatter where it introduced unnecessary parentheses around with statements with a single context manager and a trailing comment. This change may result in a change in formatting for some users.

  • Bump alpine default tag to 3.21 for derived Docker images (#16456)

    Alpine 3.21 was released in Dec 2024 and is used in the official Alpine-based Python images. Now the ruff:alpine image will use 3.21 instead of 3.20 and ruff:alpine3.20 will no longer be updated.

Deprecated Rules

The following rules have been deprecated:

Remapped rules

The following rules have been remapped to new rule codes:

  • `unsafe-markup-use`

Stabilization

The following rules have been stabilized and are no longer in preview:

The following behaviors have been stabilized:

The following fixes or improvements to fixes have been stabilized:

Server

  • Remove logging output for ruff.printDebugInformation (#16617)

Configuration

  • `flake8-builtins`

Bug fixes

  • [flake8-bandit] Fix mixed-case hash algorithm names (S324) (#16552)

CLI

  • [ruff] Fix last_tag/commits_since_last_tag for version command (#16686)