R

Ruff

R
Ruff Languages v0.17.3

0.17.3

Release Notes Released on 2026-10-26. Preview features [suspicious] Add shared-clock-mock (#29074) Bug fixes [pyupgrade] Avoid incorrect conversions to f-strings (UP032) (#25485) Performance Buffer stdout in ruff format (#29631) Specialize ASCII identifier lexing (#29503) Speed up identifier and keyword lexing (#29463) Documentation [flake8-bandit] Describe what the rule actually checks for httpx…

R
Ruff Languages v0.17.2

0.17.2

Release Notes Released on 2026-10-22. Preview features [complexity] Add unnecessary-regular-expression-compile (#25533) Bug fixes Avoid syntax errors for type variables with starred constraints (UP040, UP046, UP047, RUF053) (#28362) [pydocstyle] Treat backslash-escaped *args and **kwargs as documented (D417) (#29536) [pylint] Avoid false positive on starred elements (PLE0643) (#29483) [pylint] Mar…

R
Ruff Languages v0.17.1

0.17.1

Release Notes Released on 2026-10-15. Preview features [pycodestyle] Don't treat None, True, or False as keywords (E271-E274) (#29322) Bug fixes Fix dedent with multiple leading comments (#29382) [flake8-pyi] Detect legacy positional-only parameters in __new__ methods (PYI063) (#28502) [flake8-pyi] Fix false positives on quoted annotations (PYI036) (#29274) [perflint] Avoid invalid comprehension s…

R
Ruff Languages v0.17.0

0.17.0

Release Notes Released on 2026-10-09. The executables in our macOS and Windows release archives and ruff wheels are now code-signed. macOS executables are signed with an Apple Developer ID certificate and notarized by Apple. Windows executables have timestamped Authenticode signatures from Azure Artifact Signing. This enables verification of the release publisher and binary integrity, supports pub…

R
Ruff Languages v0.16.10

0.16.10

Release Notes Released on 2026-10-01. Preview features Add a migration guide for categories (#28087) [pyupgrade] Add rule for context manager iterator annotations (UP052) (#29000) Performance Reduce memory used by diagnostics (#28951) Server Avoid running uv format in untrusted workspaces (#28873) Documentation Fix links to moved changelog sections and renamed mdtests (#28941) Add Python 3.15 as a…

R
Ruff Languages v0.16.9

0.16.9

Release Notes Released on 2026-09-24. Preview features [ruff] Avoid false positives for overloaded division (RUF069) (#28309) Bug fixes [flake8-bugbear] Avoid false positives for calls with keyword arguments (B009, B010, B043) (#28776) [flake8-tidy-imports] Allow lazy imports to be used in deferred annotations (TID255) (#28767) Rule changes Update LibCST-based fixes for Python 3.15 (#28616) [flake…

R
Ruff Languages v0.16.8

0.16.8

Release Notes Released on 2026-09-16. Bug fixes Visit functional TypedDict keyword arguments correctly (#28584) [flake8-simplify] Detect nested async with under sync parent (SIM117) (#27821) [flake8-simplify] Preserve operand order in SIM109 fix (#27824) [pyupgrade] Preserve required parentheses in multiline UP040 fixes (#28164) [pyupgrade] Skip TypeVarTuple and ParamSpec conversions with bounds o…

R
Ruff Languages v0.16.7

0.16.7

Release Notes Released on 2026-09-10. Preview features [ruff] Add rule for default values on method receivers (RUF077) (#26700) [ruff] Recognize re.prefixmatch (RUF039, RUF055) (#28311) Bug fixes Alternate nested quotes inside format spec interpolations (#28259) [flake8-implicit-str-concat] Mark fix unsafe when it creates a docstring (ISC003) (#27981) [flake8-tidy-imports] Skip fixes for multi-mem…

R
Ruff Languages v0.16.6

0.16.6

Release Notes Released on 2026-09-03. Preview features Move pytest-fixture-autouse to the restriction category (#28219) [flake8-pytest-style] Add an autofix for PT020 (#27993) [flake8-tidy-imports] Prevent fix loop between TID254 and TID255 (#28262) [isort] Exclude pragma comments from line length calculation (I001) (#27313) Bug fixes Validate unary expressions when parsing (#28233) [flake8-async,…

R
Ruff Languages v0.16.5

0.16.5

Release Notes Released on 2026-08-27. Preview features Allow rules without codes (#28049) Introduce category selectors (#27666) Update preview default rules and categories (#27877) Bug fixes [flake8-async] Detect blocking generic HTTP requests (ASYNC210) (#28024) [flake8-datetimez] Allow timezone-safe strptime chains (DTZ007) (#28023) [flake8-simplify] Respect side effects in lambda defaults (SIM4…

R
Ruff Languages v0.16.4

0.16.4

Release Notes Released on 2026-08-20. Preview features [flake8-use-pathlib] Add autofix for PTH116 (#26460) [refurb] Restrict delete-full-slice to lists (FURB131) (#27711) [refurb] Skip FURB101 and FURB103 when the open argument is a file descriptor (#27643) Bug fixes Fix InvalidInstruction on Windows CPUs that do not support POPCNT (#27803) [pyflakes] Emit semantic syntax errors in string type de…

R
Ruff Languages v0.16.3

0.16.3

Release Notes Released on 2026-08-13. Preview features [pylint] Fix false negatives on negative numbers (PLR6104) (#27251) [pyupgrade] Add rule to replace while 1 with while True (UP048) (#27190) Bug fixes [flake8-bandit] Also check keyword arguments (S602, S603, S607, S609) (#27687) [pylint] Allow continue in finally on Python 3.8 (#27626) [pylint] Fix PLE1307 false positive with bools (#27651) […

R
Ruff Languages v0.16.2

0.16.2

Release Notes Released on 2026-08-06. Bug fixes [flake8-pyi] Avoid false positives on singledispatch functions (PYI041) (#27335) Server Register formatting capabilities dynamically to exclude TOML files (#27332) Contributors @MeGaGiGaGon @charliermarsh @epage @sharkdp @ntBre Install ruff 0.16.2 Install prebuilt binaries via shell script curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral…

R
Ruff Languages v0.16.1

0.16.1

Release Notes Released on 2026-07-30. Preview features Add an option to opt out of human-readable names (#27160) [flake8-pytest-style] Make fixes safe by default and unsafe only when comments are present (PT018) (#27201) [pyupgrade] Skip fix when a defaulted TypeVar precedes a non-defaulted one (UP040, UP046, UP047) (#27133) [ruff] Fix false positive with unpacked arguments (RUF065) (#26959) Bug f…

R
Ruff Languages v0.16.0

0.16.0

Release Notes Released on 2026-07-23. Check out the blog post for a migration guide and overview of the changes! Breaking changes Ruff now enables a much larger set of rules by default (413, up from 59). See the blog post for more details and the new Default Rules page for a full listing of the enabled rules. Note that this is primarily an expansion, but 18 of the more opinionated pycodestyle (E)…

R
Ruff Languages v0.15.22

0.15.22

Release Notes Released on 2026-07-16. Preview features [pycodestyle] Add an autofix for E402 (#22212) [refurb] Allow subclassing builtins in stub files (FURB189) (#26812) [ruff] Add rule to replace noqa comments with ruff:ignore (RUF105) (#26423) [ruff] Add rule to use human-readable names in ruff:ignore comments (RUF106) (#26682) [ruff] Add rule to use human-readable names in configuration select…

R
Ruff Languages v0.15.21

0.15.21

Release Notes Released on 2026-07-09. Preview features Add --add-ignore for adding ruff:ignore comments (#26346) [flake8-comprehensions] Drop C409 tuple comprehension preview behavior (#25707) Avoid whitespace normalization when formatting comments (#26455) [pyupgrade] Lint and fix use of deprecated abc decorators (UP051) (#26417) Bug fixes Refine non-empty f-string detection (#26526) Detect synta…

R
Ruff Languages v0.15.20

0.15.20

Release Notes Released on 2026-06-25. Preview features Allow human-readable names in rule selectors (#25887) Emit a warning instead of an error for unknown rule selectors (#26113) Match noqa shebang handling in ruff:ignore comments (#26286) [ruff] Remove pytest-fixture-autouse (RUF076) (#26240, #26371) Documentation Add versioning sections to custom crate READMEs (#26317) Update ruff_python_parser…

R
Ruff Languages v0.15.19

0.15.19

Release Notes Released on 2026-06-23. Preview features Support human-readable names when hovering suppression comments and in code actions (#26114) Bug fixes Fall back to default settings when editor-only settings are invalid (#26244) Fix panic when inserting text at a notebook cell boundary (#26111) Rule changes [pylint] Update fix suggestions for __floor__, __trunc__, __length_hint__, and __matm…

R
Ruff Languages v0.15.18

0.15.18

Release Notes Released on 2026-06-18. Preview features Handle nested ruff:ignore comments (#25791) Stop displaying severity in output (#26050) Use human-readable names in CLI output (#25937) Use human-readable names in LSP and playground diagnostics (#26058) [pydocstyle] Prevent property docstrings starting with verbs (D421) (#23775) [flake8-pyi] Extend PYI033 to Python files (#26129) Bug fixes De…

R
Ruff Languages v0.15.17

0.15.17

Release Notes Released on 2026-06-11. Preview features Allow human-readable names in suppression comments (#25614) Fix handling of ignore comments within a disable/enable pair (#25845) Prioritize human-readable names in CLI output (#25869) Respect diagnostic start and parent ranges and trailing comments in ruff:ignore suppressions (#25673) [flake8-async] Add trio.as_safe_channel to safe decorators…

R
Ruff Languages v0.15.16

0.15.16

Release Notes Released on 2026-06-04. Preview features [flake8-async] Implement yield-in-context-manager-in-async-generator (ASYNC119) (#24644) [pylint] Narrow diagnostic range and exclude cases without exception handlers (PLW0717) (#25440) [ruff] Treat yield before break from a terminal loop as terminal (RUF075) (#25447) Bug fixes [eradicate] Avoid flagging ruff:ignore comments as code (ERA001) (…

R
Ruff Languages v0.15.15

0.15.15

Release Notes Released on 2026-05-28. Preview features Fix Markdown closing fence handling (#25310) [pyflakes] Report duplicate imports in typing.TYPE_CHECKING block (F811) (#22560) Bug fixes [pyflakes] Treat function-scope bare annotations as locals per PEP 526 (F821) (#21540) Performance Avoid redundant TokenValue drops in the lexer (#25300) Reduce memory usage by dropping token-excess capacity…

R
Ruff Languages v0.15.14

0.15.14

Release Notes Released on 2026-05-21. Preview features [airflow] Implement airflow-task-implicit-multiple-outputs (AIR202) (#25152) [flake8-use-pathlib] Mark PTH101 fix as unsafe when first argument is a class attribute annotated as int (#25086) [pylint] Implement too-many-try-statements (W0717) (#23970) [ruff] Add incorrect-decorator-order (RUF074) (#23461) [ruff] Add fallible-context-manager (RU…

R
Ruff Languages v0.15.13

0.15.13

Release Notes Released on 2026-05-14. Preview features Add a rule to flag lazy imports that are eagerly evaluated (#25016) [pylint] Standardize diagnostic message (PLR0914, PLR0917) (#24996) Bug fixes Fix F811 false positive for class methods (#24933) Fix setting selection for multi-folder workspace (#24819) [eradicate] Fix false positive for lines with leading whitespace (ERA001) (#25122) [flake8…

R
Ruff Languages v0.15.12

0.15.12

Release Notes Released on 2026-04-24. Preview features Implement #ruff:file-ignore file-level suppressions (#23599) Implement #ruff:ignore logical-line suppressions (#23404) Revert preview changes to displayed diagnostic severity in LSP (#24789) [airflow] Implement task-branch-as-short-circuit (AIR004) (#23579) [flake8-bugbear] Fix break/continue handling in loop-iterator-mutation (B909) (#24440)…

R
Ruff Languages v0.15.11

0.15.11

Release Notes Released on 2026-04-16. Preview features [ruff] Ignore RUF029 when function is decorated with asynccontextmanager (#24642) [airflow] Implement airflow-xcom-pull-in-template-string (AIR201) (#23583) [flake8-bandit] Fix S103 false positives and negatives in mask analysis (#24424) Bug fixes [flake8-async] Omit overridden methods for ASYNC109 (#24648) Documentation [flake8-async] Add ove…