Immutable
release. Only release title and notes can be modified.
Release Notes
Released on 2026-07-09.
Preview features
- Add
--add-ignorefor addingruff:ignorecomments (#26346) - [
flake8-comprehensions] DropC409tuple comprehension preview behavior (#25707) - Avoid whitespace normalization when formatting comments (#26455)
- [
pyupgrade] Lint and fix use of deprecatedabcdecorators (UP051) (#26417)
Bug fixes
- Refine non-empty f-string detection (#26526)
- Detect syntax errors in individual notebook cells (#26419)
- [
flake8-implicit-str-concat] FixISC003autofix incorrectly stripping+from comments (#26554)
Rule changes
- [
flake8-executable] MarkEXE004fix as unsafe (#26033) - [
flake8-pyi] MarkPYI061fixes as unsafe in Python files (#26533) - [
pydocstyle] Skipoverload-with-docstringin stub files (D418) (#26318)
Performance
- Avoid per-token source index visitor calls (#26506)
- Cache parenthesized expression boundaries in the formatter (#26344)
- Improve performance of rendering edits in preview mode (#26565)
- Inline
fits_elementin formatter (#26429) - Inline formatter printing hot paths (#26504)
- Lazily create builtin bindings (#26510)
- Skip empty trivia scans in the source indexer (#26507)
- Use ICF for macOS release builds (#25780)
Formatter
- Add
--extend-excludetoruff format(#26372)
Documentation
- Add "How does Ruff's import sorting compare to isort?" link to README (#26530)
- Fix Mozilla Firefox repository link in README (#26537)
- [
flake8-bandit] Fix misleading docstring formako-templates(S702) (#26432) - [
ruff] Fix non-triggering example forif-key-in-dict-del(RUF051) (#26433)
Contributors
- @EkriirkE
- @tingerrr
- @s-rigaud
- @nikolauspschuetz
- @Avasam
- @ntBre
- @omar-y-abdi
- @AlexWaygood
- @sylvestre
- @shaanmajid
- @lerebear
- @baltasarblanco
- @Sanjays2402
- @ZedThree
- @servusdei2018
- @charliermarsh
- @jesco-absolute
- @velikodniy
- @zaniebot
- @epage
Install ruff 0.15.21
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.21/ruff-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/ruff/releases/download/0.15.21/ruff-installer.ps1 | iex"Download ruff 0.15.21
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/ruffYou 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>