What’s New

ruff 0.15.18

0.15.18
Added
  • Handle nested `ruff:ignore` comments
  • Prevent property docstrings starting with verbs in pydocstyle (D421)
  • Extend PYI033 to Python files in flake8-pyi
  • Make diagnostic links clickable in playground
Changed
  • Stop displaying severity in output
  • Use human-readable names in CLI output
  • Use human-readable names in LSP and playground diagnostics
  • Rename PYI033 to legacy-type-comment in flake8-pyi
  • Render subdiagnostics and secondary annotations as related information in LSP server
Fixed
  • Detect equivalent numeric mapping keys
  • Detect mapping keys equivalent to booleans
  • Detect repeated signed and complex dictionary keys
  • Reject `__debug__` lambda parameters in parser
  • Reject `_` as a match-pattern target in parser
  • Reject multiple starred names in sequence patterns in parser
  • Reject parenthesized star imports in parser
  • Reject starred comprehension targets in parser
  • Reject unparenthesized generator expressions in class bases in parser
  • Reject `yield` expressions after commas in parser
  • Validate function type parameter default order in parser
Release Notes

Released on 2026-06-18.

Preview features
  • Handle nested ruff:ignore comments (#25791)
  • Stop displaying severity in output (#26050)
  • Use human-readable names in CLI output (#25937)
  • Use human-readable names in LSP and playground diagnostics (#26058)
  • [pydocstyle] Prevent property docstrings starting with verbs (D421) (#23775)
  • [flake8-pyi] Extend PYI033 to Python files (#26129)
Bug fixes
  • Detect equivalent numeric mapping keys (#26009)
  • Detect mapping keys equivalent to booleans (#25982)
  • Detect repeated signed and complex dictionary keys (#26007)
Rule changes
  • [flake8-pyi] Rename PYI033 to legacy-type-comment (#26131)
Performance
  • Use ThinVec for call keywords (#25999)
  • Inline parser recovery context checks (#26038)
  • Match parser keywords as bytes (#26037)
  • Move value parsing out of lexing (#25360)
Server
  • Render subdiagnostics and secondary annotations as related information (#26011)
Documentation
  • Update fix availability for always-fixable rules (#26091)
  • [flake8-tidy-imports] Add fix safety section (TID252) (#17491)
Parser
  • Reject __debug__ lambda parameters (#26022)
  • Reject _ as a match-pattern target (#25977)
  • Reject multiple starred names in sequence patterns (#25976)
  • Reject parenthesized star imports (#26021)
  • Reject starred comprehension targets (#26023)
  • Reject unparenthesized generator expressions in class bases (#25978)
  • Reject yield expressions after commas (#26024)
  • Validate function type parameter default order (#25981)
Playground
  • Make diagnostic links clickable (#26104)
  • Use diagnostic tags (#26105)
Contributors
Install ruff 0.15.18
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.18/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.18/ruff-installer.ps1 | iex"
Download ruff 0.15.18
FilePlatformChecksum
ruff-aarch64-apple-darwin.tar.gzApple Silicon macOSchecksum
ruff-x86_64-apple-darwin.tar.gzIntel macOSchecksum
ruff-aarch64-pc-windows-msvc.zipARM64 Windowschecksum
ruff-i686-pc-windows-msvc.zipx86 Windowschecksum
ruff-x86_64-pc-windows-msvc.zipx64 Windowschecksum
ruff-aarch64-unknown-linux-gnu.tar.gzARM64 Linuxchecksum
ruff-i686-unknown-linux-gnu.tar.gzx86 Linuxchecksum
ruff-powerpc64-unknown-linux-gnu.tar.gzPPC64 Linuxchecksum
ruff-powerpc64le-unknown-linux-gnu.tar.gzPPC64LE Linuxchecksum
ruff-riscv64gc-unknown-linux-gnu.tar.gzRISCV Linuxchecksum
ruff-s390x-unknown-linux-gnu.tar.gzS390x Linuxchecksum
ruff-x86_64-unknown-linux-gnu.tar.gzx64 Linuxchecksum
ruff-armv7-unknown-linux-gnueabihf.tar.gzARMv7 Linuxchecksum
ruff-aarch64-unknown-linux-musl.tar.gzARM64 MUSL Linuxchecksum
ruff-i686-unknown-linux-musl.tar.gzx86 MUSL Linuxchecksum
ruff-x86_64-unknown-linux-musl.tar.gzx64 MUSL Linuxchecksum
ruff-arm-unknown-linux-musleabihf.tar.gzARMv6 MUSL Linux (Hardfloat)checksum
ruff-armv7-unknown-linux-musleabihf.tar.gzARMv7 MUSL Linuxchecksum
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>
View original