github/astral-sh/ruff

astral-sh/ruff: 0.15.22

Brief

Ruff 0.15.22, published 2026-07-16, bundles several preview features, targeted bug fixes, parser/lexer performance improvements, and documentation updates. Notable new preview functionality includes a pycodestyle autofix for E402 (PR #22212), refurbished stub handling to allow subclassing builtins (FURB189, PR #26812), and three ruff rules (RUF105/RUF106/RUF201; PRs #26423, #26682, #26772) to migrate noqa comments to ruff:ignore and prefer human-readable names in ignore comments and selectors. The release fixes a flake8-pyi all false positive (PYI053, PR #26872) and adjusts pylint handling for PLW2901 (PR #25733). Performance work reduces redundant lexer bookkeeping, pending-indentation writes, and identifier lookahead while reusing parser scratch buffers (PRs #26765/#26774/#26525/#26798). Packaging includes shell and PowerShell installers and 18 platform binaries with SHA256 checksums; artifacts are signed with GitHub attestations verifiable via gh attestation verify.

Why it matters

Ruff 0.15.22 released 2026-07-16 introduces preview features including a pycodestyle autofix for E402 (PR #22212), refurb support for subclassing builtins in stub files (FURB189, PR #26812), and three new ruff rules: RUF105 (replace noqa with ruff:ignore, PR #26423), RUF106 (use human-readable names in ruff:ignore, PR #26682) and RUF201 (use human-readable names in configuration selectors, PR #26772).

Key details

  • Bug fixes and rule changes: flake8-pyi false positive for __all__ (PYI053) fixed in PR #26872; pylint integration now ignores mutable type updates in redefined-loop-name (PLW2901) via PR #25733.
  • Performance improvements target the lexer and parser: avoid redundant lexer token bookkeeping (PR #26765), avoid redundant pending-indentation writes (PR #26774), avoid unnecessary identifier lookahead (PR #26525), and reuse parser scratch buffers (PR #26798).
  • Distribution and verification: installers provided (curl shell and PowerShell commands) plus 18 prebuilt binaries across macOS, Windows, and many Linux architectures (including riscv64, s390x, ppc64/ppc64le, arm/armv7, musl variants); SHA256 checksums and GitHub Artifact Attestations can be verified with gh attestation verify for repo astral-sh/ruff.
Source evidence

Release Notes

Released on 2026-07-16.

Preview features

  • [pycodestyle] Add an autofix for E402 (#22212)
  • [refurb] Allow subclassing builtins in stub files (FURB189) (#26812)
  • [ruff] Add rule to replace noqa comments with ruff:ignore (RUF105) (#26423)
  • [ruff] Add rule to use human-readable names in ruff:ignore comments (RUF106) (#26682)
  • [ruff] Add rule to use human-readable names in configuration selectors (RUF201) (#26772)

Bug fixes

  • [flake8-pyi] Fix false positive in __all__ (PYI053) (#26872)

Rule changes

  • [pylint] Ignore mutable type updates in redefined-loop-name (PLW2901) (#25733)

Performance

  • Avoid redundant lexer token bookkeeping (#26765)
  • Avoid redundant pending-indentation writes (#26774)
  • Avoid unnecessary identifier lookahead (#26525)
  • Reuse parser scratch buffers (#26798)

Documentation

  • Document argfile support (#26803)
  • [flake8-datetimez] Clarify naming guidance for datetime.today (DTZ002) (#26658)
  • [pycodestyle] Document E731 fix safety (#26847)
  • [ruff] Clarify intentional async contexts for unused-async (RUF029) (#26641)

Contributors

Install ruff 0.15.22

Install prebuilt binaries via shell script

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

Install prebuilt binaries via powershell script

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

Download ruff 0.15.22

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

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo astral-sh/ruff

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

Repository: astral-sh/ruff | Tag: 0.15.22 | Author: github-actions[bot]