What astral-sh/ruff shipped
Written by FoxPlug from public releases; not affiliated with Astral. An automatic summary of the public release, pull request and commit data of github.com/astral-sh/ruff. Astral did not write it and does not use or endorse FoxPlug. Every line links to the public change it describes.
Get a weekly update like this for your product, free
Week of September 21, 2026
What shipped
- Released version 0.16.9 with bug fixes for flake8-bugbear false positives and improvements to flake8-tidy-imports lazy import handling. Release
- Stabilized `os-path-commonprefix` rule (RUF071) moving it out of preview. Pull request #28764
- Stabilized `lazy-import-immediately-resolved` rule (TID255) moving it out of preview. Pull request #28761
- Stabilized `lazy-import-mismatch` rule (TID254) moving it out of preview. Pull request #28760
- Added opt-in `truthiness-test-of-none-union` rule to flag problematic truthiness checks on optional types. Pull request #28889
- Added `datetime as dt` as a conventional alias recommendation in import conventions checks. Pull request #28790
- Vendored `unicode_names2` crate to support unicode name operations. Pull request #28784
- Improved performance by caching the flattened module list per resolver environment during auto-import requests. Pull request #28932
- Updated default Python version to 3.11 and latest supported version to 3.15. Pull request #28792
- Reduced memory usage of diagnostics by deferring vector allocations until needed. Pull request #28951
Why it matters
Version 0.16.9 ships with three newly stabilized rules and one new opt-in rule, giving users more options for catching common patterns. The release also includes performance improvements for type checking and a major update to Python version support, reflecting the ecosystem moving forward.
Changelog entry
- Released 0.16.9 Release
- [ruff] Stabilize `os-path-commonprefix` (RUF071) Pull request #28764
- [flake8-tidy-imports] Stabilize `lazy-import-immediately-resolved` (TID255) Pull request #28761
- [flake8-tidy-imports] Stabilize `lazy-import-mismatch` (TID254) Pull request #28760
- [ruff] Add opt-in `truthiness-test-of-none-union` rule Pull request #28889
- [flake8-import-conventions] Add `datetime as dt` as conventional alias Pull request #28790
- Vendor `unicode_names2` Pull request #28784
- Update default Python version to 3.11 and latest to 3.15 Pull request #28792
- [ty] Cache flattened module list for auto-import performance Pull request #28932
- Reduce memory used by diagnostics Pull request #28951
Ruff 0.16.9 is out with 3 newly stabilized rules, a new opt-in rule for optional type checks, and updates for Python 3.15. Performance improvements to type checking included.
We released Ruff 0.16.9 this week. Three rules graduated from preview—os-path-commonprefix, lazy-import-immediately-resolved, and lazy-import-mismatch—while we added a new opt-in rule for detecting truthiness checks on optional types. The release updates Python version support to 3.11 as default and 3.15 as latest, and includes performance work on type inference caching and memory usage.