Ruff v0.15.17 Release Notes
Release Date: 2026-06-11 // 3 days ago-
🚀 Release Notes
🚀 Released on 2026-06-11.
Preview features
- 👍 Allow human-readable names in suppression comments (#25614)
- 🛠 Fix handling of
ignorecomments within adisable/enablepair (#25845) - Prioritize human-readable names in CLI output (#25869)
- Respect diagnostic start and parent ranges and trailing comments in
ruff:ignoresuppressions (#25673) - [
flake8-async] Addtrio.as_safe_channelto safe decorators (ASYNC119) (#25775) - 💅 [
flake8-pytest-style] Also checkpytest_asynciofixtures (#25375) - ✅ [
ruff] Banpytestautouse fixtures (RUF076) (#25477) - [
pyupgrade] Addfrom __future__ import annotationsautomatically (UP007,UP045) (#23259)
🐛 Bug fixes
- 🛠 Fix diagnostic when
ruff:enableorruff:disableappears whereruff:ignoreis expected (#25700) - ⬆️ [
pyupgrade] Preserve leading empty literals to avoid syntax errors (UP032) (#25491)
Rule changes
- 💅 [
flake8-pytest-style] Clarify diagnostic message for single parameters (PT007) (#25592) - [
numpy] Drop autofix fornp.in1d(NPY201) (#25612) - 👕 [
pylint] Exempt Python version comparisons (PLR2004) (#25743)
🐎 Performance
- Reserve AST
Vecs with correct capacity for common cases (#25451)
Formatter
- Preserve whitespace for Quarto cell option comments (#25641)
CLI
- 👍 Allow rule names in
ruff rule(#25640)
Other changes
- 🛠 Fix playground diagnostics scrollbars (#25642)
Contributors
- @SuryanshSS1011
- @anishgirianish
- @romero-deshaw
- @karlhillx
- @carljm
- @ntBre
- @11happy
- @Kilo59
- @oconnor663
- @LeonidasZhak
- @DavisVaughan
- @MeGaGiGaGon
- @jonathandung
- @MichaReiser
- @brianmego
Install ruff 0.15.17
Install prebuilt binaries via shell script
curl --proto'=https'--tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.17/ruff-installer.sh|shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c"irm https://releases.astral.sh/github/ruff/releases/download/0.15.17/ruff-installer.ps1 | iex"Download ruff 0.15.17
File Platform Checksum 🚀 ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS 🚀 ruff-x86_64-apple-darwin.tar.gz Intel macOS 🚀 ruff-aarch64-pc-windows-msvc.zip ARM64 Windows 🚀 ruff-i686-pc-windows-msvc.zip x86 Windows 🚀 ruff-x86_64-pc-windows-msvc.zip x64 Windows 🚀 ruff-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux 🚀 ruff-i686-unknown-linux-gnu.tar.gz x86 Linux 🚀 ruff-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux 🚀 ruff-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux 🚀 ruff-riscv64gc-unknown-linux-gnu.tar.gz RISCV Linux 🚀 ruff-s390x-unknown-linux-gnu.tar.gz S390x Linux 🚀 ruff-x86_64-unknown-linux-gnu.tar.gz x64 Linux 🚀 ruff-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux 🚀 ruff-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux 🚀 ruff-i686-unknown-linux-musl.tar.gz x86 MUSL Linux 🚀 ruff-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux 🚀 ruff-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) 🚀 ruff-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux 👌 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\>
Previous changes from v0.15.16
-
🚀 Release Notes
🚀 Released on 2026-06-04.
Preview features
- [
flake8-async] Implementyield-in-context-manager-in-async-generator(ASYNC119) (#24644) - 👕 [
pylint] Narrow diagnostic range and exclude cases without exception handlers (PLW0717) (#25440) - [
ruff] Treatyieldbeforebreakfrom a terminal loop as terminal (RUF075) (#25447)
🐛 Bug fixes
- [
eradicate] Avoid flaggingruff:ignorecomments as code (ERA001) (#25537) - [
eradicate] FixERA001/RUF100conflict whennoqais on commented-out code (#25414) - [
pyflakes] Avoid removing theformatcall when it would change behavior (F523) (#25320) - 👕 [
pylint] Avoid syntax errors in invalid character replacements in f-strings before Python 3.12 (PLE2510,PLE2512,PLE2513,PLE2514,PLE2515) (#25544) - ⬆️ [
pyupgrade] Avoid convertingformatcalls with more kinds of side effects (UP032) (#25484)
Rule changes
- 💅 [
flake8-pytest-style] Avoid fixes for ambiguousargnamesandargvaluescombinations (PT006) (#24776)
🐎 Performance
- ⬇️ Drop excess capacity from statement suites during parsing (#25368)
📚 Documentation
- 💅 [
pydocstyle] Improve discoverability of rules enabled for each convention (#24973) - ⏪ [
ruff] Restore example code for Python versions before 3.15 (RUF017) (#25439) - 🛠 Fix typo
bin/active→bin/activatein tutorial (#25473)
Other changes
- 📜 Shrink additional parser AST collections (#25465)
Contributors
- @Redslayer112
- @koriyoshi2041
- @George-Ogden
- @TejasAmle
- @anishgirianish
- @ntBre
- @MichaReiser
- @loganrosen
- @RafaelJohn9
- @adityasingh2400
Install ruff 0.15.16
Install prebuilt binaries via shell script
curl --proto'=https'--tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.16/ruff-installer.sh|shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c"irm https://releases.astral.sh/github/ruff/releases/download/0.15.16/ruff-installer.ps1 | iex"Download ruff 0.15.16
File Platform Checksum 🚀 ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS 🚀 ruff-x86_64-apple-darwin.tar.gz Intel macOS 🚀 ruff-aarch64-pc-windows-msvc.zip ARM64 Windows 🚀 ruff-i686-pc-windows-msvc.zip x86 Windows 🚀 ruff-x86_64-pc-windows-msvc.zip x64 Windows 🚀 ruff-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux 🚀 ruff-i686-unknown-linux-gnu.tar.gz x86 Linux 🚀 ruff-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux 🚀 ruff-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux 🚀 ruff-riscv64gc-unknown-linux-gnu.tar.gz RISCV Linux 🚀 ruff-s390x-unknown-linux-gnu.tar.gz S390x Linux 🚀 ruff-x86_64-unknown-linux-gnu.tar.gz x64 Linux 🚀 ruff-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux 🚀 ruff-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux 🚀 ruff-i686-unknown-linux-musl.tar.gz x86 MUSL Linux 🚀 ruff-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux 🚀 ruff-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) 🚀 ruff-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux 👌 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\> - [