0.9.6
📦 ruffView on GitHub →
✨ 7 features🐛 2 fixes🔧 3 symbols
Summary
Ruff 0.9.6 introduces new Airflow task markers, optional strict module name checks, several new linting rules, server root exclusions, and fixes bugs in flake8-datetime and flake8-type-checking.
Migration Steps
- Review the updated ruff-lsp migration guide (see PR #16072).
- If you relied on `ruff.nativeServer` being deprecated, you can now use it without warnings.
✨ New Features
- Add `external_task.{ExternalTaskMarker, ExternalTaskSensor}` for Airflow (`AIR302`).
- Make strict module name comparison optional in flake8-builtins (`A005`).
- Extend fix to Python <= 3.9 for `redundant-none-literal` (`PYI061`) in flake8-pyi.
- Pylint now also reports when the object isn\'t a literal (`PLE1310`).
- Implement `indented-form-feed` rule (`RUF054`) in ruff.
- Skip type definitions for `missing-f-string-syntax` (`RUF027`) in ruff.
- Server now supports root exclusions in the project root.
🐛 Bug Fixes
- flake8-datetime: ignore `.replace()` calls while looking for `.astimezone`.
- flake8-type-checking: avoid `TC004` false positive where runtime definition is provided by `__getattr__`.
🔧 Affected Symbols
ExternalTaskMarkerExternalTaskSensorruff.nativeServer