chore(deps): update dependency ruff to v0.4.3
Metadata
Current evaluation
Merged automated dependency update for ruff from 0.3.5 to 0.4.3. Passed CI, received two approvals, and was applied via Renovate bot automerge, updating a single configuration file.
Suggested action: —
No scores available.
Issue body
[](https://renovatebot.com)
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ruff](https://docs.astral.sh/ruff) ([source](https://togithub.com/astral-sh/ruff), [changelog](https://togithub.com/astral-sh/ruff/blob/main/CHANGELOG.md)) | `==0.3.5` -> `==0.4.3` | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |
---
### Release Notes
<details>
<summary>astral-sh/ruff (ruff)</summary>
### [`v0.4.3`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#043)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.4.2...v0.4.3)
##### Enhancements
- Add support for PEP 696 syntax ([#​11120](https://togithub.com/astral-sh/ruff/pull/11120))
##### Preview features
- \[`refurb`] Use function range for `reimplemented-operator` diagnostics ([#​11271](https://togithub.com/astral-sh/ruff/pull/11271))
- \[`refurb`] Ignore methods in `reimplemented-operator` (`FURB118`) ([#​11270](https://togithub.com/astral-sh/ruff/pull/11270))
- \[`refurb`] Implement `fstring-number-format` (`FURB116`) ([#​10921](https://togithub.com/astral-sh/ruff/pull/10921))
- \[`ruff`] Implement `redirected-noqa` (`RUF101`) ([#​11052](https://togithub.com/astral-sh/ruff/pull/11052))
- \[`pyflakes`] Distinguish between first-party and third-party imports for fix suggestions ([#​11168](https://togithub.com/astral-sh/ruff/pull/11168))
##### Rule changes
- \[`flake8-bugbear`] Ignore non-abstract class attributes when enforcing `B024` ([#​11210](https://togithub.com/astral-sh/ruff/pull/11210))
- \[`flake8-logging`] Include inline instantiations when detecting loggers ([#​11154](https://togithub.com/astral-sh/ruff/pull/11154))
- \[`pylint`] Also emit `PLR0206` for properties with variadic parameters ([#​11200](https://togithub.com/astral-sh/ruff/pull/11200))
- \[`ruff`] Detect duplicate codes as part of `unused-noqa` (`RUF100`) ([#​10850](https://togithub.com/astral-sh/ruff/pull/10850))
##### Formatter
- Avoid multiline expression if format specifier is present ([#​11123](https://togithub.com/astral-sh/ruff/pull/11123))
##### LSP
- Write `ruff server` setup guide for Helix ([#​11183](https://togithub.com/astral-sh/ruff/pull/11183))
- `ruff server` no longer hangs after shutdown ([#​11222](https://togithub.com/astral-sh/ruff/pull/11222))
- `ruff server` reads from a configuration TOML file in the user configuration directory if no local configuration exists ([#​11225](https://togithub.com/astral-sh/ruff/pull/11225))
- `ruff server` respects `per-file-ignores` configuration ([#​11224](https://togithub.com/astral-sh/ruff/pull/11224))
- `ruff server`: Support a custom TOML configuration file ([#​11140](https://togithub.com/astral-sh/ruff/pull/11140))
- `ruff server`: Support setting to prioritize project configuration over editor configuration ([#​11086](https://togithub.com/astral-sh/ruff/pull/11086))
##### Bug fixes
- Avoid debug assertion around NFKC renames ([#​11249](https://togithub.com/astral-sh/ruff/pull/11249))
- \[`pyflakes`] Prioritize `redefined-while-unused` over `unused-import` ([#​11173](https://togithub.com/astral-sh/ruff/pull/11173))
- \[`ruff`] Respect `async` expressions in comprehension bodies ([#​11219](https://togithub.com/astral-sh/ruff/pull/11219))
- \[`pygrep_hooks`] Fix `blanket-noqa` panic when last line has noqa with no newline (`PGH004`) ([#​11108](https://togithub.com/astral-sh/ruff/pull/11108))
- \[`perflint`] Ignore list-copy recommendations for async `for` loops ([#​11250](https://togithub.com/astral-sh/ruff/pull/11250))
- \[`pyflakes`] Improve `invalid-print-syntax` documentation ([#​11171](https://togithub.com/astral-sh/ruff/pull/11171))
##### Performance
- Avoid allocations for isort module names ([#​11251](https://togithub.com/astral-sh/ruff/pull/11251))
- Build a separate ARM wheel for macOS ([#​11149](https://togithub.com/astral-sh/ruff/pull/11149))
### [`v0.4.2`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#042)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.4.1...v0.4.2)
##### Rule changes
- \[`flake8-pyi`] Allow for overloaded `__exit__` and `__aexit__` definitions (`PYI036`) ([#​11057](https://togithub.com/astral-sh/ruff/pull/11057))
- \[`pyupgrade`] Catch usages of `"%s" % var` and provide an unsafe fix (`UP031`) ([#​11019](https://togithub.com/astral-sh/ruff/pull/11019))
- \[`refurb`] Implement new rule that suggests min/max over `sorted()` (`FURB192`) ([#​10868](https://togithub.com/astral-sh/ruff/pull/10868))
##### Server
- Fix an issue with missing diagnostics for Neovim and Helix ([#​11092](https://togithub.com/astral-sh/ruff/pull/11092))
- Implement hover documentation for `noqa` codes ([#​11096](https://togithub.com/astral-sh/ruff/pull/11096))
- Introduce common Ruff configuration options with new server settings ([#​11062](https://togithub.com/astral-sh/ruff/pull/11062))
##### Bug fixes
- Use `macos-12` for building release wheels to enable macOS 11 compatibility ([#​11146](https://togithub.com/astral-sh/ruff/pull/11146))
- \[`flake8-blind-expect`] Allow raise from in `BLE001` ([#​11131](https://togithub.com/astral-sh/ruff/pull/11131))
- \[`flake8-pyi`] Allow simple assignments to `None` in enum class scopes (`PYI026`) ([#​11128](https://togithub.com/astral-sh/ruff/pull/11128))
- \[`flake8-simplify`] Avoid raising `SIM911` for non-`zip` attribute calls ([#​11126](https://togithub.com/astral-sh/ruff/pull/11126))
- \[`refurb`] Avoid `operator.itemgetter` suggestion for single-item tuple ([#​11095](https://togithub.com/astral-sh/ruff/pull/11095))
- \[`ruff`] Respect per-file-ignores for `RUF100` with no other diagnostics ([#​11058](https://togithub.com/astral-sh/ruff/pull/11058))
- \[`ruff`] Fix async comprehension false positive (`RUF029`) ([#​11070](https://togithub.com/astral-sh/ruff/pull/11070))
##### Documentation
- \[`flake8-bugbear`] Document explicitly disabling strict zip (`B905`) ([#​11040](https://togithub.com/astral-sh/ruff/pull/11040))
- \[`flake8-type-checking`] Mention `lint.typing-modules` in `TCH001`, `TCH002`, and `TCH003` ([#​11144](https://togithub.com/astral-sh/ruff/pull/11144))
- \[`isort`] Improve documentation around custom `isort` sections ([#​11050](https://togithub.com/astral-sh/ruff/pull/11050))
- \[`pylint`] Fix documentation oversight for `invalid-X-returns` ([#​11094](https://togithub.com/astral-sh/ruff/pull/11094))
##### Performance
- Use `matchit` to resolve per-file settings ([#​11111](https://togithub.com/astral-sh/ruff/pull/11111))
### [`v0.4.1`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#041)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.4.0...v0.4.1)
##### Preview features
- \[`pylint`] Implement `invalid-hash-returned` (`PLE0309`) ([#​10961](https://togithub.com/astral-sh/ruff/pull/10961))
- \[`pylint`] Implement `invalid-index-returned` (`PLE0305`) ([#​10962](https://togithub.com/astral-sh/ruff/pull/10962))
##### Bug fixes
- \[`pylint`] Allow `NoReturn`-like functions for `__str__`, `__len__`, etc. (`PLE0307`) ([#​11017](https://togithub.com/astral-sh/ruff/pull/11017))
- Parser: Use empty range when there's "gap" in token source ([#​11032](https://togithub.com/astral-sh/ruff/pull/11032))
- \[`ruff`] Ignore stub functions in `unused-async` (`RUF029`) ([#​11026](https://togithub.com/astral-sh/ruff/pull/11026))
- Parser: Expect indented case block instead of match stmt ([#​11033](https://togithub.com/astral-sh/ruff/pull/11033))
### [`v0.4.0`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#040)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.3.7...v0.4.0)
##### A new, hand-written parser
Ruff's new parser is **>2x faster**, which translates to a **20-40% speedup** for all linting and formatting invocations.
There's a lot to say about this exciting change, so check out the [blog post](https://astral.sh/blog/ruff-v0.4.0) for more details!
See [#​10036](https://togithub.com/astral-sh/ruff/pull/10036) for implementation details.
##### A new language server in Rust
With this release, we also want to highlight our new language server. `ruff server` is a Rust-powered language
server that comes built-in with Ruff. It can be used with any editor that supports the [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) (LSP).
It uses a multi-threaded, lock-free architecture inspired by `rust-analyzer` and it will open the door for a lot
of exciting features. It’s also faster than our previous [Python-based language server](https://togithub.com/astral-sh/ruff-lsp)
\-- but you probably guessed that already.
`ruff server` is only in alpha, but it has a lot of features that you can try out today:
- Lints Python files automatically and shows quick-fixes when available
- Formats Python files, with support for range formatting
- Comes with commands for quickly performing actions: `ruff.applyAutofix`, `ruff.applyFormat`, and `ruff.applyOrganizeImports`
- Supports `source.fixAll` and `source.organizeImports` source actions
- Automatically reloads your project configuration when you change it
To setup `ruff server` with your editor, refer to the [README.md](https://togithub.com/astral-sh/ruff/blob/main/crates/ruff_server/README.md).
##### Preview features
- \[`pycodestyle`] Do not trigger `E3` rules on `def`s following a function/method with a dummy body ([#​10704](https://togithub.com/astral-sh/ruff/pull/10704))
- \[`pylint`] Implement `invalid-bytes-returned` (`E0308`) ([#​10959](https://togithub.com/astral-sh/ruff/pull/10959))
- \[`pylint`] Implement `invalid-length-returned` (`E0303`) ([#​10963](https://togithub.com/astral-sh/ruff/pull/10963))
- \[`pylint`] Implement `self-cls-assignment` (`W0642`) ([#​9267](https://togithub.com/astral-sh/ruff/pull/9267))
- \[`pylint`] Omit stubs from `invalid-bool` and `invalid-str-return-type` ([#​11008](https://togithub.com/astral-sh/ruff/pull/11008))
- \[`ruff`] New rule `unused-async` (`RUF029`) to detect unneeded `async` keywords on functions ([#​9966](https://togithub.com/astral-sh/ruff/pull/9966))
##### Rule changes
- \[`flake8-bandit`] Allow `urllib.request.urlopen` calls with static `Request` argument (`S310`) ([#​10964](https://togithub.com/astral-sh/ruff/pull/10964))
- \[`flake8-bugbear`] Treat `raise NotImplemented`-only bodies as stub functions (`B006`) ([#​10990](https://togithub.com/astral-sh/ruff/pull/10990))
- \[`flake8-slots`] Respect same-file `Enum` subclasses (`SLOT000`) ([#​11006](https://togithub.com/astral-sh/ruff/pull/11006))
- \[`pylint`] Support inverted comparisons (`PLR1730`) ([#​10920](https://togithub.com/astral-sh/ruff/pull/10920))
##### Linter
- Improve handling of builtin symbols in linter rules ([#​10919](https://togithub.com/astral-sh/ruff/pull/10919))
- Improve display of rules in `--show-settings` ([#​11003](https://togithub.com/astral-sh/ruff/pull/11003))
- Improve inference capabilities of the `BuiltinTypeChecker` ([#​10976](https://togithub.com/astral-sh/ruff/pull/10976))
- Resolve classes and functions relative to script name ([#​10965](https://togithub.com/astral-sh/ruff/pull/10965))
- Improve performance of `RuleTable::any_enabled` ([#​10971](https://togithub.com/astral-sh/ruff/pull/10971))
##### Server
*This section is devoted to updates for our new language server, written in Rust.*
- Enable ruff-specific source actions ([#​10916](https://togithub.com/astral-sh/ruff/pull/10916))
- Refreshes diagnostics for open files when file configuration is changed ([#​10988](https://togithub.com/astral-sh/ruff/pull/10988))
- Important errors are now shown as popups ([#​10951](https://togithub.com/astral-sh/ruff/pull/10951))
- Introduce settings for directly configuring the linter and formatter ([#​10984](https://togithub.com/astral-sh/ruff/pull/10984))
- Resolve configuration for each document individually ([#​10950](https://togithub.com/astral-sh/ruff/pull/10950))
- Write a setup guide for Neovim ([#​10987](https://togithub.com/astral-sh/ruff/pull/10987))
##### Configuration
- Add `RUFF_OUTPUT_FILE` environment variable support ([#​10992](https://togithub.com/astral-sh/ruff/pull/10992))
##### Bug fixes
- Avoid `non-augmented-assignment` for reversed, non-commutative operators (`PLR6104`) ([#​10909](https://togithub.com/astral-sh/ruff/pull/10909))
- Limit commutative non-augmented-assignments to primitive data types (`PLR6104`) ([#​10912](https://togithub.com/astral-sh/ruff/pull/10912))
- Respect `per-file-ignores` for `RUF100` on blanket `# noqa` ([#​10908](https://togithub.com/astral-sh/ruff/pull/10908))
- Consider `if` expression for parenthesized with items parsing ([#​11010](https://togithub.com/astral-sh/ruff/pull/11010))
- Consider binary expr for parenthesized with items parsing ([#​11012](https://togithub.com/astral-sh/ruff/pull/11012))
- Reset `FOR_TARGET` context for all kinds of parentheses ([#​11009](https://togithub.com/astral-sh/ruff/pull/11009))
### [`v0.3.7`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#037)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.3.6...v0.3.7)
##### Preview features
- \[`flake8-bugbear`] Implement `loop-iterator-mutation` (`B909`) ([#​9578](https://togithub.com/astral-sh/ruff/pull/9578))
- \[`pylint`] Implement rule to prefer augmented assignment (`PLR6104`) ([#​9932](https://togithub.com/astral-sh/ruff/pull/9932))
##### Bug fixes
- Avoid TOCTOU errors in cache initialization ([#​10884](https://togithub.com/astral-sh/ruff/pull/10884))
- \[`pylint`] Recode `nan-comparison` rule to `W0177` ([#​10894](https://togithub.com/astral-sh/ruff/pull/10894))
- \[`pylint`] Reverse min-max logic in `if-stmt-min-max` ([#​10890](https://togithub.com/astral-sh/ruff/pull/10890))
### [`v0.3.6`](https://togithub.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#036)
[Compare Source](https://togithub.com/astral-sh/ruff/compare/v0.3.5...v0.3.6)
##### Preview features
- \[`pylint`] Implement `bad-staticmethod-argument` (`PLW0211`) ([#​10781](https://togithub.com/astral-sh/ruff/pull/10781))
- \[`pylint`] Implement `if-stmt-min-max` (`PLR1730`, `PLR1731`) ([#​10002](https://togithub.com/astral-sh/ruff/pull/10002))
- \[`pyupgrade`] Replace `str,Enum` multiple inheritance with `StrEnum` `UP042` ([#​10713](https://togithub.com/astral-sh/ruff/pull/10713))
- \[`refurb`] Implement `if-expr-instead-of-or-operator` (`FURB110`) ([#​10687](https://togithub.com/astral-sh/ruff/pull/10687))
- \[`refurb`] Implement `int-on-sliced-str` (`FURB166`) ([#​10650](https://togithub.com/astral-sh/ruff/pull/10650))
- \[`refurb`] Implement `write-whole-file` (`FURB103`) ([#​10802](https://togithub.com/astral-sh/ruff/pull/10802))
- \[`refurb`] Support `itemgetter` in `reimplemented-operator` (`FURB118`) ([#​10526](https://togithub.com/astral-sh/ruff/pull/10526))
- \[`flake8_comprehensions`] Add `sum`/`min`/`max` to unnecessary comprehension check (`C419`) ([#​10759](https://togithub.com/astral-sh/ruff/pull/10759))
##### Rule changes
- \[`pydocstyle`] Require capitalizing docstrings where the first sentence is a single word (`D403`) ([#​10776](https://togithub.com/astral-sh/ruff/pull/10776))
- \[`pycodestyle`] Ignore annotated lambdas in class scopes (`E731`) ([#​10720](https://togithub.com/astral-sh/ruff/pull/10720))
- \[`flake8-pyi`] Various improvements to PYI034 ([#​10807](https://togithub.com/astral-sh/ruff/pull/10807))
- \[`flake8-slots`] Flag subclasses of call-based `typing.NamedTuple`s as well as subclasses of `collections.namedtuple()` (`SLOT002`) ([#​10808](https://togithub.com/astral-sh/ruff/pull/10808))
- \[`pyflakes`] Allow forward references in class bases in stub files (`F821`) ([#​10779](https://togithub.com/astral-sh/ruff/pull/10779))
- \[`pygrep-hooks`] Improve `blanket-noqa` error message (`PGH004`) ([#​10851](https://togithub.com/astral-sh/ruff/pull/10851))
##### CLI
- Support `FORCE_COLOR` env var ([#​10839](https://togithub.com/astral-sh/ruff/pull/10839))
##### Configuration
- Support negated patterns in `[extend-]per-file-ignores` ([#​10852](https://togithub.com/astral-sh/ruff/pull/10852))
##### Bug fixes
- \[`flake8-import-conventions`] Accept non-aliased (but correct) import in `unconventional-import-alias` (`ICN001`) ([#​10729](https://togithub.com/astral-sh/ruff/pull/10729))
- \[`flake8-quotes`] Add semantic model flag when inside f-string replacement field ([#​10766](https://togithub.com/astral-sh/ruff/pull/10766))
- \[`pep8-naming`] Recursively resolve `TypeDicts` for N815 violations ([#​10719](https://togithub.com/astral-sh/ruff/pull/10719))
- \[`flake8-quotes`] Respect `Q00*` ignores in `flake8-quotes` rules ([#​10728](https://togithub.com/astral-sh/ruff/pull/10728))
- \[`flake8-simplify`] Show negated condition in `needless-bool` diagnostics (`SIM103`) ([#​10854](https://togithub.com/astral-sh/ruff/pull/10854))
- \[`ruff`] Use within-scope shadowed bindings in `asyncio-dangling-task` (`RUF006`) ([#​10793](https://togithub.com/astral-sh/ruff/pull/10793))
- \[`flake8-pytest-style`] Fix single-tuple conversion in `pytest-parametrize-values-wrong-type` (`PT007`) ([#​10862](https://togithub.com/astral-sh/ruff/pull/10862))
- \[`flake8-return`] Ignore assignments to annotated variables in `unnecessary-assign` (`RET504`) ([#​10741](https://togithub.com/astral-sh/ruff/pull/10741))
- \[`refurb`] Do not allow any keyword arguments for `read-whole-file` in `rb` mode (`FURB101`) ([#​10803](https://togithub.com/astral-sh/ruff/pull/10803))
- \[`pylint`] Don't recommend decorating staticmethods with `@singledispatch` (`PLE1519`, `PLE1520`) ([#​10637](https://togithub.com/astral-sh/ruff/pull/10637))
- \[`pydocstyle`] Use section name range for all section-related docstring diagnostics ([#​10740](https://togithub.com/astral-sh/ruff/pull/10740))
- Respect `# noqa` directives on `__all__` openers ([#​10798](https://togithub.com/astral-sh/ruff/pull/10798))
</details>
---
### Configuration
📅 **Schedule**: Branch creation - "every weekend" in timezone Etc/UTC, Automerge - "every weekend" in timezone Etc/UTC.
🚦 **Automerge**: Enabled.
♻ **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://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/canonical/craft-parts).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMDEuNCIsInVwZGF0ZWRJblZlciI6IjM3LjM0MC4xMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged automated dependency update for ruff from 0.3.5 to 0.4.3. Passed CI, received two approvals, and was applied via Renovate bot automerge, updating a single configuration file. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged automated dependency update upgrading ruff from v0.3.5 to v0.4.3. The pull request was merged without conflicts or additional review. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #589 chore(deps): update dependency ruff to v0.1.14 | craft-parts | merged | Merged automated dependency update for ruff from v0.1.6 to v0.1.14. Approved by two reviewers with passing CI checks. Updated a single configuration file to apply the new version constraint. | |
| #40 chore(deps): update dependency ruff to ~=0.5.7 | craft-grammar | merged | Merged a Renovate-generated dependency update upgrading ruff from 0.4.5 to 0.5.7. The change passed CI checks, received approval, and was successfully merged into the main branch. | |
| #69 chore(deps): update dependency ruff to v0.0.269 | starbase | merged | Merged automated dependency update upgrading ruff from v0.0.267 to v0.0.269. Passed CI checks and reviewer approval before integration. | |
| #1071 chore(deps): update dependency ruff to v0.0.261 | charmcraft | merged | Automatically merged via Renovate bot to update the ruff dependency from v0.0.256 to v0.0.261. The change passed CI checks and received reviewer approval before automerge. | |
| #423 chore(deps): update dependency ruff to v0.1.6 | rockcraft | merged | Merged automated dependency update upgrading ruff from v0.1.1 to v0.1.6. Approved by two reviewers, passed CI checks, and applied with a minimal two-line change across two files. | |
| #177 chore(deps): update dependency ruff to v0.1.15 | starbase | merged | Successfully merged automated dependency update upgrading ruff from 0.0.267 to 0.1.15. The change passed CI checks, maintained 100% test coverage, and updated the project's linting tool to the latest release. | |
| #387 chore(deps): update dependency ruff to v0.1.1 | rockcraft | merged | Renovate bot updated the ruff dependency from 0.0.256 to 0.1.1. The change was approved by two reviewers, passed CI checks, and successfully merged. | |
| #37 chore(deps): update dependency ruff to v0.0.247 | starbase | merged | Automatically merged dependency update for ruff from v0.0.245 to v0.0.247. The change passed CI checks, received approval, and was merged via Renovate bot automation to keep the Python linter current. | |
| #223 chore(deps): update dependency lint/ruff to v0.1.14 | craft-cli | merged | Merged automated dependency update for lint/ruff from v0.1.8 to v0.1.14 via Renovate bot. CI and code coverage checks passed, successfully integrating the update. | |
| #182 chore(deps): update dependency ruff to v0.2.0 - autoclosed | starbase | closed | Automatically closed by Renovate after passing CI checks and approval. The PR updated the ruff dependency from v0.1.15 to v0.2.0. |