0.14.0
Breaking Changes📦 ruffView on GitHub →
⚠ 1 breaking✨ 3 features🐛 6 fixes🔧 12 symbols
Summary
Ruff 0.14.0 updates the default Python target to 3.14, adds several preview rule enhancements, and includes numerous bug fixes across flake8‑annotations, flynt, isort, and Ruff itself.
⚠️ Breaking Changes
- Default and latest supported Python version updated to 3.14; update CI pipelines, virtual environments, and Docker images to use Python >=3.14 to avoid compatibility issues.
Migration Steps
- Update CI pipelines, Docker images, and local development environments to use Python 3.14 or newer.
- Verify that any custom tooling relying on the previous default Python version is compatible with Python 3.14.
✨ New Features
- Preview: flake8-bugbear now includes certain guaranteed‑mutable expressions such as tuples, generators, and assignment expressions (rule B006).
- Preview: refurb adds fixes for rule FURB101 and FURB103.
- Preview: ruff extends rule FA102 with listed PEP 585‑compatible APIs.
🐛 Bug Fixes
- flake8-annotations: Fixed return‑type annotations to correctly handle shadowed builtin symbols (rules ANN201, ANN202, ANN204, ANN205, ANN206).
- flynt: Fixed f‑string quoting when mixed quote joiners are used (rule FLY002).
- isort: Fixed insertion of required imports before future imports (rule I002).
- ruff: Argfile expansion errors are now handled gracefully.
- ruff: RUF051 is skipped when an else/elif block is present.
- ruff: Improved handling of intermixed comments inside from‑imports.
🔧 Affected Symbols
B006FURB101FURB103FA102ANN201ANN202ANN204ANN205ANN206FLY002I002RUF051