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-commonprefixrule (RUF071) moving it out of preview. Pull request #28764 - Stabilized
lazy-import-immediately-resolvedrule (TID255) moving it out of preview. Pull request #28761 - Stabilized
lazy-import-mismatchrule (TID254) moving it out of preview. Pull request #28760 - Added opt-in
truthiness-test-of-none-unionrule to flag problematic truthiness checks on optional types. Pull request #28889 - Added
datetime as dtas a conventional alias recommendation in import conventions checks. Pull request #28790 - Vendored
unicode_names2crate 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-unionrule Pull request #28889 - [flake8-import-conventions] Add
datetime as dtas conventional alias Pull request #28790 - Vendor
unicode_names2Pull 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.