Update dependency ruff to ^0.16.0 - #232
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d079758a9f
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
| pytest-dotenv = "^0.5.2" | ||
| pytest-xdist = "^3.6.1" | ||
| ruff = "^0.15.0" | ||
| ruff = "^0.16.0" |
There was a problem hiding this comment.
Pin Ruff's lint rules before bumping to 0.16
In the PR lint workflow I checked, .github/workflows/lint.yml installs these dev dependencies and then pnpm run lint runs poetry run ruff check . for packages/python-sdk; because this config has no explicit tool.ruff.lint.select, Ruff 0.16 applies its expanded default rule set (the v0.16 migration notes and default rules include I001). The current package already violates I001 in e2b_desktop/main.py, example.py, and tests, so installing this bump makes the existing lint job fail unless the new violations are fixed or the previous defaults are pinned.
Useful? React with 👍 / 👎.
d079758 to
2e4482f
Compare
This PR contains the following updates:
^0.15.0→^0.16.0Release Notes
astral-sh/ruff (ruff)
v0.16.1Compare Source
Released on 2026-07-30.
Preview features
flake8-pytest-style] Make fixes safe by default and unsafe only when comments are present (PT018) (#27201)pyupgrade] Skip fix when a defaultedTypeVarprecedes a non-defaulted one (UP040,UP046,UP047) (#27133)ruff] Fix false positive with unpacked arguments (RUF065) (#26959)Bug fixes
gen-lsp-typesto gracefully handle unknown enumeration values in LSP messages (#27230)flake8-bugbear] Markrangeas immutable (B008) (#27247)flake8-comprehensions] NFKC-normalize keyword names inC408fix (#26813)flake8-return] Fix false positive when variable is read infinallyclause (RET504) (#25441)pydocstyle] Skip section detection inside RST directive bodies (D214,D405,D413) (#23635)refurb] Parenthesizeyieldarguments in theFURB192fix (#27192)Rule changes
flake8-pytest-style] MarkPT022fixes as unsafe (#26440)refurb] Mark fixes that remove unknown separators as unsafe (FURB105) (#27200)Server
Documentation
pyconMarkdown formatting (#27153)flake8-bandit] DocumentTYPE_CHECKINGexception (S101) (#27004)flake8-import-conventions] Document thatextend-aliasescan override default aliases (#27191)pylint] Add missing fix safety gotchas fornon-augmented-assignment(PLR6104) (#27250)Other changes
Contributors
v0.16.0Compare Source
Released on 2026-07-23.
Check out the blog post for a migration
guide and overview of the changes!
Breaking changes
Ruff now enables a much larger set of rules by default (413, up from 59). See the blog post for
more details and the new Default Rules page for a
full listing of the enabled rules.
Ruff can now format Python code blocks in Markdown files and will do this by default. See the
documentation for more details.
Ruff now supports
ruff: ignorecomments at the ends of lines, likenoqacomments, or on the line preceding a diagnostic. For example, these both suppress anunused-import(F401) diagnostic:Fixes are now shown in
checkandformat --checkoutput:This example also shows off the Markdown formatting.
format --checknow supports the same output formats as the linter, including thegithubandgitlaboutputs for rendering annotations in CI:See the CLI help or documentation for the
full list of supported formats.
The
filename,location,end_location,fix.edits[].location, andfix.edits[].end_locationfields in the JSON output format may now be
nullrather than defaulting to the empty string androw 1, column 1, respectively.
Stabilization
The following rules have been stabilized and are no longer in preview:
airflow3-incompatible-function-signature(
AIR303)missing-copyright-notice(
CPY001)unnecessary-from-float(FURB164)sorted-min-max(FURB192)implicit-string-concatenation-in-collection-literal(
ISC004)log-exception-outside-except-handler(
LOG004)invalid-bool-return-type(
PLE0304)too-many-positional-arguments(
PLR0917)stop-iteration-return(PLR1708)none-not-at-end-of-union(
RUF036)access-annotations-from-class-dict(
RUF063)duplicate-entry-in-dunder-all(
RUF068)The following behaviors have been stabilized:
blind-except(BLE001) is now suppressed whenthe exception is logged via
loggingmethods other thancritical,errorandexception.future-required-type-annotation(
FA102) now checks for additional PEP 585-compatibleAPIs, such as those from
collections.abc.f-string-in-get-text-func-call(
INT001),format-in-get-text-func-call(
INT002), andprintf-in-get-text-func-call(
INT003) now check for additional common ways of using thegettextmodule, such as assigningit to
builtins._.suspicious-url-open-usage(
S310) now resolves local string literal bindings to avoid more false positives.snmp-insecure-version(S508) andsnmp-weak-cryptography(S509) nowsupport the recommended API from newer versions of PySNMP.
typing-text-str-alias(UP019) nowrecognizes
typing_extensions.Textin addition totyping.Text.Preview features
pyupgrade] Fix false positive withTypeVardefault before Python 3.13 (UP040) (#26888)Bug fixes
ruff] Fix missing check on unrecognized early bound (RUF016) (#26986)Rule changes
Performance
pyupgrade] Speed upunnecessary-future-import(UP010) (#27047)Documentation
ruff] Add missing period in "Why is this bad?" section (RUF200) (#26930)flake8-simplify] Clarifyos.environbehavior on Windows (SIM112) (#26972)pydocstyle] Document fix safety (D400) (#26971)Contributors
v0.15.22Compare Source
Release Notes
Released on 2026-07-16.
Preview features
pycodestyle] Add an autofix forE402(#22212)refurb] Allow subclassing builtins in stub files (FURB189) (#26812)ruff] Add rule to replacenoqacomments withruff:ignore(RUF105) (#26423)ruff] Add rule to use human-readable names inruff:ignorecomments (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 inredefined-loop-name(PLW2901) (#25733)Performance
Documentation
flake8-datetimez] Clarify naming guidance fordatetime.today(DTZ002) (#26658)pycodestyle] DocumentE731fix safety (#26847)ruff] Clarify intentional async contexts forunused-async(RUF029) (#26641)Contributors
Install ruff 0.15.22
Install prebuilt binaries via shell script
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
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:
You can also download the attestation from GitHub and verify against that directly:
v0.15.21Compare Source
Released on 2026-07-09.
Preview features
--add-ignorefor addingruff:ignorecomments (#26346)flake8-comprehensions] DropC409tuple comprehension preview behavior (#25707)pyupgrade] Lint and fix use of deprecatedabcdecorators (UP051) (#26417)Bug fixes
flake8-implicit-str-concat] FixISC003autofix incorrectly stripping+from comments (#26554)Rule changes
flake8-executable] MarkEXE004fix as unsafe (#26033)flake8-pyi] MarkPYI061fixes as unsafe in Python files (#26533)pydocstyle] Skipoverload-with-docstringin stub files (D418) (#26318)Performance
fits_elementin formatter (#26429)Formatter
--extend-excludetoruff format(#26372)Documentation
flake8-bandit] Fix misleading docstring formako-templates(S702) (#26432)ruff] Fix non-triggering example forif-key-in-dict-del(RUF051) (#26433)Contributors
Configuration
📅 Schedule: (in timezone 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 was generated by Mend Renovate. View the repository job log.