Commit 355429f
authored
chore(deps): update dependency pipx:ruff to v0.15.11 (#2036)
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [pipx:ruff](https://docs.astral.sh/ruff)
([source](https://redirect.github.com/astral-sh/ruff),
[changelog](https://redirect.github.com/astral-sh/ruff/blob/main/CHANGELOG.md))
| `0.15.0` → `0.15.11` |

|

|
---
### Release Notes
<details>
<summary>astral-sh/ruff (pipx:ruff)</summary>
###
[`v0.15.11`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#01511)
[Compare
Source](https://redirect.github.com/astral-sh/ruff/compare/0.15.10...0.15.11)
Released on 2026-04-16.
##### Preview features
- \[`ruff`] Ignore `RUF029` when function is decorated with
`asynccontextmanager`
([#​24642](https://redirect.github.com/astral-sh/ruff/pull/24642))
- \[`airflow`] Implement `airflow-xcom-pull-in-template-string`
(`AIR201`)
([#​23583](https://redirect.github.com/astral-sh/ruff/pull/23583))
- \[`flake8-bandit`] Fix `S103` false positives and negatives in mask
analysis
([#​24424](https://redirect.github.com/astral-sh/ruff/pull/24424))
##### Bug fixes
- \[`flake8-async`] Omit overridden methods for `ASYNC109`
([#​24648](https://redirect.github.com/astral-sh/ruff/pull/24648))
##### Documentation
- \[`flake8-async`] Add override mention to `ASYNC109` docs
([#​24666](https://redirect.github.com/astral-sh/ruff/pull/24666))
- Update Neovim config examples to use `vim.lsp.config`
([#​24577](https://redirect.github.com/astral-sh/ruff/pull/24577))
##### Contributors
- [@​augustelalande](https://redirect.github.com/augustelalande)
- [@​anishgirianish](https://redirect.github.com/anishgirianish)
- [@​benberryallwood](https://redirect.github.com/benberryallwood)
- [@​charliermarsh](https://redirect.github.com/charliermarsh)
- [@​Dev-iL](https://redirect.github.com/Dev-iL)
###
[`v0.15.10`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#01510)
[Compare
Source](https://redirect.github.com/astral-sh/ruff/compare/0.15.9...0.15.10)
Released on 2026-04-09.
##### Preview features
- \[`flake8-logging`] Allow closures in except handlers (`LOG004`)
([#​24464](https://redirect.github.com/astral-sh/ruff/pull/24464))
- \[`flake8-self`] Make `SLF` diagnostics robust to non-self-named
variables
([#​24281](https://redirect.github.com/astral-sh/ruff/pull/24281))
- \[`flake8-simplify`] Make the fix for `collapsible-if` safe in
`preview` (`SIM102`)
([#​24371](https://redirect.github.com/astral-sh/ruff/pull/24371))
##### Bug fixes
- Avoid emitting multi-line f-string elements before Python 3.12
([#​24377](https://redirect.github.com/astral-sh/ruff/pull/24377))
- Avoid syntax error from `E502` fixes in f-strings and t-strings
([#​24410](https://redirect.github.com/astral-sh/ruff/pull/24410))
- Strip form feeds from indent passed to `dedent_to`
([#​24381](https://redirect.github.com/astral-sh/ruff/pull/24381))
- \[`pyupgrade`] Fix panic caused by handling of octals (`UP012`)
([#​24390](https://redirect.github.com/astral-sh/ruff/pull/24390))
- Reject multi-line f-string elements before Python 3.12
([#​24355](https://redirect.github.com/astral-sh/ruff/pull/24355))
##### Rule changes
- \[`ruff`] Treat f-string interpolation as potential side effect
(`RUF019`)
([#​24426](https://redirect.github.com/astral-sh/ruff/pull/24426))
##### Server
- Add support for custom file extensions
([#​24463](https://redirect.github.com/astral-sh/ruff/pull/24463))
##### Documentation
- Document adding fixes in CONTRIBUTING.md
([#​24393](https://redirect.github.com/astral-sh/ruff/pull/24393))
- Fix JSON typo in settings example
([#​24517](https://redirect.github.com/astral-sh/ruff/pull/24517))
##### Contributors
- [@​charliermarsh](https://redirect.github.com/charliermarsh)
- [@​dylwil3](https://redirect.github.com/dylwil3)
- [@​silverstein](https://redirect.github.com/silverstein)
- [@​anishgirianish](https://redirect.github.com/anishgirianish)
- [@​shizukushq](https://redirect.github.com/shizukushq)
- [@​zanieb](https://redirect.github.com/zanieb)
- [@​AlexWaygood](https://redirect.github.com/AlexWaygood)
###
[`v0.15.9`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0159)
[Compare
Source](https://redirect.github.com/astral-sh/ruff/compare/0.15.8...0.15.9)
Released on 2026-04-02.
##### Preview features
- \[`pyflakes`] Flag annotated variable redeclarations as `F811` in
preview mode
([#​24244](https://redirect.github.com/astral-sh/ruff/pull/24244))
- \[`ruff`] Allow dunder-named assignments in non-strict mode for
`RUF067`
([#​24089](https://redirect.github.com/astral-sh/ruff/pull/24089))
##### Bug fixes
- \[`flake8-errmsg`] Avoid shadowing existing `msg` in fix for `EM101`
([#​24363](https://redirect.github.com/astral-sh/ruff/pull/24363))
- \[`flake8-simplify`] Ignore pre-initialization references in `SIM113`
([#​24235](https://redirect.github.com/astral-sh/ruff/pull/24235))
- \[`pycodestyle`] Fix `W391` fixes for consecutive empty notebook cells
([#​24236](https://redirect.github.com/astral-sh/ruff/pull/24236))
- \[`pyupgrade`] Fix `UP008` nested class matching
([#​24273](https://redirect.github.com/astral-sh/ruff/pull/24273))
- \[`pyupgrade`] Ignore strings with string-only escapes (`UP012`)
([#​16058](https://redirect.github.com/astral-sh/ruff/pull/16058))
- \[`ruff`] `RUF072`: skip formfeeds on dedent
([#​24308](https://redirect.github.com/astral-sh/ruff/pull/24308))
- \[`ruff`] Avoid re-using symbol in `RUF024` fix
([#​24316](https://redirect.github.com/astral-sh/ruff/pull/24316))
- \[`ruff`] Parenthesize expression in `RUF050` fix
([#​24234](https://redirect.github.com/astral-sh/ruff/pull/24234))
- Disallow starred expressions as values of starred expressions
([#​24280](https://redirect.github.com/astral-sh/ruff/pull/24280))
##### Rule changes
- \[`flake8-simplify`] Suppress `SIM105` for `except*` before Python
3.12
([#​23869](https://redirect.github.com/astral-sh/ruff/pull/23869))
- \[`pyflakes`] Extend `F507` to flag `%`-format strings with zero
placeholders
([#​24215](https://redirect.github.com/astral-sh/ruff/pull/24215))
- \[`pyupgrade`] `UP018` should detect more unnecessarily wrapped
literals (UP018)
([#​24093](https://redirect.github.com/astral-sh/ruff/pull/24093))
- \[`pyupgrade`] Fix `UP008` callable scope handling to support lambdas
([#​24274](https://redirect.github.com/astral-sh/ruff/pull/24274))
- \[`ruff`] `RUF010`: Mark fix as unsafe when it deletes a comment
([#​24270](https://redirect.github.com/astral-sh/ruff/pull/24270))
##### Formatter
- Add `nested-string-quote-style` formatting option
([#​24312](https://redirect.github.com/astral-sh/ruff/pull/24312))
##### Documentation
- \[`flake8-bugbear`] Clarify RUF071 fix safety for non-path string
comparisons
([#​24149](https://redirect.github.com/astral-sh/ruff/pull/24149))
- \[`flake8-type-checking`] Clarify import cycle wording for
`TC001`/`TC002`/`TC003`
([#​24322](https://redirect.github.com/astral-sh/ruff/pull/24322))
##### Other changes
- Avoid rendering fix lines with trailing whitespace after `|`
([#​24343](https://redirect.github.com/astral-sh/ruff/pull/24343))
##### Contributors
- [@​charliermarsh](https://redirect.github.com/charliermarsh)
- [@​MichaReiser](https://redirect.github.com/MichaReiser)
- [@​tranhoangtu-it](https://redirect.github.com/tranhoangtu-it)
- [@​dylwil3](https://redirect.github.com/dylwil3)
- [@​zsol](https://redirect.github.com/zsol)
- [@​renovate](https://redirect.github.com/renovate)
- [@​bitloi](https://redirect.github.com/bitloi)
- [@​danparizher](https://redirect.github.com/danparizher)
- [@​chinar-amrutkar](https://redirect.github.com/chinar-amrutkar)
- [@​second-ed](https://redirect.github.com/second-ed)
- [@​getehen](https://redirect.github.com/getehen)
- [@​Redovo1](https://redirect.github.com/Redovo1)
- [@​matthewlloyd](https://redirect.github.com/matthewlloyd)
- [@​zanieb](https://redirect.github.com/zanieb)
- [@​InSyncWithFoo](https://redirect.github.com/InSyncWithFoo)
- [@​RenzoMXD](https://redirect.github.com/RenzoMXD)
###
[`v0.15.8`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0158)
[Compare
Source](https://redirect.github.com/astral-sh/ruff/compare/0.15.7...0.15.8)
Released on 2026-03-26.
##### Preview features
- \[`ruff`] New rule `unnecessary-if` (`RUF050`)
([#​24114](https://redirect.github.com/astral-sh/ruff/pull/24114))
- \[`ruff`] New rule `useless-finally` (`RUF072`)
([#​24165](https://redirect.github.com/astral-sh/ruff/pull/24165))
- \[`ruff`] New rule `f-string-percent-format` (`RUF073`): warn when
using `%` operator on an f-string
([#​24162](https://redirect.github.com/astral-sh/ruff/pull/24162))
- \[`pyflakes`] Recognize `frozendict` as a builtin for Python 3.15+
([#​24100](https://redirect.github.com/astral-sh/ruff/pull/24100))
##### Bug fixes
- \[`flake8-async`] Use fully-qualified `anyio.lowlevel` import in
autofix (`ASYNC115`)
([#​24166](https://redirect.github.com/astral-sh/ruff/pull/24166))
- \[`flake8-bandit`] Check tuple arguments for partial paths in `S607`
([#​24080](https://redirect.github.com/astral-sh/ruff/pull/24080))
- \[`pyflakes`] Skip `undefined-name` (`F821`) for conditionally deleted
variables
([#​24088](https://redirect.github.com/astral-sh/ruff/pull/24088))
- `E501`/`W505`/formatter: Exclude nested pragma comments from line
width calculation
([#​24071](https://redirect.github.com/astral-sh/ruff/pull/24071))
- Fix `%foo?` parsing in IPython assignment expressions
([#​24152](https://redirect.github.com/astral-sh/ruff/pull/24152))
- `analyze graph`: resolve string imports that reference attributes, not
just modules
([#​24058](https://redirect.github.com/astral-sh/ruff/pull/24058))
##### Rule changes
- \[`eradicate`] ignore `ty: ignore` comments in `ERA001`
([#​24192](https://redirect.github.com/astral-sh/ruff/pull/24192))
- \[`flake8-bandit`] Treat `sys.executable` as trusted input in `S603`
([#​24106](https://redirect.github.com/astral-sh/ruff/pull/24106))
- \[`flake8-self`] Recognize `Self` annotation and `self` assignment in
`SLF001`
([#​24144](https://redirect.github.com/astral-sh/ruff/pull/24144))
- \[`pyflakes`] `F507`: Fix false negative for non-tuple RHS in
`%`-formatting
([#​24142](https://redirect.github.com/astral-sh/ruff/pull/24142))
- \[`refurb`] Parenthesize generator arguments in `FURB142` fixer
([#​24200](https://redirect.github.com/astral-sh/ruff/pull/24200))
##### Performance
- Speed up diagnostic rendering
([#​24146](https://redirect.github.com/astral-sh/ruff/pull/24146))
##### Server
- Warn when Markdown files are skipped due to preview being disabled
([#​24150](https://redirect.github.com/astral-sh/ruff/pull/24150))
##### Documentation
- Clarify `extend-ignore` and `extend-select` settings documentation
([#​24064](https://redirect.github.com/astral-sh/ruff/pull/24064))
- Mention AI policy in PR template
([#​24198](https://redirect.github.com/astral-sh/ruff/pull/24198))
##### Other changes
- Use trusted publishing for NPM packages
([#​24171](https://redirect.github.com/astral-sh/ruff/pull/24171))
##### Contributors
- [@​bitloi](https://redirect.github.com/bitloi)
- [@​Sim-hu](https://redirect.github.com/Sim-hu)
- [@​mvanhorn](https://redirect.github.com/mvanhorn)
- [@​chinar-amrutkar](https://redirect.github.com/chinar-amrutkar)
- [@​markjm](https://redirect.github.com/markjm)
- [@​RenzoMXD](https://redirect.github.com/RenzoMXD)
- [@​vivekkhimani](https://redirect.github.com/vivekkhimani)
- [@​seroperson](https://redirect.github.com/seroperson)
- [@​moktamd](https://redirect.github.com/moktamd)
- [@​charliermarsh](https://redirect.github.com/charliermarsh)
- [@​ntBre](https://redirect.github.com/ntBre)
- [@​zanieb](https://redirect.github.com/zanieb)
- [@​dylwil3](https://redirect.github.com/dylwil3)
- [@​MichaReiser](https://redirect.github.com/MichaReiser)
###
[`v0.15.7`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0157)
[Compare
Source](https://redirect.github.com/astral-sh/ruff/compare/0.15.6...0.15.7)
Released on 2026-03-19.
##### Preview features
- Display output severity in preview
([#​23845](https://redirect.github.com/astral-sh/ruff/pull/23845))
- Don't show `noqa` hover for non-Python documents
([#​24040](https://redirect.github.com/astral-sh/ruff/pull/24040))
##### Rule changes
- \[`pycodestyle`] Recognize `pyrefly:` as a pragma comment (`E501`)
([#​24019](https://redirect.github.com/astral-sh/ruff/pull/24019))
##### Server
- Don't return code actions for non-Python documents
([#​23905](https://redirect.github.com/astral-sh/ruff/pull/23905))
##### Documentation
- Add company AI policy to contributing guide
([#​24021](https://redirect.github.com/astral-sh/ruff/pull/24021))
- Document editor features for Markdown code formatting
([#​23924](https://redirect.github.com/astral-sh/ruff/pull/23924))
- \[`pylint`] Improve phrasing (`PLC0208`)
([#​24033](https://redirect.github.com/astral-sh/ruff/pull/24033))
##### Other changes
- Use PEP 639 license information
([#​19661](https://redirect.github.com/astral-sh/ruff/pull/19661))
##### Contributors
- [@​tmimmanuel](https://redirect.github.com/tmimmanuel)
-
[@​DimitriPapadopoulos](https://redirect.github.com/DimitriPapadopoulos)
- [@​amyreese](https://redirect.github.com/amyreese)
- [@​statxc](https://redirect.github.com/statxc)
- [@​dylwil3](https://redirect.github.com/dylwil3)
- [@​hunterhogan](https://redirect.github.com/hunterhogan)
- [@​renovate](https://redirect.github.com/renovate)
###
[`v0.15.6`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0156)
[Compare
Source](https://redirect.github.com/astral-sh/ruff/compare/0.15.5...0.15.6)
Released on 2026-03-12.
##### Preview features
- Add support for `lazy` import parsing
([#​23755](https://redirect.github.com/astral-sh/ruff/pull/23755))
- Add support for star-unpacking of comprehensions (PEP 798)
([#​23788](https://redirect.github.com/astral-sh/ruff/pull/23788))
- Reject semantic syntax errors for lazy imports
([#​23757](https://redirect.github.com/astral-sh/ruff/pull/23757))
- Drop a few rules from the preview default set
([#​23879](https://redirect.github.com/astral-sh/ruff/pull/23879))
- \[`airflow`] Flag `Variable.get()` calls outside of task execution
context (`AIR003`)
([#​23584](https://redirect.github.com/astral-sh/ruff/pull/23584))
- \[`airflow`] Flag runtime-varying values in DAG/task constructor
arguments (`AIR304`)
([#​23631](https://redirect.github.com/astral-sh/ruff/pull/23631))
- \[`flake8-bugbear`] Implement `delattr-with-constant` (`B043`)
([#​23737](https://redirect.github.com/astral-sh/ruff/pull/23737))
- \[`flake8-tidy-imports`] Add `TID254` to enforce lazy imports
([#​23777](https://redirect.github.com/astral-sh/ruff/pull/23777))
- \[`flake8-tidy-imports`] Allow users to ban lazy imports with `TID254`
([#​23847](https://redirect.github.com/astral-sh/ruff/pull/23847))
- \[`isort`] Retain `lazy` keyword when sorting imports
([#​23762](https://redirect.github.com/astral-sh/ruff/pull/23762))
- \[`pyupgrade`] Add `from __future__ import annotations` automatically
(`UP006`)
([#​23260](https://redirect.github.com/astral-sh/ruff/pull/23260))
- \[`refurb`] Support `newline` parameter in `FURB101` for Python 3.13+
([#​23754](https://redirect.github.com/astral-sh/ruff/pull/23754))
- \[`ruff`] Add `os-path-commonprefix` (`RUF071`)
([#​23814](https://redirect.github.com/astral-sh/ruff/pull/23814))
- \[`ruff`] Add unsafe fix for os-path-commonprefix (`RUF071`)
([#​23852](https://redirect.github.com/astral-sh/ruff/pull/23852))
- \[`ruff`] Limit `RUF036` to typing contexts; make it unsafe for
non-typing-only
([#​23765](https://redirect.github.com/astral-sh/ruff/pull/23765))
- \[`ruff`] Use starred unpacking for `RUF017` in Python 3.15+
([#​23789](https://redirect.github.com/astral-sh/ruff/pull/23789))
##### Bug fixes
- Fix `--add-noqa` creating unwanted leading whitespace
([#​23773](https://redirect.github.com/astral-sh/ruff/pull/23773))
- Fix `--add-noqa` breaking shebangs
([#​23577](https://redirect.github.com/astral-sh/ruff/pull/23577))
- \[formatter] Fix lambda body formatting for multiline calls and
subscripts
([#​23866](https://redirect.github.com/astral-sh/ruff/pull/23866))
- \[formatter] Preserve required annotation parentheses in annotated
assignments
([#​23865](https://redirect.github.com/astral-sh/ruff/pull/23865))
- \[formatter] Preserve type-expression parentheses in the formatter
([#​23867](https://redirect.github.com/astral-sh/ruff/pull/23867))
- \[`flake8-annotations`] Fix stack overflow in `ANN401` on quoted
annotations with escape sequences
([#​23912](https://redirect.github.com/astral-sh/ruff/pull/23912))
- \[`pep8-naming`] Check naming conventions in `match` pattern bindings
(`N806`, `N815`, `N816`)
([#​23899](https://redirect.github.com/astral-sh/ruff/pull/23899))
- \[`perflint`] Fix comment duplication in fixes (`PERF401`, `PERF403`)
([#​23729](https://redirect.github.com/astral-sh/ruff/pull/23729))
- \[`pyupgrade`] Properly trigger `super` change in nested class
(`UP008`)
([#​22677](https://redirect.github.com/astral-sh/ruff/pull/22677))
- \[`ruff`] Avoid syntax errors in `RUF036` fixes
([#​23764](https://redirect.github.com/astral-sh/ruff/pull/23764))
##### Rule changes
- \[`flake8-bandit`] Flag `S501` with `requests.request`
([#​23873](https://redirect.github.com/astral-sh/ruff/pull/23873))
- \[`flake8-executable`] Fix WSL detection in non-Docker containers
([#​22879](https://redirect.github.com/astral-sh/ruff/pull/22879))
- \[`flake8-print`] Ignore `pprint` calls with `stream=`
([#​23787](https://redirect.github.com/astral-sh/ruff/pull/23787))
##### Documentation
- Update docs for Markdown code block formatting
([#​23871](https://redirect.github.com/astral-sh/ruff/pull/23871))
- \[`flake8-bugbear`] Fix misleading description for `B904`
([#​23731](https://redirect.github.com/astral-sh/ruff/pull/23731))
##### Contributors
- [@​zsol](https://redirect.github.com/zsol)
- [@​carljm](https://redirect.github.com/carljm)
- [@​ntBre](https://redirect.github.com/ntBre)
- [@​Bortlesboat](https://redirect.github.com/Bortlesboat)
- [@​sososonia-cyber](https://redirect.github.com/sososonia-cyber)
- [@​chirizxc](https://redirect.github.com/chirizxc)
- [@​leandrobbraga](https://redirect.github.com/leandrobbraga)
- [@​11happy](https://redirect.github.com/11happy)
- [@​Acelogic](https://redirect.github.com/Acelogic)
- [@​anishgirianish](https://redirect.github.com/anishgirianish)
- [@​amyreese](https://redirect.github.com/amyreese)
- [@​xvchris](https://redirect.github.com/xvchris)
- [@​charliermarsh](https://redirect.github.com/charliermarsh)
- [@​getehen](https://redirect.github.com/getehen)
- [@​Dev-iL](https://redirect.github.com/Dev-iL)
###
[`v0.15.5`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0155)
[Compare
Source](https://redirect.github.com/astral-sh/ruff/compare/0.15.4...0.15.5)
Released on 2026-03-05.
##### Preview features
- Discover Markdown files by default in preview mode
([#​23434](https://redirect.github.com/astral-sh/ruff/pull/23434))
- \[`perflint`] Extend `PERF102` to comprehensions and generators
([#​23473](https://redirect.github.com/astral-sh/ruff/pull/23473))
- \[`refurb`] Fix `FURB101` and `FURB103` false positives when I/O
variable is used later
([#​23542](https://redirect.github.com/astral-sh/ruff/pull/23542))
- \[`ruff`] Add fix for `none-not-at-end-of-union` (`RUF036`)
([#​22829](https://redirect.github.com/astral-sh/ruff/pull/22829))
- \[`ruff`] Fix false positive for `re.split` with empty string pattern
(`RUF055`)
([#​23634](https://redirect.github.com/astral-sh/ruff/pull/23634))
##### Bug fixes
- \[`fastapi`] Handle callable class dependencies with `__call__` method
(`FAST003`)
([#​23553](https://redirect.github.com/astral-sh/ruff/pull/23553))
- \[`pydocstyle`] Fix numpy section ordering (`D420`)
([#​23685](https://redirect.github.com/astral-sh/ruff/pull/23685))
- \[`pyflakes`] Fix false positive for names shadowing re-exports
(`F811`)
([#​23356](https://redirect.github.com/astral-sh/ruff/pull/23356))
- \[`pyupgrade`] Avoid inserting redundant `None` elements in `UP045`
([#​23459](https://redirect.github.com/astral-sh/ruff/pull/23459))
##### Documentation
- Document extension mapping for Markdown code formatting
([#​23574](https://redirect.github.com/astral-sh/ruff/pull/23574))
- Update default Python version examples
([#​23605](https://redirect.github.com/astral-sh/ruff/pull/23605))
##### Other changes
- Publish releases to Astral mirror
([#​23616](https://redirect.github.com/astral-sh/ruff/pull/23616))
##### Contributors
- [@​amyreese](https://redirect.github.com/amyreese)
- [@​stakeswky](https://redirect.github.com/stakeswky)
- [@​chirizxc](https://redirect.github.com/chirizxc)
- [@​anishgirianish](https://redirect.github.com/anishgirianish)
- [@​bxff](https://redirect.github.com/bxff)
- [@​zsol](https://redirect.github.com/zsol)
- [@​charliermarsh](https://redirect.github.com/charliermarsh)
- [@​ntBre](https://redirect.github.com/ntBre)
- [@​kar-ganap](https://redirect.github.com/kar-ganap)
###
[`v0.15.4`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0154)
[Compare
Source](https://redirect.github.com/astral-sh/ruff/compare/0.15.3...0.15.4)
Released on 2026-02-26.
This is a follow-up release to 0.15.3 that resolves a panic when the new
rule `PLR1712` was enabled with any rule that analyzes definitions, such
as many of the `ANN` or `D` rules.
##### Bug fixes
- Fix panic on access to definitions after analyzing definitions
([#​23588](https://redirect.github.com/astral-sh/ruff/pull/23588))
- \[`pyflakes`] Suppress false positive in `F821` for names used before
`del` in stub files
([#​23550](https://redirect.github.com/astral-sh/ruff/pull/23550))
##### Documentation
- Clarify first-party import detection in Ruff
([#​23591](https://redirect.github.com/astral-sh/ruff/pull/23591))
- Fix incorrect `import-heading` example
([#​23568](https://redirect.github.com/astral-sh/ruff/pull/23568))
##### Contributors
- [@​stakeswky](https://redirect.github.com/stakeswky)
- [@​ntBre](https://redirect.github.com/ntBre)
- [@​thejcannon](https://redirect.github.com/thejcannon)
- [@​GeObts](https://redirect.github.com/GeObts)
###
[`v0.15.3`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0153)
[Compare
Source](https://redirect.github.com/astral-sh/ruff/compare/0.15.2...0.15.3)
Released on 2026-02-26.
##### Preview features
- Drop explicit support for `.qmd` file extension
([#​23572](https://redirect.github.com/astral-sh/ruff/pull/23572))
This can now be enabled instead by setting the
[`extension`](https://docs.astral.sh/ruff/settings/#extension) option:
```toml
# ruff.toml
extension = { qmd = "markdown" }
# pyproject.toml
[tool.ruff]
extension = { qmd = "markdown" }
```
- Include configured extensions in file discovery
([#​23400](https://redirect.github.com/astral-sh/ruff/pull/23400))
- \[`flake8-bandit`] Allow suspicious imports in `TYPE_CHECKING` blocks
(`S401`-`S415`)
([#​23441](https://redirect.github.com/astral-sh/ruff/pull/23441))
- \[`flake8-bugbear`] Allow `B901` in pytest hook wrappers
([#​21931](https://redirect.github.com/astral-sh/ruff/pull/21931))
- \[`flake8-import-conventions`] Add missing conventions from upstream
(`ICN001`, `ICN002`)
([#​21373](https://redirect.github.com/astral-sh/ruff/pull/21373))
- \[`pydocstyle`] Add rule to enforce docstring section ordering
(`D420`)
([#​23537](https://redirect.github.com/astral-sh/ruff/pull/23537))
- \[`pylint`] Implement `swap-with-temporary-variable` (`PLR1712`)
([#​22205](https://redirect.github.com/astral-sh/ruff/pull/22205))
- \[`ruff`] Add `unnecessary-assign-before-yield` (`RUF070`)
([#​23300](https://redirect.github.com/astral-sh/ruff/pull/23300))
- \[`ruff`] Support file-level noqa in `RUF102`
([#​23535](https://redirect.github.com/astral-sh/ruff/pull/23535))
- \[`ruff`] Suppress diagnostic for invalid f-strings before Python 3.12
(`RUF027`)
([#​23480](https://redirect.github.com/astral-sh/ruff/pull/23480))
- \[`flake8-bandit`] Don't flag `BaseLoader`/`CBaseLoader` as unsafe
(`S506`)
([#​23510](https://redirect.github.com/astral-sh/ruff/pull/23510))
##### Bug fixes
- Avoid infinite loop between `I002` and `PYI025`
([#​23352](https://redirect.github.com/astral-sh/ruff/pull/23352))
- \[`pyflakes`] Fix false positive for `@overload` from
`lint.typing-modules` (`F811`)
([#​23357](https://redirect.github.com/astral-sh/ruff/pull/23357))
- \[`pyupgrade`] Fix false positive for `TypeVar` default before Python
3.12 (`UP046`)
([#​23540](https://redirect.github.com/astral-sh/ruff/pull/23540))
- \[`pyupgrade`] Fix handling of `\N` in raw strings (`UP032`)
([#​22149](https://redirect.github.com/astral-sh/ruff/pull/22149))
##### Rule changes
- Render sub-diagnostics in the GitHub output format
([#​23455](https://redirect.github.com/astral-sh/ruff/pull/23455))
- \[`flake8-bugbear`] Tag certain `B007` diagnostics as unnecessary
([#​23453](https://redirect.github.com/astral-sh/ruff/pull/23453))
- \[`ruff`] Ignore unknown rule codes in `RUF100`
([#​23531](https://redirect.github.com/astral-sh/ruff/pull/23531))
These are now flagged by
[`RUF102`](https://docs.astral.sh/ruff/rules/invalid-rule-code/)
instead.
##### Documentation
- Fix missing settings links for several linters
([#​23519](https://redirect.github.com/astral-sh/ruff/pull/23519))
- Update isort action comments heading
([#​23515](https://redirect.github.com/astral-sh/ruff/pull/23515))
- \[`pydocstyle`] Fix double comma in description of `D404`
([#​23440](https://redirect.github.com/astral-sh/ruff/pull/23440))
##### Other changes
- Update the Python module (notably `find_ruff_bin`) for parity with uv
([#​23406](https://redirect.github.com/astral-sh/ruff/pull/23406))
##### Contributors
- [@​zanieb](https://redirect.github.com/zanieb)
- [@​o1x3](https://redirect.github.com/o1x3)
- [@​assadyousuf](https://redirect.github.com/assadyousuf)
- [@​kar-ganap](https://redirect.github.com/kar-ganap)
- [@​denyszhak](https://redirect.github.com/denyszhak)
- [@​amyreese](https://redirect.github.com/amyreese)
- [@​carljm](https://redirect.github.com/carljm)
- [@​anishgirianish](https://redirect.github.com/anishgirianish)
- [@​Bnyro](https://redirect.github.com/Bnyro)
- [@​danparizher](https://redirect.github.com/danparizher)
- [@​ntBre](https://redirect.github.com/ntBre)
- [@​gcomneno](https://redirect.github.com/gcomneno)
- [@​jaap3](https://redirect.github.com/jaap3)
- [@​stakeswky](https://redirect.github.com/stakeswky)
###
[`v0.15.2`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0152)
[Compare
Source](https://redirect.github.com/astral-sh/ruff/compare/0.15.1...0.15.2)
Released on 2026-02-19.
##### Preview features
- Expand the default rule set
([#​23385](https://redirect.github.com/astral-sh/ruff/pull/23385))
In preview, Ruff now enables a significantly expanded default rule set
of 412
rules, up from the stable default set of 59 rules. The new rules are
mostly a
superset of the stable defaults, with the exception of these rules,
which are
removed from the preview defaults:
-
[`multiple-imports-on-one-line`](https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line)
(`E401`)
-
[`module-import-not-at-top-of-file`](https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file)
(`E402`)
-
[`module-import-not-at-top-of-file`](https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file)
(`E701`)
-
[`multiple-statements-on-one-line-semicolon`](https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon)
(`E702`)
-
[`useless-semicolon`](https://docs.astral.sh/ruff/rules/useless-semicolon)
(`E703`)
- [`none-comparison`](https://docs.astral.sh/ruff/rules/none-comparison)
(`E711`)
-
[`true-false-comparison`](https://docs.astral.sh/ruff/rules/true-false-comparison)
(`E712`)
- [`not-in-test`](https://docs.astral.sh/ruff/rules/not-in-test)
(`E713`)
- [`not-is-test`](https://docs.astral.sh/ruff/rules/not-is-test)
(`E714`)
- [`type-comparison`](https://docs.astral.sh/ruff/rules/type-comparison)
(`E721`)
-
[`lambda-assignment`](https://docs.astral.sh/ruff/rules/lambda-assignment)
(`E731`)
-
[`ambiguous-variable-name`](https://docs.astral.sh/ruff/rules/ambiguous-variable-name)
(`E741`)
-
[`ambiguous-class-name`](https://docs.astral.sh/ruff/rules/ambiguous-class-name)
(`E742`)
-
[`ambiguous-function-name`](https://docs.astral.sh/ruff/rules/ambiguous-function-name)
(`E743`)
-
[`undefined-local-with-import-star`](https://docs.astral.sh/ruff/rules/undefined-local-with-import-star)
(`F403`)
-
[`undefined-local-with-import-star-usage`](https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage)
(`F405`)
-
[`undefined-local-with-nested-import-star-usage`](https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage)
(`F406`)
-
[`forward-annotation-syntax-error`](https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error)
(`F722`)
If you use preview and prefer the old defaults, you can restore them
with
configuration like:
```toml
# ruff.toml
[lint]
select = ["E4", "E7", "E9", "F"]
# pyproject.toml
[tool.ruff.lint]
select = ["E4", "E7", "E9", "F"]
```
If you do give them a try, feel free to share your feedback in the
[GitHub
discussion](https://redirect.github.com/astral-sh/ruff/discussions/23203)!
- \[`flake8-pyi`] Also check string annotations (`PYI041`)
([#​19023](https://redirect.github.com/astral-sh/ruff/pull/19023))
##### Bug fixes
- \[`flake8-async`] Fix `in_async_context` logic
([#​23426](https://redirect.github.com/astral-sh/ruff/pull/23426))
- \[`ruff`] Fix for `RUF102` should delete entire comment
([#​23380](https://redirect.github.com/astral-sh/ruff/pull/23380))
- \[`ruff`] Suppress diagnostic for strings with backslashes in
interpolations before Python 3.12 (`RUF027`)
([#​21069](https://redirect.github.com/astral-sh/ruff/pull/21069))
- \[`flake8-bugbear`] Fix `B023` false positive for immediately-invoked
lambdas
([#​23294](https://redirect.github.com/astral-sh/ruff/pull/23294))
- \[parser] Fix false syntax error for match-like annotated assignments
([#​23297](https://redirect.github.com/astral-sh/ruff/pull/23297))
- \[parser] Fix indentation tracking after line continuations
([#​23417](https://redirect.github.com/astral-sh/ruff/pull/23417))
##### Rule changes
- \[`flake8-executable`] Allow global flags in uv shebangs (`EXE003`)
([#​22582](https://redirect.github.com/astral-sh/ruff/pull/22582))
- \[`pyupgrade`] Fix handling of `typing.{io,re}` (`UP035`)
([#​23131](https://redirect.github.com/astral-sh/ruff/pull/23131))
- \[`ruff`] Detect `PLC0207` on chained `str.split()` calls
([#​23275](https://redirect.github.com/astral-sh/ruff/pull/23275))
##### CLI
- Remove invalid inline `noqa` warning
([#​23270](https://redirect.github.com/astral-sh/ruff/pull/23270))
##### Configuration
- Add extension mapping to configuration file options
([#​23384](https://redirect.github.com/astral-sh/ruff/pull/23384))
##### Documentation
- Add `Q004` to the list of conflicting rules
([#​23340](https://redirect.github.com/astral-sh/ruff/pull/23340))
- \[`ruff`] Expand `lint.external` docs and add sub-diagnostic
(`RUF100`, `RUF102`)
([#​23268](https://redirect.github.com/astral-sh/ruff/pull/23268))
##### Contributors
- [@​dylwil3](https://redirect.github.com/dylwil3)
- [@​Jkhall81](https://redirect.github.com/Jkhall81)
- [@​danparizher](https://redirect.github.com/danparizher)
- [@​dhruvmanila](https://redirect.github.com/dhruvmanila)
- [@​harupy](https://redirect.github.com/harupy)
- [@​ngnpope](https://redirect.github.com/ngnpope)
- [@​amyreese](https://redirect.github.com/amyreese)
- [@​kar-ganap](https://redirect.github.com/kar-ganap)
- [@​robsdedude](https://redirect.github.com/robsdedude)
- [@​shaanmajid](https://redirect.github.com/shaanmajid)
- [@​ntBre](https://redirect.github.com/ntBre)
- [@​toslunar](https://redirect.github.com/toslunar)
###
[`v0.15.1`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0151)
[Compare
Source](https://redirect.github.com/astral-sh/ruff/compare/0.15.0...0.15.1)
Released on 2026-02-12.
##### Preview features
- \[`airflow`] Add ruff rules to catch deprecated Airflow imports for
Airflow 3.1 (`AIR321`)
([#​22376](https://redirect.github.com/astral-sh/ruff/pull/22376))
- \[`airflow`] Third positional parameter not named `ti_key` should be
flagged for `BaseOperatorLink.get_link` (`AIR303`)
([#​22828](https://redirect.github.com/astral-sh/ruff/pull/22828))
- \[`flake8-gettext`] Fix false negatives for plural argument of
`ngettext` (`INT001`, `INT002`, `INT003`)
([#​21078](https://redirect.github.com/astral-sh/ruff/pull/21078))
- \[`pyflakes`] Fix infinite loop in preview fix for `unused-import`
(`F401`)
([#​23038](https://redirect.github.com/astral-sh/ruff/pull/23038))
- \[`pygrep-hooks`] Detect non-existent mock methods in standalone
expressions (`PGH005`)
([#​22830](https://redirect.github.com/astral-sh/ruff/pull/22830))
- \[`pylint`] Allow dunder submodules and improve diagnostic range
(`PLC2701`)
([#​22804](https://redirect.github.com/astral-sh/ruff/pull/22804))
- \[`pyupgrade`] Improve diagnostic range for tuples (`UP024`)
([#​23013](https://redirect.github.com/astral-sh/ruff/pull/23013))
- \[`refurb`] Check subscripts in tuple do not use lambda parameters in
`reimplemented-operator` (`FURB118`)
([#​23079](https://redirect.github.com/astral-sh/ruff/pull/23079))
- \[`ruff`] Detect mutable defaults in `field` calls (`RUF008`)
([#​23046](https://redirect.github.com/astral-sh/ruff/pull/23046))
- \[`ruff`] Ignore std `cmath.inf` (`RUF069`)
([#​23120](https://redirect.github.com/astral-sh/ruff/pull/23120))
- \[`ruff`] New rule `float-equality-comparison` (`RUF069`)
([#​20585](https://redirect.github.com/astral-sh/ruff/pull/20585))
- Don't format unlabeled Markdown code blocks
([#​23106](https://redirect.github.com/astral-sh/ruff/pull/23106))
- Markdown formatting support in LSP
([#​23063](https://redirect.github.com/astral-sh/ruff/pull/23063))
- Support Quarto Markdown language markers
([#​22947](https://redirect.github.com/astral-sh/ruff/pull/22947))
- Support formatting `pycon` Markdown code blocks
([#​23112](https://redirect.github.com/astral-sh/ruff/pull/23112))
- Use extension mapping to select Markdown code block language
([#​22934](https://redirect.github.com/astral-sh/ruff/pull/22934))
##### Bug fixes
- Avoid false positive for undefined variables in `FAST001`
([#​23224](https://redirect.github.com/astral-sh/ruff/pull/23224))
- Avoid introducing syntax errors for `FAST003` autofix
([#​23227](https://redirect.github.com/astral-sh/ruff/pull/23227))
- Avoid suggesting `InitVar` for `__post_init__` that references PEP 695
type parameters
([#​23226](https://redirect.github.com/astral-sh/ruff/pull/23226))
- Deduplicate type variables in generic functions
([#​23225](https://redirect.github.com/astral-sh/ruff/pull/23225))
- Fix exception handler parenthesis removal for Python 3.14+
([#​23126](https://redirect.github.com/astral-sh/ruff/pull/23126))
- Fix f-string middle panic when parsing t-strings
([#​23232](https://redirect.github.com/astral-sh/ruff/pull/23232))
- Wrap `RUF020` target for multiline fixes
([#​23210](https://redirect.github.com/astral-sh/ruff/pull/23210))
- Wrap `UP007` target for multiline fixes
([#​23208](https://redirect.github.com/astral-sh/ruff/pull/23208))
- Fix missing diagnostics for last range suppression in file
([#​23242](https://redirect.github.com/astral-sh/ruff/pull/23242))
- \[`pyupgrade`] Fix syntax error on string with newline escape and
comment (`UP037`)
([#​22968](https://redirect.github.com/astral-sh/ruff/pull/22968))
##### Rule changes
- Use `ruff` instead of `Ruff` as the program name in GitHub output
format
([#​23240](https://redirect.github.com/astral-sh/ruff/pull/23240))
- \[`PT006`] Fix syntax error when unpacking nested tuples in
`parametrize` fixes
([#​22441](https://redirect.github.com/astral-sh/ruff/issues/22441))
([#​22464](https://redirect.github.com/astral-sh/ruff/pull/22464))
- \[`airflow`] Catch deprecated attribute access from context key for
Airflow 3.0 (`AIR301`)
([#​22850](https://redirect.github.com/astral-sh/ruff/pull/22850))
- \[`airflow`] Capture deprecated arguments and a decorator (`AIR301`)
([#​23170](https://redirect.github.com/astral-sh/ruff/pull/23170))
- \[`flake8-boolean-trap`] Add `multiprocessing.Value` to excluded
functions for `FBT003`
([#​23010](https://redirect.github.com/astral-sh/ruff/pull/23010))
- \[`flake8-bugbear`] Add a secondary annotation showing the previous
occurrence (`B033`)
([#​22634](https://redirect.github.com/astral-sh/ruff/pull/22634))
- \[`flake8-type-checking`] Add sub-diagnostic showing the runtime use
of an annotation (`TC004`)
([#​23091](https://redirect.github.com/astral-sh/ruff/pull/23091))
- \[`isort`] Support configurable import section heading comments
([#​23151](https://redirect.github.com/astral-sh/ruff/pull/23151))
- \[`ruff`] Improve the diagnostic for `RUF012`
([#​23202](https://redirect.github.com/astral-sh/ruff/pull/23202))
##### Formatter
- Suppress diagnostic output for `format --check --silent`
([#​17736](https://redirect.github.com/astral-sh/ruff/pull/17736))
##### Documentation
- Add tabbed shell completion documentation
([#​23169](https://redirect.github.com/astral-sh/ruff/pull/23169))
- Explain how to enable Markdown formatting for pre-commit hook
([#​23077](https://redirect.github.com/astral-sh/ruff/pull/23077))
- Fixed import in `runtime-evaluated-decorators` example
([#​23187](https://redirect.github.com/astral-sh/ruff/pull/23187))
- Update ruff server contributing guide
([#​23060](https://redirect.github.com/astral-sh/ruff/pull/23060))
##### Other changes
- Exclude WASM artifacts from GitHub releases
([#​23221](https://redirect.github.com/astral-sh/ruff/pull/23221))
##### Contributors
- [@​mkniewallner](https://redirect.github.com/mkniewallner)
- [@​bxff](https://redirect.github.com/bxff)
- [@​dylwil3](https://redirect.github.com/dylwil3)
- [@​Avasam](https://redirect.github.com/Avasam)
- [@​amyreese](https://redirect.github.com/amyreese)
- [@​charliermarsh](https://redirect.github.com/charliermarsh)
- [@​Alex-ley-scrub](https://redirect.github.com/Alex-ley-scrub)
- [@​Kalmaegi](https://redirect.github.com/Kalmaegi)
- [@​danparizher](https://redirect.github.com/danparizher)
- [@​AiyionPrime](https://redirect.github.com/AiyionPrime)
- [@​eureka928](https://redirect.github.com/eureka928)
- [@​11happy](https://redirect.github.com/11happy)
- [@​Jkhall81](https://redirect.github.com/Jkhall81)
- [@​chirizxc](https://redirect.github.com/chirizxc)
- [@​leandrobbraga](https://redirect.github.com/leandrobbraga)
- [@​tvatter](https://redirect.github.com/tvatter)
- [@​anishgirianish](https://redirect.github.com/anishgirianish)
- [@​shaanmajid](https://redirect.github.com/shaanmajid)
- [@​ntBre](https://redirect.github.com/ntBre)
- [@​sjyangkevin](https://redirect.github.com/sjyangkevin)
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, 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 was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/prometheus/client_java).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMzkuNCIsInVwZGF0ZWRJblZlciI6IjQzLjEzOS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>1 parent 980bff4 commit 355429f
1 file changed
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
0 commit comments