# ruff 0.16.3 - Product: ruff (https://whatsnew.fyi/product/ruff) - Vendor: ruff - Date: 2026-08-13 - Version: 0.16.3 - Original notes: https://github.com/astral-sh/ruff/releases/tag/0.16.3 - Permalink: https://whatsnew.fyi/product/ruff/releases/0.16.3 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **fixed** — Fix false negatives on negative numbers for PLR6104 - **added** — Add rule to replace while 1 with while True (UP048) - **fixed** — Check keyword arguments for S602, S603, S607, S609 - **fixed** — Allow continue in finally on Python 3.8 for pylint - **fixed** — Fix PLE1307 false positive with bools - **fixed** — Fix false positives and negatives with %b format character for PLE1300 and PLE1307 - **fixed** — Improve handling of concatenated strings for PLE1300 - **changed** — Make np.chararray autofix backwards-compatible for NPY201 - **changed** — Enable PGO for Linux x86-64 Ruff releases - **changed** — Enable PGO for Linux ARM64 Ruff releases - **changed** — Enable PGO for Windows x86-64 Ruff releases - **changed** — Enable PGO for macOS ARM64 Ruff releases - **changed** — Reduce Expr size to 64 bytes - **changed** — Hyperlink rule codes in ruff check --statistics output - **changed** — Use mimalloc v3 ##### Release Notes Released on 2026-08-13. ###### Preview features - \[`pylint`\] Fix false negatives on negative numbers (`PLR6104`) ([#27251](https://github.com/astral-sh/ruff/pull/27251)) - \[`pyupgrade`\] Add rule to replace `while 1` with `while True` (`UP048`) ([#27190](https://github.com/astral-sh/ruff/pull/27190)) ###### Bug fixes - \[`flake8-bandit`\] Also check keyword arguments (`S602`, `S603`, `S607`, `S609`) ([#27687](https://github.com/astral-sh/ruff/pull/27687)) - \[`pylint`\] Allow `continue` in `finally` on Python 3.8 ([#27626](https://github.com/astral-sh/ruff/pull/27626)) - \[`pylint`\] Fix `PLE1307` false positive with bools ([#27651](https://github.com/astral-sh/ruff/pull/27651)) - \[`pylint`\] Fix false positives and negatives with `%b` format character (`PLE1300`, `PLE1307`) ([#27560](https://github.com/astral-sh/ruff/pull/27560)) - \[`pylint`\] Improve handling of concatenated strings (`PLE1300`) ([#27659](https://github.com/astral-sh/ruff/pull/27659)) ###### Rule changes - \[`numpy`\] Make `np.chararray` autofix backwards-compatible (`NPY201`) ([#27527](https://github.com/astral-sh/ruff/pull/27527)) ###### Performance - Enable PGO for Linux x86-64 Ruff releases ([#27570](https://github.com/astral-sh/ruff/pull/27570)) - Enable PGO for Linux ARM64 Ruff releases ([#27574](https://github.com/astral-sh/ruff/pull/27574)) - Enable PGO for Windows x86-64 Ruff releases ([#27573](https://github.com/astral-sh/ruff/pull/27573)) - Enable PGO for macOS ARM64 Ruff releases ([#27572](https://github.com/astral-sh/ruff/pull/27572)) - Reduce `Expr` size to 64 bytes ([#27591](https://github.com/astral-sh/ruff/pull/27591)) ###### CLI - Hyperlink rule codes in `ruff check --statistics` output ([#27646](https://github.com/astral-sh/ruff/pull/27646)) ###### Documentation - \[`ruff`\] Also suggest `asyncio.TaskGroup` (`RUF006`) ([#27461](https://github.com/astral-sh/ruff/pull/27461)) ###### Other changes - Use mimalloc v3 ([#27586](https://github.com/astral-sh/ruff/pull/27586)) ###### Contributors - [@Andrej730](https://github.com/Andrej730) - [@alonfaraj](https://github.com/alonfaraj) - [@romero-deshaw](https://github.com/romero-deshaw) - [@Avasam](https://github.com/Avasam) - [@tjkuson](https://github.com/tjkuson) - [@charliermarsh](https://github.com/charliermarsh) - [@chirizxc](https://github.com/chirizxc) - [@saberoueslati](https://github.com/saberoueslati) - [@MichaReiser](https://github.com/MichaReiser) ##### Install ruff 0.16.3 ###### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.16.3/ruff-installer.sh | sh ``` ###### Install prebuilt binaries via powershell script ```sh powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/ruff/releases/download/0.16.3/ruff-installer.ps1 | iex" ``` ##### Download ruff 0.16.3 | File | Platform | Checksum | |--------|----------|----------| | [ruff-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/ruff/releases/download/0.16.3/ruff-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/ruff/releases/download/0.16.3/ruff-aarch64-apple-darwin.tar.gz.sha256) | | [ruff-x86_64-apple-darwin.tar.gz](https://releases.astral.sh/github/ruff/releases/download/0.16.3/ruff-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://releases.astral.sh/github/ruff/releases/download/0.16.3/ruff-x86_64-apple-darwin.tar.gz.sha256) | | [ruff-aarch64-pc-windows-msvc.zip](https://releases.astral.sh/github/ruff/releases/download/0.16.3/ruff-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://releases.astral.sh/github/ruff/releases/download/0.16.3/ruff-aarch64-pc-windows-msvc.zip.sha256) | | [ruff-i686-pc-windows-msvc.zip](https://releases.astral.sh/github/ruff/releases/download/0.16.3/ruff-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://releases.astral.sh/github/ruff/releases/d _[Truncated at 4000 characters — full notes: https://github.com/astral-sh/ruff/releases/tag/0.16.3]_