Download Latest Version ruff-i686-pc-windows-msvc.zip (9.9 MB)
Email in envelope

Get an email when there's a new version of Ruff

Home / 0.15.3
Name Modified Size InfoDownloads / Week
Parent folder
ruff-x86_64-unknown-linux-musl.tar.gz.sha256 2026-02-26 104 Bytes
sha256.sum 2026-02-26 81 Bytes
source.tar.gz 2026-02-26 11.1 MB
source.tar.gz.sha256 2026-02-26 81 Bytes
ruff-x86_64-apple-darwin.tar.gz 2026-02-26 10.5 MB
ruff-x86_64-apple-darwin.tar.gz.sha256 2026-02-26 98 Bytes
ruff-x86_64-pc-windows-msvc.zip 2026-02-26 10.8 MB
ruff-x86_64-pc-windows-msvc.zip.sha256 2026-02-26 98 Bytes
ruff-x86_64-unknown-linux-gnu.tar.gz 2026-02-26 10.8 MB
ruff-x86_64-unknown-linux-gnu.tar.gz.sha256 2026-02-26 103 Bytes
ruff-x86_64-unknown-linux-musl.tar.gz 2026-02-26 10.9 MB
ruff-powerpc64le-unknown-linux-gnu.tar.gz 2026-02-26 11.5 MB
ruff-powerpc64le-unknown-linux-gnu.tar.gz.sha256 2026-02-26 108 Bytes
ruff-riscv64gc-unknown-linux-gnu.tar.gz 2026-02-26 10.8 MB
ruff-riscv64gc-unknown-linux-gnu.tar.gz.sha256 2026-02-26 106 Bytes
ruff-s390x-unknown-linux-gnu.tar.gz 2026-02-26 11.1 MB
ruff-s390x-unknown-linux-gnu.tar.gz.sha256 2026-02-26 102 Bytes
ruff-i686-unknown-linux-gnu.tar.gz 2026-02-26 10.7 MB
ruff-i686-unknown-linux-gnu.tar.gz.sha256 2026-02-26 101 Bytes
ruff-i686-unknown-linux-musl.tar.gz 2026-02-26 10.4 MB
ruff-i686-unknown-linux-musl.tar.gz.sha256 2026-02-26 102 Bytes
ruff-installer.ps1 2026-02-26 22.2 kB
ruff-installer.sh 2026-02-26 66.0 kB
ruff-arm-unknown-linux-musleabihf.tar.gz.sha256 2026-02-26 107 Bytes
ruff-armv7-unknown-linux-gnueabihf.tar.gz 2026-02-26 9.9 MB
ruff-armv7-unknown-linux-gnueabihf.tar.gz.sha256 2026-02-26 108 Bytes
ruff-armv7-unknown-linux-musleabihf.tar.gz 2026-02-26 9.9 MB
ruff-armv7-unknown-linux-musleabihf.tar.gz.sha256 2026-02-26 109 Bytes
ruff-i686-pc-windows-msvc.zip 2026-02-26 9.9 MB
ruff-i686-pc-windows-msvc.zip.sha256 2026-02-26 96 Bytes
ruff-aarch64-unknown-linux-gnu.tar.gz 2026-02-26 10.1 MB
ruff-aarch64-unknown-linux-gnu.tar.gz.sha256 2026-02-26 104 Bytes
ruff-aarch64-unknown-linux-musl.tar.gz 2026-02-26 10.0 MB
ruff-aarch64-unknown-linux-musl.tar.gz.sha256 2026-02-26 105 Bytes
ruff-arm-unknown-linux-musleabihf.tar.gz 2026-02-26 10.0 MB
dist-manifest.json 2026-02-26 46.1 kB
ruff-aarch64-apple-darwin.tar.gz 2026-02-26 9.7 MB
ruff-aarch64-apple-darwin.tar.gz.sha256 2026-02-26 99 Bytes
ruff-aarch64-pc-windows-msvc.zip 2026-02-26 10.1 MB
ruff-aarch64-pc-windows-msvc.zip.sha256 2026-02-26 99 Bytes
0.15.3 source code.tar.gz 2026-02-26 11.1 MB
0.15.3 source code.zip 2026-02-26 16.3 MB
README.md 2026-02-26 9.8 kB
Totals: 43 Items   215.8 MB 0

Release Notes

Released on 2026-02-26.

Preview features

  • Drop explicit support for .qmd file extension (#23572)

    This can now be enabled instead by setting the extension option:

    ```toml

    ruff.toml

    extension = { qmd = "markdown" }

    pyproject.toml

    [tool.ruff] extension = { qmd = "markdown" } ```

  • Include configured extensions in file discovery (#23400)

  • [flake8-bandit] Allow suspicious imports in TYPE_CHECKING blocks (S401-S415) (#23441)

  • [flake8-bugbear] Allow B901 in pytest hook wrappers (#21931)

  • [flake8-import-conventions] Add missing conventions from upstream (ICN001, ICN002) (#21373)

  • [pydocstyle] Add rule to enforce docstring section ordering (D420) (#23537)

  • [pylint] Implement swap-with-temporary-variable (PLR1712) (#22205)

  • [ruff] Add unnecessary-assign-before-yield (RUF070) (#23300)

  • [ruff] Support file-level noqa in RUF102 (#23535)

  • [ruff] Suppress diagnostic for invalid f-strings before Python 3.12 (RUF027) (#23480)

  • [flake8-bandit] Don't flag BaseLoader/CBaseLoader as unsafe (S506) (#23510)

Bug fixes

  • Avoid infinite loop between I002 and PYI025 (#23352)
  • [pyflakes] Fix false positive for @overload from lint.typing-modules (F811) (#23357)
  • [pyupgrade] Fix false positive for TypeVar default before Python 3.12 (UP046) (#23540)
  • [pyupgrade] Fix handling of \N in raw strings (UP032) (#22149)

Rule changes

  • Render sub-diagnostics in the GitHub output format (#23455)

  • [flake8-bugbear] Tag certain B007 diagnostics as unnecessary (#23453)

  • [ruff] Ignore unknown rule codes in RUF100 (#23531)

    These are now flagged by RUF102 instead.

Documentation

  • Fix missing settings links for several linters (#23519)
  • Update isort action comments heading (#23515)
  • [pydocstyle] Fix double comma in description of D404 (#23440)

Other changes

  • Update the Python module (notably find_ruff_bin) for parity with uv (#23406)

Contributors

Install ruff 0.15.3

Install prebuilt binaries via shell script

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

Install prebuilt binaries via powershell script

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

Download ruff 0.15.3

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:

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

:::sh
gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>
Source: README.md, updated 2026-02-26