Change8

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

  1. Review the updated ruff-lsp migration guide (see PR #16072).
  2. 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