Skip to content

ruff 0.15.0#265732

Merged
BrewTestBot merged 2 commits intomainfrom
bump-ruff-0.15.0
Feb 4, 2026
Merged

ruff 0.15.0#265732
BrewTestBot merged 2 commits intomainfrom
bump-ruff-0.15.0

Conversation

@BrewTestBot
Copy link
Contributor

Created by brew bump


Created with brew bump-formula-pr.

Details

release notes
## Release Notes

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 the blog post for a detailed list of changes.

  • The linter now supports block suppression comments. For example, to suppress N803 for all parameters in this function:

    # ruff: disable[N803]
    def foo(
        legacyArg1,
        legacyArg2,
        legacyArg3,
        legacyArg4,
    ): ...
    # ruff: enable[N803]

    See the documentation for more details.

  • The ruff:alpine Docker image is now based on Alpine 3.23 (up from 3.21).

  • The ruff:debian and ruff:debian-slim Docker images are now based on Debian 13 "Trixie" instead of Debian 12 "Bookworm."

  • Binaries for the ppc64 (64-bit big-endian PowerPC) architecture are no longer included in our releases. It should still be possible to build Ruff manually for this platform, if needed.

  • Ruff now resolves all extended configuration files before falling back on a default Python version.

Stabilization

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

The following behaviors have been stabilized:

  • The --output-format flag is now respected when running Ruff in --watch mode, and the full output format is now used by default, matching the regular CLI output.
  • builtin-attribute-shadowing (A003) now detects the use of shadowed built-in names in additional contexts like decorators, default arguments, and other attribute definitions.
  • duplicate-union-member (PYI016) now considers typing.Optional when searching for duplicate union members.
  • split-static-string (SIM905) now offers an autofix when the maxsplit argument is provided, even without a sep argument.
  • dict-get-with-none-default (SIM910) now applies to more types of key expressions.
  • super-call-with-parameters (UP008) now has a safe fix when it will not delete comments.
  • unnecessary-default-type-args (UP043) now applies to stub (.pyi) files on Python versions before 3.13.

Formatter

This release introduces the new 2026 style guide, with the following changes:

  • Lambda parameters are now kept on the same line and lambda bodies will be parenthesized to let them break across multiple lines (#21385)
  • Parentheses around tuples of exceptions in except clauses will now be removed on Python 3.14 and later (#20768)
  • A single empty line is now permitted at the beginning of function bodies (#21110)
  • Parentheses are avoided for long as captures in match statements (#21176)
  • Extra spaces between escaped quotes and ending triple quotes can now be omitted (#17216)
  • Blank lines are now enforced before classes with decorators in stub files (#18888)

Preview features

Bug fixes

  • Fix suppression indentation matching (#22903)

Rule changes

  • Customize where the fix_title sub-diagnostic appears (#23044)
  • [FastAPI] Add sub-diagnostic explaining why a fix was unavailable (FAST002) (#22565)
  • [flake8-annotations] Don't suggest NoReturn for functions raising NotImplementedError (ANN201, ANN202, ANN205, ANN206) (#21311)
  • [pyupgrade] Make fix unsafe if it deletes comments (UP017) (#22873)
  • [pyupgrade] Make fix unsafe if it deletes comments (UP020) (#22872)
  • [pyupgrade] Make fix unsafe if it deletes comments (UP033) (#22871)
  • [refurb] Do not add abc.ABC if already present (FURB180) (#22234)
  • [refurb] Make fix unsafe if it deletes comments (FURB110) (#22768)
  • [ruff] Add sub-diagnostics with permissions (RUF064) (#22972)

Server

  • Identify notebooks by LSP didOpen instead of .ipynb file extension (#22810)

CLI

  • Add --color CLI option to force colored output (#22806)

Documentation

  • Document - stdin convention in CLI help text (#22817)
  • [refurb] Change example to re.search with ^ anchor (FURB167) (#22984)
  • Fix link to Sphinx code block directives (#23041)
  • [pydocstyle] Clarify which quote styles are allowed (D300) (#22825)
  • [flake8-bugbear] Improve docs for no-explicit-stacklevel (B028) (#22538)

Other changes

  • Update MSRV to 1.91 (#22874)

Contributors

Install ruff 0.15.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.15.0/ruff-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ruff/releases/download/0.15.0/ruff-installer.ps1 | iex"

Download ruff 0.15.0

File Platform Checksum
ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ruff-x86_64-apple-darwin.tar.gz Intel macOS checksum
ruff-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
ruff-i686-pc-windows-msvc.zip x86 Windows checksum
ruff-x86_64-pc-windows-msvc.zip x64 Windows checksum
ruff-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
ruff-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
ruff-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
ruff-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
ruff-riscv64gc-unknown-linux-gnu.tar.gz RISCV Linux checksum
ruff-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
ruff-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
ruff-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
ruff-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
ruff-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
ruff-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
ruff-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
ruff-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum

View the full release notes at https://github.com/astral-sh/ruff/releases/tag/0.15.0.


@github-actions github-actions bot added rust Rust use is a significant feature of the PR or issue bump-formula-pr PR was created using `brew bump-formula-pr` labels Feb 3, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Feb 4, 2026

🤖 An automated task has requested bottles to be published to this PR.

Caution

Please do not push to this PR branch before the bottle commits have been pushed, as this results in a state that is difficult to recover from. If you need to resolve a merge conflict, please use a merge commit. Do not force-push to this PR branch.

@github-actions github-actions bot added the CI-published-bottle-commits The commits for the built bottles have been pushed to the PR branch. label Feb 4, 2026
@BrewTestBot BrewTestBot enabled auto-merge February 4, 2026 00:09
@BrewTestBot BrewTestBot added this pull request to the merge queue Feb 4, 2026
Merged via the queue into main with commit 1b298c5 Feb 4, 2026
22 checks passed
@BrewTestBot BrewTestBot deleted the bump-ruff-0.15.0 branch February 4, 2026 00:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bump-formula-pr PR was created using `brew bump-formula-pr` CI-published-bottle-commits The commits for the built bottles have been pushed to the PR branch. rust Rust use is a significant feature of the PR or issue

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants