chore(deps): bump ruff from 0.15.13 to 0.17.0 in /clients/python
Bumps ruff from 0.15.13 to 0.17.0.
Release notes
Sourced from ruff's releases.
0.17.0
Release Notes
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. 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)
Several of the
flake8-datetimezrules (DTZ001,DTZ005,DTZ006,DTZ007,DTZ011,DTZ012, andDTZ901) are no longer enabled by default, whileundefined-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 and includes askippedattribute 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 theunsafe-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 Ruff v0.9.5, has been removed. The Ruff VS Code extension now always uses the native language server;ruff.nativeServeris deprecated and ignored. 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)
... (truncated)
Changelog
Sourced from ruff's changelog.
0.17.0
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. 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)
Several of the
flake8-datetimezrules (DTZ001,DTZ005,DTZ006,DTZ007,DTZ011,DTZ012, andDTZ901) are no longer enabled by default, whileundefined-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 and includes askippedattribute 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)
... (truncated)
Commits
5b27c1cBump version to 0.17.0 (#29259)8f362bfIntegrate vendored Unicode names into Ruff88a50d6Revert upstream Unicode loose matching276832aRevert upstream Unicode alias normalization26911caVendor unicode_names2 from upstream27e3797[ruff] Stabilizeos-path-commonprefix(RUF071) (#28764)bbb52c1[flake8-tidy-imports] Stabilizelazy-import-immediately-resolved(`TID255...5aa9cbd[flake8-tidy-imports] Stabilizelazy-import-mismatch(TID254) (#28760)dba1bc8[flake8-import-conventions] Adddatetime as dtas a conventional alias (`...ef23c9cUpdate default and latest Python versions for 3.15 (#28792)- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Summary by cubic
Bumps ruff from 0.15.13 to 0.17.0 in the Python client and re-resolves clients/python/uv.lock.
ruffnow defaults to Python 3.11 instead of 3.10 when no version is set, which can change linting results for unconfigured targets.- The
DTZ001,DTZ005,DTZ006,DTZ007,DTZ011,DTZ012, andDTZ901rules are no longer enabled by default, whileF406is now enabled. - Lockfile re-resolution updates markers and versions for several transitive dependencies (
mypy,pytest,anyio, and others).