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 Python

Home / 0.12.1
Name Modified Size InfoDownloads / Week
Parent folder
ruff-x86_64-pc-windows-msvc.zip.sha256 2025-06-26 98 Bytes
ruff-x86_64-unknown-linux-gnu.tar.gz 2025-06-26 11.6 MB
ruff-x86_64-unknown-linux-gnu.tar.gz.sha256 2025-06-26 103 Bytes
ruff-x86_64-unknown-linux-musl.tar.gz 2025-06-26 11.7 MB
ruff-x86_64-unknown-linux-musl.tar.gz.sha256 2025-06-26 104 Bytes
sha256.sum 2025-06-26 81 Bytes
source.tar.gz 2025-06-26 6.8 MB
source.tar.gz.sha256 2025-06-26 81 Bytes
ruff-installer.ps1 2025-06-26 20.7 kB
ruff-installer.sh 2025-06-26 63.0 kB
ruff-powerpc64-unknown-linux-gnu.tar.gz 2025-06-26 12.5 MB
ruff-powerpc64-unknown-linux-gnu.tar.gz.sha256 2025-06-26 106 Bytes
ruff-powerpc64le-unknown-linux-gnu.tar.gz 2025-06-26 12.1 MB
ruff-powerpc64le-unknown-linux-gnu.tar.gz.sha256 2025-06-26 108 Bytes
ruff-s390x-unknown-linux-gnu.tar.gz 2025-06-26 11.6 MB
ruff-s390x-unknown-linux-gnu.tar.gz.sha256 2025-06-26 102 Bytes
ruff-x86_64-apple-darwin.tar.gz 2025-06-26 11.1 MB
ruff-x86_64-apple-darwin.tar.gz.sha256 2025-06-26 98 Bytes
ruff-x86_64-pc-windows-msvc.zip 2025-06-26 11.2 MB
ruff-armv7-unknown-linux-musleabihf.tar.gz 2025-06-26 10.1 MB
ruff-i686-pc-windows-msvc.zip 2025-06-26 10.2 MB
ruff-i686-pc-windows-msvc.zip.sha256 2025-06-26 96 Bytes
ruff-i686-unknown-linux-gnu.tar.gz 2025-06-26 11.8 MB
ruff-i686-unknown-linux-gnu.tar.gz.sha256 2025-06-26 101 Bytes
ruff-i686-unknown-linux-musl.tar.gz 2025-06-26 11.1 MB
ruff-i686-unknown-linux-musl.tar.gz.sha256 2025-06-26 102 Bytes
ruff-aarch64-unknown-linux-gnu.tar.gz 2025-06-26 10.7 MB
ruff-aarch64-unknown-linux-gnu.tar.gz.sha256 2025-06-26 104 Bytes
ruff-aarch64-unknown-linux-musl.tar.gz 2025-06-26 10.5 MB
ruff-aarch64-unknown-linux-musl.tar.gz.sha256 2025-06-26 105 Bytes
ruff-arm-unknown-linux-musleabihf.tar.gz 2025-06-26 10.3 MB
ruff-arm-unknown-linux-musleabihf.tar.gz.sha256 2025-06-26 107 Bytes
ruff-armv7-unknown-linux-gnueabihf.tar.gz 2025-06-26 10.2 MB
ruff-armv7-unknown-linux-gnueabihf.tar.gz.sha256 2025-06-26 108 Bytes
ruff-armv7-unknown-linux-musleabihf.tar.gz.sha256 2025-06-26 109 Bytes
dist-manifest.json 2025-06-26 52.3 kB
ruff-aarch64-apple-darwin.tar.gz 2025-06-26 10.5 MB
ruff-aarch64-apple-darwin.tar.gz.sha256 2025-06-26 99 Bytes
ruff-aarch64-pc-windows-msvc.zip 2025-06-26 10.4 MB
ruff-aarch64-pc-windows-msvc.zip.sha256 2025-06-26 99 Bytes
0.12.1 source code.tar.gz 2025-06-26 6.8 MB
0.12.1 source code.zip 2025-06-26 11.3 MB
README.md 2025-06-26 15.3 kB
Totals: 43 Items   212.7 MB 0

Release Notes

Preview features

  • [flake8-errmsg] Extend EM101 to support byte strings (#18867)
  • [flake8-use-pathlib] Add autofix for PTH202 (#18763)
  • [pygrep-hooks] Add AsyncMock methods to invalid-mock-access (PGH005) (#18547)
  • [pylint] Ignore __init__.py files in (PLC0414) (#18400)
  • [ruff] Trigger RUF037 for empty string and byte strings (#18862)
  • [formatter] Fix missing blank lines before decorated classes in .pyi files (#18888)

Bug fixes

  • Avoid generating diagnostics with per-file ignores (#18801)
  • Handle parenthesized arguments in remove_argument (#18805)
  • [flake8-logging] Avoid false positive for exc_info=True outside logger.exception (LOG014) (#18737)
  • [flake8-pytest-style] Enforce pytest import for decorators (#18779)
  • [flake8-pytest-style] Mark autofix for PT001 and PT023 as unsafe if there's comments in the decorator (#18792)
  • [flake8-pytest-style] PT001/PT023 fix makes syntax error on parenthesized decorator (#18782)
  • [flake8-raise] Make fix unsafe if it deletes comments (RSE102) (#18788)
  • [flake8-simplify] Fix SIM911 autofix creating a syntax error (#18793)
  • [flake8-simplify] Fix false negatives for shadowed bindings (SIM910, SIM911) (#18794)
  • [flake8-simplify] Preserve original behavior for except () and bare except (SIM105) (#18213)
  • [flake8-pyi] Fix PYI041's fix causing TypeError with None | None | ... (#18637)
  • [perflint] Fix PERF101 autofix creating a syntax error and mark autofix as unsafe if there are comments in the list call expr (#18803)
  • [perflint] Fix false negative in PERF401 (#18866)
  • [pylint] Avoid flattening nested min/max when outer call has single argument (PLW3301) (#16885)
  • [pylint] Fix PLC2801 autofix creating a syntax error (#18857)
  • [pylint] Mark PLE0241 autofix as unsafe if there's comments in the base classes (#18832)
  • [pylint] Suppress PLE2510/PLE2512/PLE2513/PLE2514/PLE2515 autofix if the text contains an odd number of backslashes (#18856)
  • [refurb] Detect more exotic float literals in FURB164 (#18925)
  • [refurb] Fix FURB163 autofix creating a syntax error for yield expressions (#18756)
  • [refurb] Mark FURB129 autofix as unsafe if there's comments in the readlines call (#18858)
  • [ruff] Fix false positives and negatives in RUF010 (#18690)
  • Fix casing of analyze.direction variant names (#18892)

Rule changes

  • Fix f-string interpolation escaping in generated fixes (#18882)
  • [flake8-return] Mark RET501 fix unsafe if comments are inside (#18780)
  • [flake8-async] Fix detection for large integer sleep durations in ASYNC116 rule (#18767)
  • [flake8-async] Mark autofix for ASYNC115 as unsafe if the call expression contains comments (#18753)
  • [flake8-bugbear] Mark autofix for B004 as unsafe if the hasattr call expr contains comments (#18755)
  • [flake8-comprehension] Mark autofix for C420 as unsafe if there's comments inside the dict comprehension (#18768)
  • [flake8-comprehensions] Handle template strings for comprehension fixes (#18710)
  • [flake8-future-annotations] Add autofix (FA100) (#18903)
  • [pyflakes] Mark F504/F522/F523 autofix as unsafe if there's a call with side effect (#18839)
  • [pylint] Allow fix with comments and document performance implications (PLW3301) (#18936)
  • [pylint] Detect more exotic NaN literals in PLW0177 (#18630)
  • [pylint] Fix PLC1802 autofix creating a syntax error and mark autofix as unsafe if there's comments in the len call (#18836)
  • [pyupgrade] Extend version detection to include sys.version_info.major (UP036) (#18633)
  • [ruff] Add lint rule RUF064 for calling chmod with non-octal integers (#18541)
  • [ruff] Added cls.__dict__.get('__annotations__') check (RUF063) (#18233)
  • [ruff] Frozen dataclass default should be valid (RUF009) (#18735)

Server

  • Consider virtual path for various server actions (#18910)

Documentation

Other changes

  • Disallow newlines in format specifiers of single quoted f- or t-strings (#18708)
  • [flake8-logging] Add fix safety section to LOG002 (#18840)
  • [pyupgrade] Add fix safety section to UP010 (#18838)

Contributors

Install ruff 0.12.1

Install prebuilt binaries via shell script

:::sh
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.12.1/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.12.1/ruff-installer.ps1 | iex"

Download ruff 0.12.1

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-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
Source: README.md, updated 2025-06-26