0.14.3
Breaking Changes📦 ruffView on GitHub →
⚠ 1 breaking✨ 9 features🐛 11 fixes⚡ 1 deprecations🔧 18 symbols
Summary
Ruff 0.14.3 introduces several preview features such as `--output-format` support with `--watch` and new eager conversion patterns, fixes numerous false‑positive bugs, and adds a breaking change by removing the Airflow `DAG.create_dagrun` API.
⚠️ Breaking Changes
- The Airflow API `airflow.DAG.create_dagrun` has been removed (rule AIR301). Code that calls this method will raise an AttributeError. Update your code to use the new Airflow DAG execution API (e.g., `airflow.DAG.run` or the recommended replacement) to restore functionality.
Migration Steps
- Replace any usage of `airflow.DAG.create_dagrun` with the new Airflow DAG execution method (e.g., `airflow.DAG.run` or the recommended alternative).
- Review your configuration if you rely on the previous behavior of `--output-format` with `--watch`; the new handling may affect output formatting.
✨ New Features
- Respect `--output-format` with `--watch` (preview feature).
- Fix false positive on explicit exception re‑raising in pydoclint (`DOC501`, `DOC502`).
- Revert to stable behavior for imports in alternate branches for pyflakes rule F401.
- Implement `stop-iteration-return` rule PLR1708 in pylint.
- Add support for additional eager conversion patterns (rule RUF065).
- Add missing docstring sections to the NumPy list.
- Extend `airflow.models.Param` check (rule AIR311).
- Warn that `airflow.DAG.create_dagrun` has been removed (rule AIR301).
- Preserve digit separators in `Decimal` constructor (rule FURB157).
🐛 Bug Fixes
- Fix finding keyword range for clause header after a statement ending with a semicolon.
- Fix syntax‑error false positive on nested alternative patterns.
- ISC001: Fix panic when string literals are unclosed.
- flake8-django: Apply DJ001 to annotated fields.
- flake8-pyi: Fix PYI034 to not trigger on metaclasses.
- flake8-type-checking: Fix TC003 false positive with future‑annotations.
- pyflakes: Fix false positive for __class__ in lambda expressions within class definitions (F821).
- pyupgrade: Fix false positive for TypeVar with default on Python <3.13 (UP046, UP047).
- Server: Avoid sending an unnecessary "clear diagnostics" message for clients supporting pull diagnostics.
- Documentation: flake8-bandit example for S308 corrected.
- Other: Clearer error message when line‑length exceeds the configured threshold.
🔧 Affected Symbols
--output-format flag--watch flagpydoclint rule DOC501pydoclint rule DOC502pyflakes rule F401pylint rule PLR1708ruff rule RUF065airflow.models.Paramairflow.DAG.create_dagrunrefurb rule FURB157ISC001 ruleflake8-django rule DJ001flake8-pyi rule PYI034flake8-type-checking rule TC003pyflakes rule F821pyupgrade rule UP046pyupgrade rule UP047Server pull‑diagnostics handling⚡ Deprecations
- Airflow `DAG.create_dagrun` is deprecated and now removed; users should migrate to the new DAG execution interface.