Update dependency ruff to >=0.15.19 #11

Merged
fzorb merged 1 commit from renovate/ruff-0.x into master 2026-06-25 10:43:23 +00:00
Owner

This PR contains the following updates:

Package Change Age Confidence
ruff (source, changelog) >=0.15.12>=0.15.19 age confidence

Release Notes

astral-sh/ruff (ruff)

v0.15.19

Compare Source

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 __matmul__ variants (PLC2801) (#​26239)
Performance
  • Avoid allocating when parsing single string literals (#​26200)
  • Avoid reallocating singleton call arguments (#​26223)
  • Lazily create source files for lint diagnostics (#​26226)
  • Optimize formatter text width and indentation (#​26236)
  • Reserve capacity for builtin bindings (#​26229)
  • Skip repeated-key checks for singleton dictionaries (#​26228)
  • Use ArrayVec for qualified name segments (#​26224)
Documentation
  • [flake8-pyi] Note that PYI051 is an opinionated stylistic rule (#​26179)
  • [pyupgrade] Clarify UP029 as a Python 2 compatibility rule (#​26243)
Other changes
  • Publish Ruff crates to crates.io (#​26271)
Contributors

v0.15.18

Compare Source

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
  • Detect equivalent numeric mapping keys (#​26009)
  • Detect mapping keys equivalent to booleans (#​25982)
  • Detect repeated signed and complex dictionary keys (#​26007)
Rule changes
  • [flake8-pyi] Rename PYI033 to legacy-type-comment (#​26131)
Performance
  • Use ThinVec for call keywords (#​25999)
  • Inline parser recovery context checks (#​26038)
  • Match parser keywords as bytes (#​26037)
  • Move value parsing out of lexing (#​25360)
Server
  • Render subdiagnostics and secondary annotations as related information (#​26011)
Documentation
  • Update fix availability for always-fixable rules (#​26091)
  • [flake8-tidy-imports] Add fix safety section (TID252) (#​17491)
Parser
  • Reject __debug__ lambda parameters (#​26022)
  • Reject _ as a match-pattern target (#​25977)
  • Reject multiple starred names in sequence patterns (#​25976)
  • Reject parenthesized star imports (#​26021)
  • Reject starred comprehension targets (#​26023)
  • Reject unparenthesized generator expressions in class bases (#​25978)
  • Reject yield expressions after commas (#​26024)
  • Validate function type parameter default order (#​25981)
Playground
Contributors

v0.15.17

Compare Source

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 (ASYNC119) (#​25775)
  • [flake8-pytest-style] Also check pytest_asyncio fixtures (#​25375)
  • [ruff] Ban pytest autouse fixtures (RUF076) (#​25477)
  • [pyupgrade] Add from __future__ import annotations automatically (UP007, UP045) (#​23259)
Bug fixes
  • Fix diagnostic when ruff:enable or ruff:disable appears where ruff:ignore is expected (#​25700)
  • [pyupgrade] Preserve leading empty literals to avoid syntax errors (UP032) (#​25491)
Rule changes
  • [flake8-pytest-style] Clarify diagnostic message for single parameters (PT007) (#​25592)
  • [numpy] Drop autofix for np.in1d (NPY201) (#​25612)
  • [pylint] Exempt Python version comparisons (PLR2004) (#​25743)
Performance
  • Reserve AST Vecs with correct capacity for common cases (#​25451)
Formatter
  • Preserve whitespace for Quarto cell option comments (#​25641)
CLI
Other changes
  • Fix playground diagnostics scrollbars (#​25642)
Contributors

v0.15.16

Compare Source

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) (#​25537)
  • [eradicate] Fix ERA001/RUF100 conflict when noqa is on commented-out code (#​25414)
  • [pyflakes] Avoid removing the format call when it would change behavior (F523) (#​25320)
  • [pylint] Avoid syntax errors in invalid character replacements in f-strings before Python 3.12 (PLE2510, PLE2512, PLE2513, PLE2514, PLE2515) (#​25544)
  • [pyupgrade] Avoid converting format calls with more kinds of side effects (UP032) (#​25484)
Rule changes
  • [flake8-pytest-style] Avoid fixes for ambiguous argnames and argvalues combinations (PT006) (#​24776)
Performance
  • Drop excess capacity from statement suites during parsing (#​25368)
Documentation
  • [pydocstyle] Improve discoverability of rules enabled for each convention (#​24973)
  • [ruff] Restore example code for Python versions before 3.15 (RUF017) (#​25439)
  • Fix typo bin/activebin/activate in tutorial (#​25473)
Other changes
  • Shrink additional parser AST collections (#​25465)
Contributors

v0.15.15

Compare Source

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 and improve performance by approximating the initial tokens Vec size (#​25354)
  • Use ThinVec in AST to shrink Stmt (#​25361)
Documentation
  • Fix line-length example for --config option (#​25389)
  • [flake8-comprehensions] Document RecursionError edge case in __len__ (C416) (#​25286)
  • [mccabe] Improve example (C901) (#​25287)
  • [pyupgrade] Clarify fix safety docs (UP007, UP045) (#​25288)
  • [refurb] Document FURB192 exception change for empty sequences (#​25317)
  • [ruff] Document false negative for user-defined types (RUF013) (#​25289)
Formatter
  • Fix formatting of lambdas nested within f-strings (#​25398)
Server
  • Return code action for codeAction/resolve requests that contain no or no valid URL (#​25365)
Other changes
  • Expand semantic syntax errors for invalid walruses (#​25415)
Contributors

v0.15.14

Compare Source

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 (RUF075) (#​22844)
Bug fixes
  • Fix lambda formatting in interpolated string expressions (#​25144)
  • Treat generic frozenset annotations as immutable (#​25251)
  • [flake8-type-checking] Avoid strict behavior when future-annotations are enabled (TC001, TC002, TC003) (#​25035)
  • [pylint] Avoid false positives in else clause (PLR1733) (#​25177)
Rule changes
  • [flake8-comprehensions] Skip C417 for lambdas with positional-only parameters (#​25272)
  • [flake8-simplify] Preserve f-string source verbatim in SIM101 fix (#​25061)
Performance
  • Avoid unnecessary parser lookahead for operators (#​25290)
Documentation
  • Update code example setting Neovim LSP log level (#​25284)
Other changes
Contributors

v0.15.13

Compare Source

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-pyi] Fix false positive for f-string debug specifier (PYI016) (#​24098)
Rule changes
  • Always include panic payload in panic diagnostic message (#​24873)
  • Restrict PYI034 for in-place operations to enclosing class (#​24511)
  • Improve error message for parameters that are declared global (#​24902)
  • Update known stdlib (#​25103)
Performance
  • [isort] Avoid constructing glob::Patterns for literal known modules (#​25123)
CLI
  • Add TOML examples to --config help text (#​25013)
  • Colorize ruff check 'All checks passed' (#​25085)
Configuration
  • Increase max allowed value of line-length setting (#​24962)
Documentation
  • Add D203 to rules that conflict with the formatter (#​25044)
  • Clarify COM819 and formatter interaction (#​25045)
  • Clarify that NotImplemented is a value, not an exception (F901) (#​25054)
  • Update number of lint rules supported (#​24942)
Other changes
  • Simplify the playground's markdown template (#​24924)
Contributors

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

This PR contains the following updates: | Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---| | [ruff](https://docs.astral.sh/ruff) ([source](https://github.com/astral-sh/ruff), [changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)) | `>=0.15.12` → `>=0.15.19` | ![age](https://developer.mend.io/api/mc/badges/age/pypi/ruff/0.15.19?slim=true) | ![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ruff/0.15.12/0.15.19?slim=true) | --- ### Release Notes <details> <summary>astral-sh/ruff (ruff)</summary> ### [`v0.15.19`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#01519) [Compare Source](https://github.com/astral-sh/ruff/compare/0.15.18...0.15.19) Released on 2026-06-23. ##### Preview features - Support human-readable names when hovering suppression comments and in code actions ([#&#8203;26114](https://github.com/astral-sh/ruff/pull/26114)) ##### Bug fixes - Fall back to default settings when editor-only settings are invalid ([#&#8203;26244](https://github.com/astral-sh/ruff/pull/26244)) - Fix panic when inserting text at a notebook cell boundary ([#&#8203;26111](https://github.com/astral-sh/ruff/pull/26111)) ##### Rule changes - \[`pylint`] Update fix suggestions for `__floor__`, `__trunc__`, `__length_hint__`, and `__matmul__` variants (`PLC2801`) ([#&#8203;26239](https://github.com/astral-sh/ruff/pull/26239)) ##### Performance - Avoid allocating when parsing single string literals ([#&#8203;26200](https://github.com/astral-sh/ruff/pull/26200)) - Avoid reallocating singleton call arguments ([#&#8203;26223](https://github.com/astral-sh/ruff/pull/26223)) - Lazily create source files for lint diagnostics ([#&#8203;26226](https://github.com/astral-sh/ruff/pull/26226)) - Optimize formatter text width and indentation ([#&#8203;26236](https://github.com/astral-sh/ruff/pull/26236)) - Reserve capacity for builtin bindings ([#&#8203;26229](https://github.com/astral-sh/ruff/pull/26229)) - Skip repeated-key checks for singleton dictionaries ([#&#8203;26228](https://github.com/astral-sh/ruff/pull/26228)) - Use ArrayVec for qualified name segments ([#&#8203;26224](https://github.com/astral-sh/ruff/pull/26224)) ##### Documentation - \[`flake8-pyi`] Note that `PYI051` is an opinionated stylistic rule ([#&#8203;26179](https://github.com/astral-sh/ruff/pull/26179)) - \[`pyupgrade`] Clarify `UP029` as a Python 2 compatibility rule ([#&#8203;26243](https://github.com/astral-sh/ruff/pull/26243)) ##### Other changes - Publish Ruff crates to crates.io ([#&#8203;26271](https://github.com/astral-sh/ruff/pull/26271)) ##### Contributors - [@&#8203;MakenRosa](https://github.com/MakenRosa) - [@&#8203;MichaReiser](https://github.com/MichaReiser) - [@&#8203;trilamsr](https://github.com/trilamsr) - [@&#8203;ntBre](https://github.com/ntBre) - [@&#8203;sanjibani](https://github.com/sanjibani) - [@&#8203;charliermarsh](https://github.com/charliermarsh) ### [`v0.15.18`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#01518) [Compare Source](https://github.com/astral-sh/ruff/compare/0.15.17...0.15.18) Released on 2026-06-18. ##### Preview features - Handle nested `ruff:ignore` comments ([#&#8203;25791](https://github.com/astral-sh/ruff/pull/25791)) - Stop displaying severity in output ([#&#8203;26050](https://github.com/astral-sh/ruff/pull/26050)) - Use human-readable names in CLI output ([#&#8203;25937](https://github.com/astral-sh/ruff/pull/25937)) - Use human-readable names in LSP and playground diagnostics ([#&#8203;26058](https://github.com/astral-sh/ruff/pull/26058)) - \[`pydocstyle`] Prevent property docstrings starting with verbs (`D421`) ([#&#8203;23775](https://github.com/astral-sh/ruff/pull/23775)) - \[`flake8-pyi`] Extend `PYI033` to Python files ([#&#8203;26129](https://github.com/astral-sh/ruff/pull/26129)) ##### Bug fixes - Detect equivalent numeric mapping keys ([#&#8203;26009](https://github.com/astral-sh/ruff/pull/26009)) - Detect mapping keys equivalent to booleans ([#&#8203;25982](https://github.com/astral-sh/ruff/pull/25982)) - Detect repeated signed and complex dictionary keys ([#&#8203;26007](https://github.com/astral-sh/ruff/pull/26007)) ##### Rule changes - \[`flake8-pyi`] Rename `PYI033` to `legacy-type-comment` ([#&#8203;26131](https://github.com/astral-sh/ruff/pull/26131)) ##### Performance - Use `ThinVec` for call keywords ([#&#8203;25999](https://github.com/astral-sh/ruff/pull/25999)) - Inline parser recovery context checks ([#&#8203;26038](https://github.com/astral-sh/ruff/pull/26038)) - Match parser keywords as bytes ([#&#8203;26037](https://github.com/astral-sh/ruff/pull/26037)) - Move value parsing out of lexing ([#&#8203;25360](https://github.com/astral-sh/ruff/pull/25360)) ##### Server - Render subdiagnostics and secondary annotations as related information ([#&#8203;26011](https://github.com/astral-sh/ruff/pull/26011)) ##### Documentation - Update fix availability for always-fixable rules ([#&#8203;26091](https://github.com/astral-sh/ruff/pull/26091)) - \[`flake8-tidy-imports`] Add fix safety section (`TID252`) ([#&#8203;17491](https://github.com/astral-sh/ruff/pull/17491)) ##### Parser - Reject `__debug__` lambda parameters ([#&#8203;26022](https://github.com/astral-sh/ruff/pull/26022)) - Reject `_` as a match-pattern target ([#&#8203;25977](https://github.com/astral-sh/ruff/pull/25977)) - Reject multiple starred names in sequence patterns ([#&#8203;25976](https://github.com/astral-sh/ruff/pull/25976)) - Reject parenthesized star imports ([#&#8203;26021](https://github.com/astral-sh/ruff/pull/26021)) - Reject starred comprehension targets ([#&#8203;26023](https://github.com/astral-sh/ruff/pull/26023)) - Reject unparenthesized generator expressions in class bases ([#&#8203;25978](https://github.com/astral-sh/ruff/pull/25978)) - Reject `yield` expressions after commas ([#&#8203;26024](https://github.com/astral-sh/ruff/pull/26024)) - Validate function type parameter default order ([#&#8203;25981](https://github.com/astral-sh/ruff/pull/25981)) ##### Playground - Make diagnostic links clickable ([#&#8203;26104](https://github.com/astral-sh/ruff/pull/26104)) - Use diagnostic tags ([#&#8203;26105](https://github.com/astral-sh/ruff/pull/26105)) ##### Contributors - [@&#8203;AlexWaygood](https://github.com/AlexWaygood) - [@&#8203;ntBre](https://github.com/ntBre) - [@&#8203;gtkacz](https://github.com/gtkacz) - [@&#8203;MichaReiser](https://github.com/MichaReiser) - [@&#8203;charliermarsh](https://github.com/charliermarsh) - [@&#8203;Kalmaegi](https://github.com/Kalmaegi) ### [`v0.15.17`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#01517) [Compare Source](https://github.com/astral-sh/ruff/compare/0.15.16...0.15.17) Released on 2026-06-11. ##### Preview features - Allow human-readable names in suppression comments ([#&#8203;25614](https://github.com/astral-sh/ruff/pull/25614)) - Fix handling of `ignore` comments within a `disable`/`enable` pair ([#&#8203;25845](https://github.com/astral-sh/ruff/pull/25845)) - Prioritize human-readable names in CLI output ([#&#8203;25869](https://github.com/astral-sh/ruff/pull/25869)) - Respect diagnostic start and parent ranges and trailing comments in `ruff:ignore` suppressions ([#&#8203;25673](https://github.com/astral-sh/ruff/pull/25673)) - \[`flake8-async`] Add `trio.as_safe_channel` to safe decorators (`ASYNC119`) ([#&#8203;25775](https://github.com/astral-sh/ruff/pull/25775)) - \[`flake8-pytest-style`] Also check `pytest_asyncio` fixtures ([#&#8203;25375](https://github.com/astral-sh/ruff/pull/25375)) - \[`ruff`] Ban `pytest` autouse fixtures (`RUF076`) ([#&#8203;25477](https://github.com/astral-sh/ruff/pull/25477)) - \[`pyupgrade`] Add `from __future__ import annotations` automatically (`UP007`, `UP045`) ([#&#8203;23259](https://github.com/astral-sh/ruff/pull/23259)) ##### Bug fixes - Fix diagnostic when `ruff:enable` or `ruff:disable` appears where `ruff:ignore` is expected ([#&#8203;25700](https://github.com/astral-sh/ruff/pull/25700)) - \[`pyupgrade`] Preserve leading empty literals to avoid syntax errors (`UP032`) ([#&#8203;25491](https://github.com/astral-sh/ruff/pull/25491)) ##### Rule changes - \[`flake8-pytest-style`] Clarify diagnostic message for single parameters (`PT007`) ([#&#8203;25592](https://github.com/astral-sh/ruff/pull/25592)) - \[`numpy`] Drop autofix for `np.in1d` (`NPY201`) ([#&#8203;25612](https://github.com/astral-sh/ruff/pull/25612)) - \[`pylint`] Exempt Python version comparisons (`PLR2004`) ([#&#8203;25743](https://github.com/astral-sh/ruff/pull/25743)) ##### Performance - Reserve AST `Vec`s with correct capacity for common cases ([#&#8203;25451](https://github.com/astral-sh/ruff/pull/25451)) ##### Formatter - Preserve whitespace for Quarto cell option comments ([#&#8203;25641](https://github.com/astral-sh/ruff/pull/25641)) ##### CLI - Allow rule names in `ruff rule` ([#&#8203;25640](https://github.com/astral-sh/ruff/pull/25640)) ##### Other changes - Fix playground diagnostics scrollbars ([#&#8203;25642](https://github.com/astral-sh/ruff/pull/25642)) ##### Contributors - [@&#8203;SuryanshSS1011](https://github.com/SuryanshSS1011) - [@&#8203;anishgirianish](https://github.com/anishgirianish) - [@&#8203;romero-deshaw](https://github.com/romero-deshaw) - [@&#8203;karlhillx](https://github.com/karlhillx) - [@&#8203;carljm](https://github.com/carljm) - [@&#8203;ntBre](https://github.com/ntBre) - [@&#8203;11happy](https://github.com/11happy) - [@&#8203;Kilo59](https://github.com/Kilo59) - [@&#8203;oconnor663](https://github.com/oconnor663) - [@&#8203;LeonidasZhak](https://github.com/LeonidasZhak) - [@&#8203;DavisVaughan](https://github.com/DavisVaughan) - [@&#8203;MeGaGiGaGon](https://github.com/MeGaGiGaGon) - [@&#8203;jonathandung](https://github.com/jonathandung) - [@&#8203;MichaReiser](https://github.com/MichaReiser) - [@&#8203;brianmego](https://github.com/brianmego) ### [`v0.15.16`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#01516) [Compare Source](https://github.com/astral-sh/ruff/compare/0.15.15...0.15.16) Released on 2026-06-04. ##### Preview features - \[`flake8-async`] Implement `yield-in-context-manager-in-async-generator` (`ASYNC119`) ([#&#8203;24644](https://github.com/astral-sh/ruff/pull/24644)) - \[`pylint`] Narrow diagnostic range and exclude cases without exception handlers (`PLW0717`) ([#&#8203;25440](https://github.com/astral-sh/ruff/pull/25440)) - \[`ruff`] Treat `yield` before `break` from a terminal loop as terminal (`RUF075`) ([#&#8203;25447](https://github.com/astral-sh/ruff/pull/25447)) ##### Bug fixes - \[`eradicate`] Avoid flagging `ruff:ignore` comments as code (`ERA001`) ([#&#8203;25537](https://github.com/astral-sh/ruff/pull/25537)) - \[`eradicate`] Fix `ERA001`/`RUF100` conflict when `noqa` is on commented-out code ([#&#8203;25414](https://github.com/astral-sh/ruff/pull/25414)) - \[`pyflakes`] Avoid removing the `format` call when it would change behavior (`F523`) ([#&#8203;25320](https://github.com/astral-sh/ruff/pull/25320)) - \[`pylint`] Avoid syntax errors in invalid character replacements in f-strings before Python 3.12 (`PLE2510`, `PLE2512`, `PLE2513`, `PLE2514`, `PLE2515`) ([#&#8203;25544](https://github.com/astral-sh/ruff/pull/25544)) - \[`pyupgrade`] Avoid converting `format` calls with more kinds of side effects (`UP032`) ([#&#8203;25484](https://github.com/astral-sh/ruff/pull/25484)) ##### Rule changes - \[`flake8-pytest-style`] Avoid fixes for ambiguous `argnames` and `argvalues` combinations (`PT006`) ([#&#8203;24776](https://github.com/astral-sh/ruff/pull/24776)) ##### Performance - Drop excess capacity from statement suites during parsing ([#&#8203;25368](https://github.com/astral-sh/ruff/pull/25368)) ##### Documentation - \[`pydocstyle`] Improve discoverability of rules enabled for each convention ([#&#8203;24973](https://github.com/astral-sh/ruff/pull/24973)) - \[`ruff`] Restore example code for Python versions before 3.15 (`RUF017`) ([#&#8203;25439](https://github.com/astral-sh/ruff/pull/25439)) - Fix typo `bin/active` → `bin/activate` in tutorial ([#&#8203;25473](https://github.com/astral-sh/ruff/pull/25473)) ##### Other changes - Shrink additional parser AST collections ([#&#8203;25465](https://github.com/astral-sh/ruff/pull/25465)) ##### Contributors - [@&#8203;Redslayer112](https://github.com/Redslayer112) - [@&#8203;koriyoshi2041](https://github.com/koriyoshi2041) - [@&#8203;George-Ogden](https://github.com/George-Ogden) - [@&#8203;TejasAmle](https://github.com/TejasAmle) - [@&#8203;anishgirianish](https://github.com/anishgirianish) - [@&#8203;ntBre](https://github.com/ntBre) - [@&#8203;MichaReiser](https://github.com/MichaReiser) - [@&#8203;loganrosen](https://github.com/loganrosen) - [@&#8203;RafaelJohn9](https://github.com/RafaelJohn9) - [@&#8203;adityasingh2400](https://github.com/adityasingh2400) ### [`v0.15.15`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#01515) [Compare Source](https://github.com/astral-sh/ruff/compare/0.15.14...0.15.15) Released on 2026-05-28. ##### Preview features - Fix Markdown closing fence handling ([#&#8203;25310](https://github.com/astral-sh/ruff/pull/25310)) - \[`pyflakes`] Report duplicate imports in `typing.TYPE_CHECKING` block (`F811`) ([#&#8203;22560](https://github.com/astral-sh/ruff/pull/22560)) ##### Bug fixes - \[`pyflakes`] Treat function-scope bare annotations as locals per PEP 526 (`F821`) ([#&#8203;21540](https://github.com/astral-sh/ruff/pull/21540)) ##### Performance - Avoid redundant `TokenValue` drops in the lexer ([#&#8203;25300](https://github.com/astral-sh/ruff/pull/25300)) - Reduce memory usage by dropping token-excess capacity and improve performance by approximating the initial tokens `Vec` size ([#&#8203;25354](https://github.com/astral-sh/ruff/pull/25354)) - Use `ThinVec` in AST to shrink `Stmt` ([#&#8203;25361](https://github.com/astral-sh/ruff/pull/25361)) ##### Documentation - Fix `line-length` example for `--config` option ([#&#8203;25389](https://github.com/astral-sh/ruff/pull/25389)) - \[`flake8-comprehensions`] Document `RecursionError` edge case in `__len__` (`C416`) ([#&#8203;25286](https://github.com/astral-sh/ruff/pull/25286)) - \[`mccabe`] Improve example (`C901`) ([#&#8203;25287](https://github.com/astral-sh/ruff/pull/25287)) - \[`pyupgrade`] Clarify fix safety docs (`UP007`, `UP045`) ([#&#8203;25288](https://github.com/astral-sh/ruff/pull/25288)) - \[`refurb`] Document `FURB192` exception change for empty sequences ([#&#8203;25317](https://github.com/astral-sh/ruff/pull/25317)) - \[`ruff`] Document false negative for user-defined types (`RUF013`) ([#&#8203;25289](https://github.com/astral-sh/ruff/pull/25289)) ##### Formatter - Fix formatting of lambdas nested within f-strings ([#&#8203;25398](https://github.com/astral-sh/ruff/pull/25398)) ##### Server - Return code action for `codeAction/resolve` requests that contain no or no valid URL ([#&#8203;25365](https://github.com/astral-sh/ruff/pull/25365)) ##### Other changes - Expand semantic syntax errors for invalid walruses ([#&#8203;25415](https://github.com/astral-sh/ruff/pull/25415)) ##### Contributors - [@&#8203;chirizxc](https://github.com/chirizxc) - [@&#8203;ntBre](https://github.com/ntBre) - [@&#8203;adityasingh2400](https://github.com/adityasingh2400) - [@&#8203;charliermarsh](https://github.com/charliermarsh) - [@&#8203;fallintoplace](https://github.com/fallintoplace) - [@&#8203;martin-schlossarek](https://github.com/martin-schlossarek) - [@&#8203;MichaReiser](https://github.com/MichaReiser) - [@&#8203;Ruchir28](https://github.com/Ruchir28) ### [`v0.15.14`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#01514) [Compare Source](https://github.com/astral-sh/ruff/compare/0.15.13...0.15.14) Released on 2026-05-21. ##### Preview features - \[`airflow`] Implement `airflow-task-implicit-multiple-outputs` (`AIR202`) ([#&#8203;25152](https://github.com/astral-sh/ruff/pull/25152)) - \[`flake8-use-pathlib`] Mark `PTH101` fix as unsafe when first argument is a class attribute annotated as `int` ([#&#8203;25086](https://github.com/astral-sh/ruff/pull/25086)) - \[`pylint`] Implement `too-many-try-statements` (`W0717`) ([#&#8203;23970](https://github.com/astral-sh/ruff/pull/23970)) - \[`ruff`] Add `incorrect-decorator-order` (`RUF074`) ([#&#8203;23461](https://github.com/astral-sh/ruff/pull/23461)) - \[`ruff`] Add `fallible-context-manager` (`RUF075`) ([#&#8203;22844](https://github.com/astral-sh/ruff/pull/22844)) ##### Bug fixes - Fix lambda formatting in interpolated string expressions ([#&#8203;25144](https://github.com/astral-sh/ruff/pull/25144)) - Treat generic `frozenset` annotations as immutable ([#&#8203;25251](https://github.com/astral-sh/ruff/pull/25251)) - \[`flake8-type-checking`] Avoid `strict` behavior when `future-annotations` are enabled (`TC001`, `TC002`, `TC003`) ([#&#8203;25035](https://github.com/astral-sh/ruff/pull/25035)) - \[`pylint`] Avoid false positives in `else` clause (`PLR1733`) ([#&#8203;25177](https://github.com/astral-sh/ruff/pull/25177)) ##### Rule changes - \[`flake8-comprehensions`] Skip `C417` for lambdas with positional-only parameters ([#&#8203;25272](https://github.com/astral-sh/ruff/pull/25272)) - \[`flake8-simplify`] Preserve f-string source verbatim in `SIM101` fix ([#&#8203;25061](https://github.com/astral-sh/ruff/pull/25061)) ##### Performance - Avoid unnecessary parser lookahead for operators ([#&#8203;25290](https://github.com/astral-sh/ruff/pull/25290)) ##### Documentation - Update code example setting Neovim LSP log level ([#&#8203;25284](https://github.com/astral-sh/ruff/pull/25284)) ##### Other changes - Add full PEP 798 support ([#&#8203;25104](https://github.com/astral-sh/ruff/pull/25104)) - Add a parser recursion limit ([#&#8203;24810](https://github.com/astral-sh/ruff/pull/24810)) - Update various `ruff_python_stdlib` APIs ([#&#8203;25273](https://github.com/astral-sh/ruff/pull/25273)) ##### Contributors - [@&#8203;ocaballeror](https://github.com/ocaballeror) - [@&#8203;lerebear](https://github.com/lerebear) - [@&#8203;samuelcolvin](https://github.com/samuelcolvin) - [@&#8203;baltasarblanco](https://github.com/baltasarblanco) - [@&#8203;aconal-com](https://github.com/aconal-com) - [@&#8203;anishgirianish](https://github.com/anishgirianish) - [@&#8203;JelleZijlstra](https://github.com/JelleZijlstra) - [@&#8203;AlexWaygood](https://github.com/AlexWaygood) - [@&#8203;ntBre](https://github.com/ntBre) - [@&#8203;adityasingh2400](https://github.com/adityasingh2400) - [@&#8203;charliermarsh](https://github.com/charliermarsh) - [@&#8203;Dev-iL](https://github.com/Dev-iL) - [@&#8203;neutrinoceros](https://github.com/neutrinoceros) - [@&#8203;shivamtiwari3](https://github.com/shivamtiwari3) - [@&#8203;Dev-X25874](https://github.com/Dev-X25874) ### [`v0.15.13`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#01513) [Compare Source](https://github.com/astral-sh/ruff/compare/0.15.12...0.15.13) Released on 2026-05-14. ##### Preview features - Add a rule to flag lazy imports that are eagerly evaluated ([#&#8203;25016](https://github.com/astral-sh/ruff/pull/25016)) - \[`pylint`] Standardize diagnostic message (`PLR0914`, `PLR0917`) ([#&#8203;24996](https://github.com/astral-sh/ruff/pull/24996)) ##### Bug fixes - Fix `F811` false positive for class methods ([#&#8203;24933](https://github.com/astral-sh/ruff/pull/24933)) - Fix setting selection for multi-folder workspace ([#&#8203;24819](https://github.com/astral-sh/ruff/pull/24819)) - \[`eradicate`] Fix false positive for lines with leading whitespace (`ERA001`) ([#&#8203;25122](https://github.com/astral-sh/ruff/pull/25122)) - \[`flake8-pyi`] Fix false positive for f-string debug specifier (`PYI016`) ([#&#8203;24098](https://github.com/astral-sh/ruff/pull/24098)) ##### Rule changes - Always include panic payload in panic diagnostic message ([#&#8203;24873](https://github.com/astral-sh/ruff/pull/24873)) - Restrict `PYI034` for in-place operations to enclosing class ([#&#8203;24511](https://github.com/astral-sh/ruff/pull/24511)) - Improve error message for parameters that are declared `global` ([#&#8203;24902](https://github.com/astral-sh/ruff/pull/24902)) - Update known stdlib ([#&#8203;25103](https://github.com/astral-sh/ruff/pull/25103)) ##### Performance - \[`isort`] Avoid constructing `glob::Pattern`s for literal known modules ([#&#8203;25123](https://github.com/astral-sh/ruff/pull/25123)) ##### CLI - Add TOML examples to `--config` help text ([#&#8203;25013](https://github.com/astral-sh/ruff/pull/25013)) - Colorize ruff check 'All checks passed' ([#&#8203;25085](https://github.com/astral-sh/ruff/pull/25085)) ##### Configuration - Increase max allowed value of `line-length` setting ([#&#8203;24962](https://github.com/astral-sh/ruff/pull/24962)) ##### Documentation - Add `D203` to rules that conflict with the formatter ([#&#8203;25044](https://github.com/astral-sh/ruff/pull/25044)) - Clarify `COM819` and formatter interaction ([#&#8203;25045](https://github.com/astral-sh/ruff/pull/25045)) - Clarify that `NotImplemented` is a value, not an exception (`F901`) ([#&#8203;25054](https://github.com/astral-sh/ruff/pull/25054)) - Update number of lint rules supported ([#&#8203;24942](https://github.com/astral-sh/ruff/pull/24942)) ##### Other changes - Simplify the playground's markdown template ([#&#8203;24924](https://github.com/astral-sh/ruff/pull/24924)) ##### Contributors - [@&#8203;MichaReiser](https://github.com/MichaReiser) - [@&#8203;brian-c11](https://github.com/brian-c11) - [@&#8203;Andrej730](https://github.com/Andrej730) - [@&#8203;denyszhak](https://github.com/denyszhak) - [@&#8203;darestack](https://github.com/darestack) - [@&#8203;sharkdp](https://github.com/sharkdp) - [@&#8203;charliermarsh](https://github.com/charliermarsh) - [@&#8203;EkriirkE](https://github.com/EkriirkE) - [@&#8203;eyupcanakman](https://github.com/eyupcanakman) - [@&#8203;Hrk84ya](https://github.com/Hrk84ya) - [@&#8203;thernstig](https://github.com/thernstig) - [@&#8203;ntBre](https://github.com/ntBre) </details> --- ### Configuration 📅 **Schedule**: (UTC) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xNTAuMSIsInVwZGF0ZWRJblZlciI6IjQzLjE1MC4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
fzorb merged commit 9de8802d29 into master 2026-06-25 10:43:23 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
16px.eu/fukkireta!11
No description provided.