github astral-sh/ruff 0.17.4

3 hours ago

Release Notes

Released on 2026-11-05.

Preview features

  • [flake8-logging-format] Avoid behavior changes and syntax errors in fixes (G004) (#27419)
  • [security] Implement tarfile-ignore-zeros-true (#28680)

Bug fixes

  • Accept a bare raise before a semicolon (#29761)
  • Allow match identifiers after a semicolon (#29760)
  • Fix panic on BOM-prefixed files in diagnostic renderer (#30017)
  • [flake8-simplify] Report collapsible elif clauses after a multi-statement if branch (SIM102) (#29814)

Rule changes

  • Show more nonprinting characters in diagnostic fix diffs (#30062)

Performance

  • Coalesce source slices when formatting attributes (#29841)
  • Collect return statements with a statement-only visitor (#29911)
  • [pyflakes] Defer value comparisons for repeated dictionary keys (F601, F602) (#29739)
  • Format node fields directly when comment handling is unnecessary (#29853)
  • Reduce formatter source-slice overhead (#29855)
  • Reuse a callee's qualified name across lint rules (#29916)
  • Skip invalid string character checks when the source contains none (#29883)
  • Use a Bloom filter for formatter comment lookups (#29852)
  • Use a concrete buffer for ordinary writes (#29819)

CLI

  • Give NO_COLOR precedence in Ruff and ty diagnostics (#29898)
  • Honor CLICOLOR=0 in Ruff and ty diagnostics (#29910)

Documentation

  • Correct the documented version and src defaults for ruff-action (#29880)
  • [flake8-bugbear] Make B014 example error out-of-the-box (#29941)
  • [flake8-no-pep420] Document preview behavior (INP001) (#29764)
  • [isort] Expand I001 documentation (#29843)

Other changes

  • [syntax-errors] Extend __debug__ write check to attribute targets (#27908)

Contributors

Install ruff 0.17.4

Install prebuilt binaries via shell script

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

Install prebuilt binaries via powershell script

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

Download ruff 0.17.4

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-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>

Don't miss a new ruff release

NewReleases is sending notifications on new releases.