Change8

0.11.8

📦 ruffView on GitHub →
6 features🐛 8 fixes🔧 15 symbols

Summary

Ruff 0.11.8 introduces several preview Airflow rules, new syntax‑error detections, and numerous bug fixes, while adding Python 3.14 support and a configuration option to disable typing_extensions imports.

✨ New Features

  • Apply auto fixes to cases where the names have changed in Airflow 3 (AIR302, AIR311)
  • Extend AIR301 rule
  • Update existing AIR302 rules with better suggestions
  • Mark fix as safe for readlines-in-for (FURB129)
  • nonlocal declaration at module level (syntax-errors)
  • Detect single starred expression assignment `x = *y` (syntax-errors)

🐛 Bug Fixes

  • Ensure Literal[None,] | Literal[None,] is not autofixed to None | None (PYI061)
  • Avoid suggesting Path.iterdir() for os.listdir with file descriptor (PTH208)
  • Fix PTH104 false positive when rename is passed a file descriptor
  • Fix PTH116 false positive when stat is passed a file descriptor
  • Fix PTH123 false positive when open is passed a file descriptor from a function call
  • Fix duplicated diagnostic in E712
  • Detect global declarations in module scope (PLE0118)
  • Make async-comprehension-in-sync-comprehension more specific

🔧 Affected Symbols

AIR302AIR311AIR301FURB129nonlocalstarred assignmentPYI061PTH208PTH104PTH116PTH123E712PLE0118async-comprehension-in-sync-comprehensiontyping_extensions