Skip to content

⬆️ Update dependency ruff to v0.15.9#711

Merged
renovate[bot] merged 1 commit into
mainfrom
renovate/ruff-0.x
Apr 6, 2026
Merged

⬆️ Update dependency ruff to v0.15.9#711
renovate[bot] merged 1 commit into
mainfrom
renovate/ruff-0.x

Conversation

@renovate

@renovate renovate Bot commented Apr 6, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
ruff (source, changelog) 0.15.10.15.9 age adoption passing confidence

Release Notes

astral-sh/ruff (ruff)

v0.15.9

Compare Source

Released on 2026-04-02.

Preview features
  • [pyflakes] Flag annotated variable redeclarations as F811 in preview mode (#​24244)
  • [ruff] Allow dunder-named assignments in non-strict mode for RUF067 (#​24089)
Bug fixes
  • [flake8-errmsg] Avoid shadowing existing msg in fix for EM101 (#​24363)
  • [flake8-simplify] Ignore pre-initialization references in SIM113 (#​24235)
  • [pycodestyle] Fix W391 fixes for consecutive empty notebook cells (#​24236)
  • [pyupgrade] Fix UP008 nested class matching (#​24273)
  • [pyupgrade] Ignore strings with string-only escapes (UP012) (#​16058)
  • [ruff] RUF072: skip formfeeds on dedent (#​24308)
  • [ruff] Avoid re-using symbol in RUF024 fix (#​24316)
  • [ruff] Parenthesize expression in RUF050 fix (#​24234)
  • Disallow starred expressions as values of starred expressions (#​24280)
Rule changes
  • [flake8-simplify] Suppress SIM105 for except* before Python 3.12 (#​23869)
  • [pyflakes] Extend F507 to flag %-format strings with zero placeholders (#​24215)
  • [pyupgrade] UP018 should detect more unnecessarily wrapped literals (UP018) (#​24093)
  • [pyupgrade] Fix UP008 callable scope handling to support lambdas (#​24274)
  • [ruff] RUF010: Mark fix as unsafe when it deletes a comment (#​24270)
Formatter
  • Add nested-string-quote-style formatting option (#​24312)
Documentation
  • [flake8-bugbear] Clarify RUF071 fix safety for non-path string comparisons (#​24149)
  • [flake8-type-checking] Clarify import cycle wording for TC001/TC002/TC003 (#​24322)
Other changes
  • Avoid rendering fix lines with trailing whitespace after | (#​24343)
Contributors

v0.15.8

Compare Source

Released on 2026-03-26.

Preview features
  • [ruff] New rule unnecessary-if (RUF050) (#​24114)
  • [ruff] New rule useless-finally (RUF072) (#​24165)
  • [ruff] New rule f-string-percent-format (RUF073): warn when using % operator on an f-string (#​24162)
  • [pyflakes] Recognize frozendict as a builtin for Python 3.15+ (#​24100)
Bug fixes
  • [flake8-async] Use fully-qualified anyio.lowlevel import in autofix (ASYNC115) (#​24166)
  • [flake8-bandit] Check tuple arguments for partial paths in S607 (#​24080)
  • [pyflakes] Skip undefined-name (F821) for conditionally deleted variables (#​24088)
  • E501/W505/formatter: Exclude nested pragma comments from line width calculation (#​24071)
  • Fix %foo? parsing in IPython assignment expressions (#​24152)
  • analyze graph: resolve string imports that reference attributes, not just modules (#​24058)
Rule changes
  • [eradicate] ignore ty: ignore comments in ERA001 (#​24192)
  • [flake8-bandit] Treat sys.executable as trusted input in S603 (#​24106)
  • [flake8-self] Recognize Self annotation and self assignment in SLF001 (#​24144)
  • [pyflakes] F507: Fix false negative for non-tuple RHS in %-formatting (#​24142)
  • [refurb] Parenthesize generator arguments in FURB142 fixer (#​24200)
Performance
Server
  • Warn when Markdown files are skipped due to preview being disabled (#​24150)
Documentation
  • Clarify extend-ignore and extend-select settings documentation (#​24064)
  • Mention AI policy in PR template (#​24198)
Other changes
  • Use trusted publishing for NPM packages (#​24171)
Contributors

v0.15.7

Compare Source

Released on 2026-03-19.

Preview features
  • Display output severity in preview (#​23845)
  • Don't show noqa hover for non-Python documents (#​24040)
Rule changes
  • [pycodestyle] Recognize pyrefly: as a pragma comment (E501) (#​24019)
Server
  • Don't return code actions for non-Python documents (#​23905)
Documentation
  • Add company AI policy to contributing guide (#​24021)
  • Document editor features for Markdown code formatting (#​23924)
  • [pylint] Improve phrasing (PLC0208) (#​24033)
Other changes
  • Use PEP 639 license information (#​19661)
Contributors

v0.15.6

Compare Source

Released on 2026-03-12.

Preview features
  • Add support for lazy import parsing (#​23755)
  • Add support for star-unpacking of comprehensions (PEP 798) (#​23788)
  • Reject semantic syntax errors for lazy imports (#​23757)
  • Drop a few rules from the preview default set (#​23879)
  • [airflow] Flag Variable.get() calls outside of task execution context (AIR003) (#​23584)
  • [airflow] Flag runtime-varying values in DAG/task constructor arguments (AIR304) (#​23631)
  • [flake8-bugbear] Implement delattr-with-constant (B043) (#​23737)
  • [flake8-tidy-imports] Add TID254 to enforce lazy imports (#​23777)
  • [flake8-tidy-imports] Allow users to ban lazy imports with TID254 (#​23847)
  • [isort] Retain lazy keyword when sorting imports (#​23762)
  • [pyupgrade] Add from __future__ import annotations automatically (UP006) (#​23260)
  • [refurb] Support newline parameter in FURB101 for Python 3.13+ (#​23754)
  • [ruff] Add os-path-commonprefix (RUF071) (#​23814)
  • [ruff] Add unsafe fix for os-path-commonprefix (RUF071) (#​23852)
  • [ruff] Limit RUF036 to typing contexts; make it unsafe for non-typing-only (#​23765)
  • [ruff] Use starred unpacking for RUF017 in Python 3.15+ (#​23789)
Bug fixes
  • Fix --add-noqa creating unwanted leading whitespace (#​23773)
  • Fix --add-noqa breaking shebangs (#​23577)
  • [formatter] Fix lambda body formatting for multiline calls and subscripts (#​23866)
  • [formatter] Preserve required annotation parentheses in annotated assignments (#​23865)
  • [formatter] Preserve type-expression parentheses in the formatter (#​23867)
  • [flake8-annotations] Fix stack overflow in ANN401 on quoted annotations with escape sequences (#​23912)
  • [pep8-naming] Check naming conventions in match pattern bindings (N806, N815, N816) (#​23899)
  • [perflint] Fix comment duplication in fixes (PERF401, PERF403) (#​23729)
  • [pyupgrade] Properly trigger super change in nested class (UP008) (#​22677)
  • [ruff] Avoid syntax errors in RUF036 fixes (#​23764)
Rule changes
  • [flake8-bandit] Flag S501 with requests.request (#​23873)
  • [flake8-executable] Fix WSL detection in non-Docker containers (#​22879)
  • [flake8-print] Ignore pprint calls with stream= (#​23787)
Documentation
  • Update docs for Markdown code block formatting (#​23871)
  • [flake8-bugbear] Fix misleading description for B904 (#​23731)
Contributors

v0.15.5

Compare Source

Released on 2026-03-05.

Preview features
  • Discover Markdown files by default in preview mode (#​23434)
  • [perflint] Extend PERF102 to comprehensions and generators (#​23473)
  • [refurb] Fix FURB101 and FURB103 false positives when I/O variable is used later (#​23542)
  • [ruff] Add fix for none-not-at-end-of-union (RUF036) (#​22829)
  • [ruff] Fix false positive for re.split with empty string pattern (RUF055) (#​23634)
Bug fixes
  • [fastapi] Handle callable class dependencies with __call__ method (FAST003) (#​23553)
  • [pydocstyle] Fix numpy section ordering (D420) (#​23685)
  • [pyflakes] Fix false positive for names shadowing re-exports (F811) (#​23356)
  • [pyupgrade] Avoid inserting redundant None elements in UP045 (#​23459)
Documentation
  • Document extension mapping for Markdown code formatting (#​23574)
  • Update default Python version examples (#​23605)
Other changes
  • Publish releases to Astral mirror (#​23616)
Contributors

v0.15.4

Compare Source

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)
  • [pyflakes] Suppress false positive in F821 for names used before del in stub files (#​23550)
Documentation
  • Clarify first-party import detection in Ruff (#​23591)
  • Fix incorrect import-heading example (#​23568)
Contributors

v0.15.3

Compare Source

Released on 2026-02-26.

Preview features
  • Drop explicit support for .qmd file extension (#​23572)

    This can now be enabled instead by setting the extension option:

    # ruff.toml
    extension = { qmd = "markdown" }
    
    # pyproject.toml
    [tool.ruff]
    extension = { qmd = "markdown" }
  • Include configured extensions in file discovery (#​23400)

  • [flake8-bandit] Allow suspicious imports in TYPE_CHECKING blocks (S401-S415) (#​23441)

  • [flake8-bugbear] Allow B901 in pytest hook wrappers (#​21931)

  • [flake8-import-conventions] Add missing conventions from upstream (ICN001, ICN002) (#​21373)

  • [pydocstyle] Add rule to enforce docstring section ordering (D420) (#​23537)

  • [pylint] Implement swap-with-temporary-variable (PLR1712) (#​22205)

  • [ruff] Add unnecessary-assign-before-yield (RUF070) (#​23300)

  • [ruff] Support file-level noqa in RUF102 (#​23535)

  • [ruff] Suppress diagnostic for invalid f-strings before Python 3.12 (RUF027) (#​23480)

  • [flake8-bandit] Don't flag BaseLoader/CBaseLoader as unsafe (S506) (#​23510)

Bug fixes
  • Avoid infinite loop between I002 and PYI025 (#​23352)
  • [pyflakes] Fix false positive for @overload from lint.typing-modules (F811) (#​23357)
  • [pyupgrade] Fix false positive for TypeVar default before Python 3.12 (UP046) (#​23540)
  • [pyupgrade] Fix handling of \N in raw strings (UP032) (#​22149)
Rule changes
  • Render sub-diagnostics in the GitHub output format (#​23455)

  • [flake8-bugbear] Tag certain B007 diagnostics as unnecessary (#​23453)

  • [ruff] Ignore unknown rule codes in RUF100 (#​23531)

    These are now flagged by RUF102 instead.

Documentation
  • Fix missing settings links for several linters (#​23519)
  • Update isort action comments heading (#​23515)
  • [pydocstyle] Fix double comma in description of D404 (#​23440)
Other changes
  • Update the Python module (notably find_ruff_bin) for parity with uv (#​23406)
Contributors

v0.15.2

Compare Source

Released on 2026-02-19.

Preview features
Bug fixes
  • [flake8-async] Fix in_async_context logic (#​23426)
  • [ruff] Fix for RUF102 should delete entire comment (#​23380)
  • [ruff] Suppress diagnostic for strings with backslashes in interpolations before Python 3.12 (RUF027) (#​21069)
  • [flake8-bugbear] Fix B023 false positive for immediately-invoked lambdas (#​23294)
  • [parser] Fix false syntax error for match-like annotated assignments (#​23297)
  • [parser] Fix indentation tracking after line continuations (#​23417)
Rule changes
  • [flake8-executable] Allow global flags in uv shebangs (EXE003) (#​22582)
  • [pyupgrade] Fix handling of typing.{io,re} (UP035) (#​23131)
  • [ruff] Detect PLC0207 on chained str.split() calls (#​23275)
CLI
  • Remove invalid inline noqa warning (#​23270)
Configuration
  • Add extension mapping to configuration file options (#​23384)
Documentation
  • Add Q004 to the list of conflicting rules (#​23340)
  • [ruff] Expand lint.external docs and add sub-diagnostic (RUF100, RUF102) (#​23268)
Contributors

Configuration

📅 Schedule: Branch creation - "before 2am" (UTC), 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.


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

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added dependencies Upgrade or downgrade of project dependencies. no-stale This issue or PR is exempted from the stable bot. python labels Apr 6, 2026
@renovate renovate Bot force-pushed the renovate/ruff-0.x branch from 2623d5e to 1c86296 Compare April 6, 2026 05:43
@renovate renovate Bot force-pushed the renovate/ruff-0.x branch from 1c86296 to b63d1ff Compare April 6, 2026 08:35
@sonarqubecloud

sonarqubecloud Bot commented Apr 6, 2026

Copy link
Copy Markdown

@renovate renovate Bot merged commit 0668205 into main Apr 6, 2026
13 checks passed
@renovate renovate Bot deleted the renovate/ruff-0.x branch April 6, 2026 13:16
@github-actions github-actions Bot locked and limited conversation to collaborators Apr 8, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

dependencies Upgrade or downgrade of project dependencies. no-stale This issue or PR is exempted from the stable bot. python

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants