The executables in our macOS and Windows release archives and ruff wheels are now code-signed.
macOS executables are signed with an Apple Developer ID certificate and notarized by Apple. Windows
executables have timestamped Authenticode signatures from Azure Artifact Signing. This enables
verification of the release publisher and binary integrity, supports publisher-based allowlisting,
and should reduce security warnings and antivirus false positives.
Breaking changes
Update the default and latest Python versions for 3.15 (#28792)
Ruff now defaults to Python 3.11 instead of 3.10 when no Python version is configured through target-version or requires-python. When
checking for syntax errors without a configured Python version, Ruff now defaults to Python 3.15
instead of 3.14.
JUnit output now uses a skipped attribute instead of disabled on <testsuite> elements and
includes a skipped attribute on the root <testsuites> element.
[flake8-import-conventions] Add datetime as dt as a conventional alias (ICN001) (#28790)
Ruff now uses Unicode 17 data for identifier normalization and named character escapes ("\N{...}").
Always show unsafe and display-only fixes in the CLI (#27810)
The default full output format now shows unsafe fixes and suggestions requiring manual review,
regardless of the unsafe-fixes setting.
Actually applying unsafe fixes still requires explicit opt-in.
The conda-forge build no longer depends on Python, now supports linux-riscv64, win-arm64, and
linux-ppc64le platforms, and now includes shell completions. However, no longer depending on
Python means that python -m ruff and import ruff will no longer work. Use ruff directly from PATH instead. PyPI installations and those from the standalone installer are unaffected.
Support for ruff-lsp, the legacy Python language server deprecated in Ruff
v0.9.5, has been removed. The Ruff VS Code
extension now always uses the native language server; ruff.nativeServer is deprecated and
ignored. See the migration guide.
Stabilization
The following rules have been stabilized and are no longer in preview:
The formatter, unsorted-imports (I001), line-too-long (E501), and doc-line-too-long (W505) now
consistently ignore trailing pragma comments when computing line length. This resolved several
bugs involving interactions between these rules
(#27313) but may also cause existing imports to be
reformatted and was thus classified as a breaking change.
Preview features
[flake8-bugbear] Report the method name and a more precise range (B005) (#27050)
[refurb] Mark fix unsafe and move to suspicious (FURB152) (#28405)
[ruff] Allow docstrings in strict mode (RUF067) (#28679)
Bug fixes
[flake8-builtins] Expand checks in class scopes (A001) (#29076)
[flake8-self] Allow private access on object.__new__(cls) instances (SLF001) (#29001)
[flake8-tidy-imports] Skip lazy-import-mismatch in stubs (TID254) (#29095)
[flake8-type-checking] Add the notion of runtime-ambiguous references (#26508)
[flake8-type-checking] Never flag annotations in function scopes (#29183)
[pyflakes] Mark the fix as unsafe when it creates a docstring (F541) (#28258)
[pylint] Preserve trailing comments in useless-return fix (PLR1711) (#29180)
[ruff] Avoid false positive when pytest.raises is used in a with statement (RUF061) (#28186)
Rule changes
[pyupgrade] Suggest typing.TypeForm on Python 3.15 (UP035) (#29084)
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.16.10` → `==0.17.3` |  |  |
---
### Release Notes
<details>
<summary>astral-sh/ruff (ruff)</summary>
### [`v0.17.3`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0173)
[Compare Source](https://github.com/astral-sh/ruff/compare/0.17.2...0.17.3)
Released on 2026-10-26.
##### Preview features
- \[`suspicious`] Add `shared-clock-mock` ([#​29074](https://github.com/astral-sh/ruff/pull/29074))
##### Bug fixes
- \[`pyupgrade`] Avoid incorrect conversions to f-strings (`UP032`) ([#​25485](https://github.com/astral-sh/ruff/pull/25485))
##### Performance
- Buffer stdout in `ruff format` ([#​29631](https://github.com/astral-sh/ruff/pull/29631))
- Specialize ASCII identifier lexing ([#​29503](https://github.com/astral-sh/ruff/pull/29503))
- Speed up identifier and keyword lexing ([#​29463](https://github.com/astral-sh/ruff/pull/29463))
##### Documentation
- \[`flake8-bandit`] Describe what the rule actually checks for `httpx` (`S113`) ([#​27936](https://github.com/astral-sh/ruff/pull/27936))
##### Contributors
- [@​itsvedantkumar](https://github.com/itsvedantkumar)
- [@​charliermarsh](https://github.com/charliermarsh)
- [@​anishgirianish](https://github.com/anishgirianish)
### [`v0.17.2`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0172)
[Compare Source](https://github.com/astral-sh/ruff/compare/0.17.1...0.17.2)
Released on 2026-10-22.
##### Preview features
- \[`complexity`] Add `unnecessary-regular-expression-compile` ([#​25533](https://github.com/astral-sh/ruff/pull/25533))
##### Bug fixes
- Avoid syntax errors for type variables with starred constraints (`UP040`, `UP046`, `UP047`, `RUF053`) ([#​28362](https://github.com/astral-sh/ruff/pull/28362))
- \[`pydocstyle`] Treat backslash-escaped `*args` and `**kwargs` as documented (`D417`) ([#​29536](https://github.com/astral-sh/ruff/pull/29536))
- \[`pylint`] Avoid false positive on starred elements (`PLE0643`) ([#​29483](https://github.com/astral-sh/ruff/pull/29483))
- \[`pylint`] Mark fixes unsafe when deleting comments (`PLR5501`, `PLW0120`) ([#​29414](https://github.com/astral-sh/ruff/pull/29414))
- \[`pyupgrade`] Mark fix unsafe when deleting comments (`UP035`) ([#​29413](https://github.com/astral-sh/ruff/pull/29413))
##### Performance
- Avoid intermediate names in lint name resolution ([#​29506](https://github.com/astral-sh/ruff/pull/29506))
- Prefilter bidirectional Unicode checks by UTF-8 leading bytes ([#​29561](https://github.com/astral-sh/ruff/pull/29561))
- Share postfix parsing and reduce expression copies ([#​29480](https://github.com/astral-sh/ruff/pull/29480))
##### Configuration
- \[`pylint`] Add a configurable allowlist for `magic-value-comparison` (`PLR2004`) ([#​18961](https://github.com/astral-sh/ruff/pull/18961))
##### Documentation
- Clarify documentation and correct stale guidance ([#​29374](https://github.com/astral-sh/ruff/pull/29374))
- \[`pyupgrade`] Remove mentions of variance related to fix safety (`UP040`, `UP047`) ([#​29592](https://github.com/astral-sh/ruff/pull/29592))
##### Contributors
- [@​fixfon](https://github.com/fixfon)
- [@​MichaReiser](https://github.com/MichaReiser)
- [@​zaniebot](https://github.com/zaniebot)
- [@​FrancescoPezzella](https://github.com/FrancescoPezzella)
- [@​anishgirianish](https://github.com/anishgirianish)
- [@​rajveer3x](https://github.com/rajveer3x)
- [@​charliermarsh](https://github.com/charliermarsh)
- [@​LckyLike](https://github.com/LckyLke)
- [@​DaniBodor](https://github.com/DaniBodor)
### [`v0.17.1`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0171)
[Compare Source](https://github.com/astral-sh/ruff/compare/0.17.0...0.17.1)
Released on 2026-10-15.
##### Preview features
- \[`pycodestyle`] Don't treat `None`, `True`, or `False` as keywords (`E271`-`E274`) ([#​29322](https://github.com/astral-sh/ruff/pull/29322))
##### Bug fixes
- Fix dedent with multiple leading comments ([#​29382](https://github.com/astral-sh/ruff/pull/29382))
- \[`flake8-pyi`] Detect legacy positional-only parameters in `__new__` methods (`PYI063`) ([#​28502](https://github.com/astral-sh/ruff/pull/28502))
- \[`flake8-pyi`] Fix false positives on quoted annotations (`PYI036`) ([#​29274](https://github.com/astral-sh/ruff/pull/29274))
- \[`perflint`] Avoid invalid comprehension suggestions (`PERF401`, `PERF403`) ([#​29366](https://github.com/astral-sh/ruff/pull/29366))
##### Rule changes
- Treat more `collections` and `weakref` containers as mutable ([#​29213](https://github.com/astral-sh/ruff/pull/29213))
##### Documentation
- \[`flake8-import-conventions`] Update default and example `aliases` ([#​29333](https://github.com/astral-sh/ruff/pull/29333))
##### Contributors
- [@​fixfon](https://github.com/fixfon)
- [@​mmaxjr](https://github.com/mmaxjr)
- [@​joshuavetos](https://github.com/joshuavetos)
- [@​nekomario28](https://github.com/nekomario28)
- [@​ntBre](https://github.com/ntBre)
- [@​shan3520](https://github.com/shan3520)
### [`v0.17.0`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0170)
[Compare Source](https://github.com/astral-sh/ruff/compare/0.16.10...0.17.0)
Released on 2026-10-09.
The executables in our macOS and Windows release archives and `ruff` wheels are now code-signed.
macOS executables are signed with an Apple Developer ID certificate and notarized by Apple. Windows
executables have timestamped Authenticode signatures from Azure Artifact Signing. This enables
verification of the release publisher and binary integrity, supports publisher-based allowlisting,
and should reduce security warnings and antivirus false positives.
##### Breaking changes
- Update the default and latest Python versions for 3.15 ([#​28792](https://github.com/astral-sh/ruff/pull/28792))
Ruff now defaults to Python 3.11 instead of 3.10 when no Python version is configured through
[`target-version`](https://docs.astral.sh/ruff/settings/#target-version) or
[`requires-python`](https://docs.astral.sh/ruff/configuration/#inferring-the-python-version). When
checking for syntax errors without a configured Python version, Ruff now defaults to Python 3.15
instead of 3.14.
- Update the default rule set ([#​28786](https://github.com/astral-sh/ruff/pull/28786))
Several of the `flake8-datetimez` rules
([`DTZ001`](https://docs.astral.sh/ruff/rules/call-datetime-without-tzinfo/),
[`DTZ005`](https://docs.astral.sh/ruff/rules/call-datetime-now-without-tzinfo/),
[`DTZ006`](https://docs.astral.sh/ruff/rules/call-datetime-fromtimestamp/),
[`DTZ007`](https://docs.astral.sh/ruff/rules/call-datetime-strptime-without-zone/),
[`DTZ011`](https://docs.astral.sh/ruff/rules/call-date-today/),
[`DTZ012`](https://docs.astral.sh/ruff/rules/call-date-fromtimestamp/), and
[`DTZ901`](https://docs.astral.sh/ruff/rules/datetime-min-max/)) are no longer enabled by default,
while [`undefined-local-with-nested-import-star-usage`](https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage/)
(`F406`), which corresponds to a syntax error, is now enabled by default.
- Update Rust crate quick-junit to 0.8.0 ([#​27295](https://github.com/astral-sh/ruff/pull/27295))
JUnit output now uses a `skipped` attribute instead of `disabled` on `<testsuite>` elements and
includes a `skipped` attribute on the root `<testsuites>` element.
- \[`flake8-import-conventions`] Add `datetime as dt` as a conventional alias (`ICN001`) ([#​28790](https://github.com/astral-sh/ruff/pull/28790))
- Support Unicode dummy variable names ([#​28722](https://github.com/astral-sh/ruff/pull/28722))
The default [`lint.dummy-variable-rgx`](https://docs.astral.sh/ruff/settings/#lint_dummy-variable-rgx)
now recognizes underscore-prefixed Unicode names, such as `_次`, as dummy variables.
- Update to Unicode 17 ([#​21229](https://github.com/astral-sh/ruff/pull/21229), [#​28784](https://github.com/astral-sh/ruff/pull/28784))
Ruff now uses Unicode 17 data for identifier normalization and named character escapes (`"\N{...}"`).
- Always show unsafe and display-only fixes in the CLI ([#​27810](https://github.com/astral-sh/ruff/pull/27810))
The default `full` output format now shows unsafe fixes and suggestions requiring manual review,
regardless of the [`unsafe-fixes`](https://docs.astral.sh/ruff/settings/#unsafe-fixes) setting.
Actually applying unsafe fixes still requires explicit opt-in.
- Remove the Python dependency from conda-forge builds ([conda-forge/ruff-feedstock#361](https://github.com/conda-forge/ruff-feedstock/pull/361))
The conda-forge build no longer depends on Python, now supports linux-riscv64, win-arm64, and
linux-ppc64le platforms, and now includes shell completions. However, no longer depending on
Python means that `python -m ruff` and `import ruff` will no longer work. Use `ruff` directly from
`PATH` instead. PyPI installations and those from the standalone installer are unaffected.
- Remove support for ruff-lsp ([#​28750](https://github.com/astral-sh/ruff/pull/28750))
Support for `ruff-lsp`, the legacy Python language server [deprecated in Ruff
v0.9.5](https://github.com/astral-sh/ruff/releases/tag/0.9.5), has been removed. The Ruff VS Code
extension now always uses the native language server; `ruff.nativeServer` is deprecated and
ignored. See the [migration guide](https://docs.astral.sh/ruff/editors/migration/).
##### Stabilization
The following rules have been stabilized and are no longer in preview:
- [`lazy-import-mismatch`](https://docs.astral.sh/ruff/rules/lazy-import-mismatch) (`TID254`)
- [`lazy-import-immediately-resolved`](https://docs.astral.sh/ruff/rules/lazy-import-immediately-resolved)
(`TID255`)
- [`os-path-commonprefix`](https://docs.astral.sh/ruff/rules/os-path-commonprefix) (`RUF071`)
The following behaviors have been stabilized:
- The formatter, [`unsorted-imports`](https://docs.astral.sh/ruff/rules/unsorted-imports/) (`I001`),
[`line-too-long`](https://docs.astral.sh/ruff/rules/line-too-long/) (`E501`), and
[`doc-line-too-long`](https://docs.astral.sh/ruff/rules/doc-line-too-long/) (`W505`) now
consistently ignore trailing pragma comments when computing line length. This resolved several
bugs involving interactions between these rules
([#​27313](https://github.com/astral-sh/ruff/pull/27313)) but may also cause existing imports to be
reformatted and was thus classified as a breaking change.
##### Preview features
- \[`flake8-bugbear`] Report the method name and a more precise range (`B005`) ([#​27050](https://github.com/astral-sh/ruff/pull/27050))
- \[`refurb`] Mark fix unsafe and move to `suspicious` (`FURB152`) ([#​28405](https://github.com/astral-sh/ruff/pull/28405))
- \[`ruff`] Allow docstrings in strict mode (`RUF067`) ([#​28679](https://github.com/astral-sh/ruff/pull/28679))
##### Bug fixes
- \[`flake8-builtins`] Expand checks in class scopes (`A001`) ([#​29076](https://github.com/astral-sh/ruff/pull/29076))
- \[`flake8-self`] Allow private access on `object.__new__(cls)` instances (`SLF001`) ([#​29001](https://github.com/astral-sh/ruff/pull/29001))
- \[`flake8-tidy-imports`] Skip `lazy-import-mismatch` in stubs (`TID254`) ([#​29095](https://github.com/astral-sh/ruff/pull/29095))
- \[`flake8-type-checking`] Add the notion of runtime-ambiguous references ([#​26508](https://github.com/astral-sh/ruff/pull/26508))
- \[`flake8-type-checking`] Never flag annotations in function scopes ([#​29183](https://github.com/astral-sh/ruff/pull/29183))
- \[`pyflakes`] Mark the fix as unsafe when it creates a docstring (`F541`) ([#​28258](https://github.com/astral-sh/ruff/pull/28258))
- \[`pylint`] Preserve trailing comments in `useless-return` fix (`PLR1711`) ([#​29180](https://github.com/astral-sh/ruff/pull/29180))
- \[`ruff`] Avoid false positive when `pytest.raises` is used in a `with` statement (`RUF061`) ([#​28186](https://github.com/astral-sh/ruff/pull/28186))
##### Rule changes
- \[`pyupgrade`] Suggest `typing.TypeForm` on Python 3.15 (`UP035`) ([#​29084](https://github.com/astral-sh/ruff/pull/29084))
##### Contributors
- [@​DeviousCardi](https://github.com/DeviousCardi)
- [@​hugehoo](https://github.com/hugehoo)
- [@​nekomario28](https://github.com/nekomario28)
- [@​Daverball](https://github.com/Daverball)
- [@​Viicos](https://github.com/Viicos)
- [@​DebadityaHait](https://github.com/DebadityaHait)
- [@​saberoueslati](https://github.com/saberoueslati)
- [@​baltasarblanco](https://github.com/baltasarblanco)
- [@​yxshee](https://github.com/yxshee)
- [@​lognd](https://github.com/lognd)
- [@​dor-sr](https://github.com/dor-sr)
</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:eyJjcmVhdGVkSW5WZXIiOiI0My4yODUuNCIsInVwZGF0ZWRJblZlciI6IjQzLjI4NS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
==0.16.10→==0.17.3Release Notes
astral-sh/ruff (ruff)
v0.17.3Compare Source
Released on 2026-10-26.
Preview features
suspicious] Addshared-clock-mock(#29074)Bug fixes
pyupgrade] Avoid incorrect conversions to f-strings (UP032) (#25485)Performance
ruff format(#29631)Documentation
flake8-bandit] Describe what the rule actually checks forhttpx(S113) (#27936)Contributors
v0.17.2Compare Source
Released on 2026-10-22.
Preview features
complexity] Addunnecessary-regular-expression-compile(#25533)Bug fixes
UP040,UP046,UP047,RUF053) (#28362)pydocstyle] Treat backslash-escaped*argsand**kwargsas documented (D417) (#29536)pylint] Avoid false positive on starred elements (PLE0643) (#29483)pylint] Mark fixes unsafe when deleting comments (PLR5501,PLW0120) (#29414)pyupgrade] Mark fix unsafe when deleting comments (UP035) (#29413)Performance
Configuration
pylint] Add a configurable allowlist formagic-value-comparison(PLR2004) (#18961)Documentation
pyupgrade] Remove mentions of variance related to fix safety (UP040,UP047) (#29592)Contributors
v0.17.1Compare Source
Released on 2026-10-15.
Preview features
pycodestyle] Don't treatNone,True, orFalseas keywords (E271-E274) (#29322)Bug fixes
flake8-pyi] Detect legacy positional-only parameters in__new__methods (PYI063) (#28502)flake8-pyi] Fix false positives on quoted annotations (PYI036) (#29274)perflint] Avoid invalid comprehension suggestions (PERF401,PERF403) (#29366)Rule changes
collectionsandweakrefcontainers as mutable (#29213)Documentation
flake8-import-conventions] Update default and examplealiases(#29333)Contributors
v0.17.0Compare Source
Released on 2026-10-09.
The executables in our macOS and Windows release archives and
ruffwheels are now code-signed.macOS executables are signed with an Apple Developer ID certificate and notarized by Apple. Windows
executables have timestamped Authenticode signatures from Azure Artifact Signing. This enables
verification of the release publisher and binary integrity, supports publisher-based allowlisting,
and should reduce security warnings and antivirus false positives.
Breaking changes
Update the default and latest Python versions for 3.15 (#28792)
Ruff now defaults to Python 3.11 instead of 3.10 when no Python version is configured through
target-versionorrequires-python. Whenchecking for syntax errors without a configured Python version, Ruff now defaults to Python 3.15
instead of 3.14.
Update the default rule set (#28786)
Several of the
flake8-datetimezrules(
DTZ001,DTZ005,DTZ006,DTZ007,DTZ011,DTZ012, andDTZ901) are no longer enabled by default,while
undefined-local-with-nested-import-star-usage(
F406), which corresponds to a syntax error, is now enabled by default.Update Rust crate quick-junit to 0.8.0 (#27295)
JUnit output now uses a
skippedattribute instead ofdisabledon<testsuite>elements andincludes a
skippedattribute on the root<testsuites>element.[
flake8-import-conventions] Adddatetime as dtas a conventional alias (ICN001) (#28790)Support Unicode dummy variable names (#28722)
The default
lint.dummy-variable-rgxnow recognizes underscore-prefixed Unicode names, such as
_次, as dummy variables.Update to Unicode 17 (#21229, #28784)
Ruff now uses Unicode 17 data for identifier normalization and named character escapes (
"\N{...}").Always show unsafe and display-only fixes in the CLI (#27810)
The default
fulloutput format now shows unsafe fixes and suggestions requiring manual review,regardless of the
unsafe-fixessetting.Actually applying unsafe fixes still requires explicit opt-in.
Remove the Python dependency from conda-forge builds (conda-forge/ruff-feedstock#361)
The conda-forge build no longer depends on Python, now supports linux-riscv64, win-arm64, and
linux-ppc64le platforms, and now includes shell completions. However, no longer depending on
Python means that
python -m ruffandimport ruffwill no longer work. Useruffdirectly fromPATHinstead. PyPI installations and those from the standalone installer are unaffected.Remove support for ruff-lsp (#28750)
Support for
ruff-lsp, the legacy Python language server deprecated in Ruffv0.9.5, has been removed. The Ruff VS Code
extension now always uses the native language server;
ruff.nativeServeris deprecated andignored. See the migration guide.
Stabilization
The following rules have been stabilized and are no longer in preview:
lazy-import-mismatch(TID254)lazy-import-immediately-resolved(
TID255)os-path-commonprefix(RUF071)The following behaviors have been stabilized:
unsorted-imports(I001),line-too-long(E501), anddoc-line-too-long(W505) nowconsistently ignore trailing pragma comments when computing line length. This resolved several
bugs involving interactions between these rules
(#27313) but may also cause existing imports to be
reformatted and was thus classified as a breaking change.
Preview features
flake8-bugbear] Report the method name and a more precise range (B005) (#27050)refurb] Mark fix unsafe and move tosuspicious(FURB152) (#28405)ruff] Allow docstrings in strict mode (RUF067) (#28679)Bug fixes
flake8-builtins] Expand checks in class scopes (A001) (#29076)flake8-self] Allow private access onobject.__new__(cls)instances (SLF001) (#29001)flake8-tidy-imports] Skiplazy-import-mismatchin stubs (TID254) (#29095)flake8-type-checking] Add the notion of runtime-ambiguous references (#26508)flake8-type-checking] Never flag annotations in function scopes (#29183)pyflakes] Mark the fix as unsafe when it creates a docstring (F541) (#28258)pylint] Preserve trailing comments inuseless-returnfix (PLR1711) (#29180)ruff] Avoid false positive whenpytest.raisesis used in awithstatement (RUF061) (#28186)Rule changes
pyupgrade] Suggesttyping.TypeFormon Python 3.15 (UP035) (#29084)Contributors
Configuration
📅 Schedule: (UTC)
🚦 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.
This PR has been generated by Mend Renovate.
0c42ed8823tob72b40e0eachore(deps): update dependency ruff to v0.17.0to chore(deps): update dependency ruff to v0.17.1b72b40e0eato07a582d435chore(deps): update dependency ruff to v0.17.1to chore(deps): update dependency ruff to v0.17.207a582d435tobc3810fad9chore(deps): update dependency ruff to v0.17.2to chore(deps): update dependency ruff to v0.17.3View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.