Skip to content

chore(deps): update dependency ruff to v0.15.22#60

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/ruff-0.x-lockfile
Open

chore(deps): update dependency ruff to v0.15.22#60
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/ruff-0.x-lockfile

Conversation

@renovate

@renovate renovate Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
ruff (source, changelog) 0.15.150.15.22 age confidence

Release Notes

astral-sh/ruff (ruff)

v0.15.22

Compare Source

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 selectors (RUF201) (#​26772)
Bug fixes
  • [flake8-pyi] Fix false positive in __all__ (PYI053) (#​26872)
Rule changes
  • [pylint] Ignore mutable type updates in redefined-loop-name (PLW2901) (#​25733)
Performance
  • Avoid redundant lexer token bookkeeping (#​26765)
  • Avoid redundant pending-indentation writes (#​26774)
  • Avoid unnecessary identifier lookahead (#​26525)
  • Reuse parser scratch buffers (#​26798)
Documentation
  • Document argfile support (#​26803)
  • [flake8-datetimez] Clarify naming guidance for datetime.today (DTZ002) (#​26658)
  • [pycodestyle] Document E731 fix safety (#​26847)
  • [ruff] Clarify intentional async contexts for unused-async (RUF029) (#​26641)
Contributors

Install ruff 0.15.22

Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.22/ruff-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://releases.astral.sh/github/ruff/releases/download/0.15.22/ruff-installer.ps1 | iex"

Download ruff 0.15.22

File Platform Checksum
ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ruff-x86_64-apple-darwin.tar.gz Intel macOS checksum
ruff-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
ruff-i686-pc-windows-msvc.zip x86 Windows checksum
ruff-x86_64-pc-windows-msvc.zip x64 Windows checksum
ruff-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
ruff-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
ruff-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
ruff-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
ruff-riscv64gc-unknown-linux-gnu.tar.gz RISCV Linux checksum
ruff-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
ruff-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
ruff-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
ruff-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
ruff-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
ruff-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
ruff-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
ruff-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum

Verifying GitHub Artifact Attestations

The artifacts in this release have attestations generated with GitHub Artifact Attestations. These can be verified by using the GitHub CLI:

gh attestation verify <file-path of downloaded artifact> --repo astral-sh/ruff

You can also download the attestation from GitHub and verify against that directly:

gh attestation verify <file-path of downloaded artifact> --bundle <file-path of downloaded attestation>

v0.15.21

Compare Source

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 syntax errors in individual notebook cells (#​26419)
  • [flake8-implicit-str-concat] Fix ISC003 autofix incorrectly stripping + from comments (#​26554)
Rule changes
  • [flake8-executable] Mark EXE004 fix as unsafe (#​26033)
  • [flake8-pyi] Mark PYI061 fixes as unsafe in Python files (#​26533)
  • [pydocstyle] Skip overload-with-docstring in stub files (D418) (#​26318)
Performance
  • Avoid per-token source index visitor calls (#​26506)
  • Cache parenthesized expression boundaries in the formatter (#​26344)
  • Improve performance of rendering edits in preview mode (#​26565)
  • Inline fits_element in formatter (#​26429)
  • Inline formatter printing hot paths (#​26504)
  • Lazily create builtin bindings (#​26510)
  • Skip empty trivia scans in the source indexer (#​26507)
  • Use ICF for macOS release builds (#​25780)
Formatter
  • Add --extend-exclude to ruff format (#​26372)
Documentation
  • Add "How does Ruff's import sorting compare to isort?" link to README (#​26530)
  • Fix Mozilla Firefox repository link in README (#​26537)
  • [flake8-bandit] Fix misleading docstring for mako-templates (S702) (#​26432)
  • [ruff] Fix non-triggering example for if-key-in-dict-del (RUF051) (#​26433)
Contributors

v0.15.20

Compare Source

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 README for crates.io (#​26315)
  • [perflint] Clarify that PERF402 applies to any iterable (#​26242)
Contributors

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

Configuration

📅 Schedule: (in timezone Africa/Nairobi)

  • Branch creation
    • "after 6am and before 10pm every weekday"
  • 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 was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added dependencies Involves project packages or dependencies features or issues renovate upgrades Related to bumping up versions - distinct from updates labels Jun 8, 2026
@renovate renovate Bot added the renovate label Jun 8, 2026
@renovate
renovate Bot requested a review from eugengi June 8, 2026 18:23
@renovate
renovate Bot force-pushed the renovate/ruff-0.x-lockfile branch from 3bcd562 to e52ff21 Compare June 9, 2026 09:31
@renovate
renovate Bot force-pushed the renovate/ruff-0.x-lockfile branch from e52ff21 to 1247d8f Compare June 19, 2026 09:59
@renovate renovate Bot changed the title chore(deps): update dependency ruff to v0.15.16 chore(deps): update dependency ruff to v0.15.17 Jun 19, 2026
@renovate
renovate Bot force-pushed the renovate/ruff-0.x-lockfile branch 3 times, most recently from 7c2c8ef to 36c72a8 Compare June 25, 2026 19:48
@renovate renovate Bot changed the title chore(deps): update dependency ruff to v0.15.17 chore(deps): update dependency ruff to v0.15.18 Jun 25, 2026
@renovate
renovate Bot force-pushed the renovate/ruff-0.x-lockfile branch 2 times, most recently from 84e0782 to 8f23f09 Compare July 4, 2026 03:05
@renovate renovate Bot changed the title chore(deps): update dependency ruff to v0.15.18 chore(deps): update dependency ruff to v0.15.20 Jul 4, 2026
@renovate
renovate Bot force-pushed the renovate/ruff-0.x-lockfile branch from 8f23f09 to 60857d0 Compare July 6, 2026 21:34
@renovate
renovate Bot force-pushed the renovate/ruff-0.x-lockfile branch 2 times, most recently from 222e552 to 3676bd5 Compare July 18, 2026 04:08
@renovate renovate Bot changed the title chore(deps): update dependency ruff to v0.15.20 chore(deps): update dependency ruff to v0.15.21 Jul 18, 2026
@renovate
renovate Bot force-pushed the renovate/ruff-0.x-lockfile branch from 3676bd5 to a34f275 Compare July 20, 2026 21:26
@renovate
renovate Bot force-pushed the renovate/ruff-0.x-lockfile branch from a34f275 to 0d3bd22 Compare July 25, 2026 19:12
@renovate renovate Bot changed the title chore(deps): update dependency ruff to v0.15.21 chore(deps): update dependency ruff to v0.15.22 Jul 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Involves project packages or dependencies features or issues renovate upgrades Related to bumping up versions - distinct from updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant