0.16.6
payloadcms/payload0.16.6Sep 3, 2026by github-actions[bot]
Upgrading?
AI Summary
This release focuses on bug fixes and rule improvements for the Ruff linter, including fixes for parsing errors, panic handling on match statements, and improvements to various flake8 plugins.
Key Highlights
- Fix panic on match subjects (B031)
- Recognize builtins.open for async linting (ASYNC230, PLW1514)
- Add autofix for PT020 in flake8-pytest-style
- Prevent fix loop between TID254 and TID255
- Allow unary plus in match patterns on Python 3.15
New Features
- Move pytest-fixture-autouse to the restriction category
- Exclude pragma comments from line length calculation (I001)
- Add display-only fix for os.listdir (PTH208)
Full Release Notes
## Release Notes Released on 2026-09-03. ### Preview features - Move `pytest-fixture-autouse` to the `restriction` category ([#28219](https://github.com/astral-sh/ruff/pull/28219)) - \[`flake8-pytest-style`\] Add an autofix for `PT020` ([#27993](https://github.com/astral-sh/ruff/pull/27993)) - \[`flake8-tidy-imports`\] Prevent fix loop between `TID254` and `TID255` ([#28262](https://github.com/astral-sh/ruff/pull/28262)) - \[`isort`\] Exclude pragma comments from line length calculation (`I001`) ([#27313](https://github.com/astral-sh/ruff/pull/27313)) ### Bug fixes - Validate unary expressions when parsing ([#28233](https://github.com/astral-sh/ruff/pull/28233)) - \[`flake8-async`, `pylint`\] Recognize `builtins.open` (`ASYNC230`, `PLW1514`) ([#28021](https://github.com/astral-sh/ruff/pull/28021)) - \[`flake8-bugbear`\] Fix panic on `match` subjects (`B031`) ([#27781](https://github.com/astral-sh/ruff/pull/27781)) - \[`flake8-datetimez`\] Reject `tzinfo=None` for `datetime` bounds (`DTZ901`) ([#28022](https://github.com/astral-sh/ruff/pull/28022)) - \[`flake8-pytest-style`\] Avoid duplicate `PT017` diagnostics ([#27918](https://github.com/astral-sh/ruff/pull/27918)) - \[`ruff`\] Remove `lint.external` hint for Ruff-specific suppressions (`RUF102`) ([#27923](https://github.com/astral-sh/ruff/pull/27923)) ### Rule changes - \[`flake8-use-pathlib`\] Add display-only fix for `os.listdir` (`PTH208`) ([#28027](https://github.com/astral-sh/ruff/pull/28027)) ### Documentation - Add another example and glob reference for `lint.per-file-ignores` ([#28106](https://github.com/astral-sh/ruff/pull/28106)) - Add duplicate work guidance ([#28229](https://github.com/astral-sh/ruff/pull/28229)) - \[`flake8-async`\] Document thread offloading (`ASYNC240`) ([#28008](https://github.com/astral-sh/ruff/pull/28008)) - \[`pyupgrade`\] Clarify default `encoding` argument handling (`UP012`) ([#27315](https://github.com/astral-sh/ruff/pull/27315)) ### Other changes - Allow unary plus in match patterns on Python 3.15 ([#28231](https://github.com/astral-sh/ruff/pull/28231)) ### Contributors - [@flying-sheep](https://github.com/flying-sheep) - [@pikammmmm](https://github.com/pikammmmm) - [@fly1d](https://github.com/fly1d) - [@waterWang](https://github.com/waterWang) - [@Pierre-Sassoulas](https://github.com/Pierre-Sassoulas) - [@ntBre](https://github.com/ntBre) - [@jelle-openai](https://github.com/jelle-openai) - [@ericbuehl](https://github.com/ericbuehl) - [@tjkuson](https://github.com/tjkuson) - [@AbhinavMir](https://github.com/AbhinavMir) - [@Whning0513](https://github.com/Whning0513) - [@chirizxc](https://github.com/chirizxc) ## Install ruff 0.16.6 ### Install prebuilt binaries via shell script ```sh curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.16.6/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.6/ruff-installer.ps1 | iex" ``` ## Download ruff 0.16.6 | File | Platform | Checksum | |--------|----------|----------| | [ruff-aarch64-apple-darwin.tar.gz](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-aarch64-apple-darwin.tar.gz) | Apple Silicon macOS | [checksum](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-aarch64-apple-darwin.tar.gz.sha256) | | [ruff-x86_64-apple-darwin.tar.gz](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-x86_64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-x86_64-apple-darwin.tar.gz.sha256) | | [ruff-aarch64-pc-windows-msvc.zip](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-aarch64-pc-windows-msvc.zip) | ARM64 Windows | [checksum](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-aarch64-pc-windows-msvc.zip.sha256) | | [ruff-i686-pc-windows-msvc.zip](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-i686-pc-windows-msvc.zip) | x86 Windows | [checksum](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-i686-pc-windows-msvc.zip.sha256) | | [ruff-x86_64-pc-windows-msvc.zip](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-x86_64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-x86_64-pc-windows-msvc.zip.sha256) | | [ruff-aarch64-unknown-linux-gnu.tar.gz](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-aarch64-unknown-linux-gnu.tar.gz) | ARM64 Linux | [checksum](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-aarch64-unknown-linux-gnu.tar.gz.sha256) | | [ruff-i686-unknown-linux-gnu.tar.gz](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-i686-unknown-linux-gnu.tar.gz) | x86 Linux | [checksum](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-i686-unknown-linux-gnu.tar.gz.sha256) | | [ruff-powerpc64-unknown-linux-gnu.tar.gz](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-powerpc64-unknown-linux-gnu.tar.gz) | PPC64 Linux | [checksum](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-powerpc64-unknown-linux-gnu.tar.gz.sha256) | | [ruff-powerpc64le-unknown-linux-gnu.tar.gz](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-powerpc64le-unknown-linux-gnu.tar.gz) | PPC64LE Linux | [checksum](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-powerpc64le-unknown-linux-gnu.tar.gz.sha256) | | [ruff-riscv64gc-unknown-linux-gnu.tar.gz](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-riscv64gc-unknown-linux-gnu.tar.gz) | RISCV Linux | [checksum](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-riscv64gc-unknown-linux-gnu.tar.gz.sha256) | | [ruff-s390x-unknown-linux-gnu.tar.gz](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-s390x-unknown-linux-gnu.tar.gz) | S390x Linux | [checksum](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-s390x-unknown-linux-gnu.tar.gz.sha256) | | [ruff-x86_64-unknown-linux-gnu.tar.gz](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-x86_64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-x86_64-unknown-linux-gnu.tar.gz.sha256) | | [ruff-armv7-unknown-linux-gnueabihf.tar.gz](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-armv7-unknown-linux-gnueabihf.tar.gz) | ARMv7 Linux | [checksum](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-armv7-unknown-linux-gnueabihf.tar.gz.sha256) | | [ruff-aarch64-unknown-linux-musl.tar.gz](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-aarch64-unknown-linux-musl.tar.gz) | ARM64 MUSL Linux | [checksum](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-aarch64-unknown-linux-musl.tar.gz.sha256) | | [ruff-i686-unknown-linux-musl.tar.gz](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-i686-unknown-linux-musl.tar.gz) | x86 MUSL Linux | [checksum](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-i686-unknown-linux-musl.tar.gz.sha256) | | [ruff-x86_64-unknown-linux-musl.tar.gz](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-x86_64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-x86_64-unknown-linux-musl.tar.gz.sha256) | | [ruff-arm-unknown-linux-musleabihf.tar.gz](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-arm-unknown-linux-musleabihf.tar.gz) | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-arm-unknown-linux-musleabihf.tar.gz.sha256) | | [ruff-armv7-unknown-linux-musleabihf.tar.gz](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-armv7-unknown-linux-musleabihf.tar.gz) | ARMv7 MUSL Linux | [checksum](https://releases.astral.sh/github/ruff/releases/download/0.16.6/ruff-armv7-unknown-linux-musleabihf.tar.gz.sha256) | ## 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](https://cli.github.com/manual/gh_attestation_verify): ```sh gh attestation verify <file-path of downloaded artifact> --repo astral-sh/ruff ``` You can also download the attestation from [GitHub](https://github.com/astral-sh/ruff/attestations) and verify against that directly: ```sh gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation> ```
Related Repositories
openclaw/openclaw★ 392,689
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
nilbuild/developer-roadmap★ 370,064
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
morluto/rea★ 357,472
Reverse engineer anything with agents, from app behavior down to native binaries.
anomalyco/opencode★ 219,654
The open source coding agent.
n8n-io/n8n★ 208,248
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.