Open
Conversation
Contributor
Author
Branch automerge failureThis PR was configured for branch automerge. However, this is not possible, so it has been raised as a PR instead.
|
da5ab24 to
d54dc48
Compare
d54dc48 to
45924ae
Compare
45924ae to
fbff23d
Compare
fbff23d to
8b9cfff
Compare
8b9cfff to
a3fa053
Compare
a3fa053 to
90f9a56
Compare
90f9a56 to
5f267ea
Compare
7a2690e to
3a38359
Compare
3a38359 to
185ce75
Compare
35fb422 to
f502c52
Compare
f502c52 to
de7dcba
Compare
de7dcba to
eb6f845
Compare
eb6f845 to
45c1ffb
Compare
45c1ffb to
7a30c64
Compare
2cab8d7 to
7d49d80
Compare
8329588 to
c61d901
Compare
c61d901 to
ebf38d8
Compare
ebf38d8 to
a8cd5b0
Compare
a8cd5b0 to
7b225e4
Compare
7b225e4 to
e26a8a6
Compare
e26a8a6 to
04fdf30
Compare
04fdf30 to
d7887da
Compare
d7887da to
0f87b76
Compare
0f87b76 to
6fd64e2
Compare
6fd64e2 to
75da3dd
Compare
75da3dd to
ecea505
Compare
ecea505 to
e16844d
Compare
e16844d to
5048539
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v0.5.5→v0.15.2==0.5.5→==0.15.2Note: The
pre-commitmanager in Renovate is not supported by thepre-commitmaintainers or community. Please do not report any problems there, instead create a Discussion in the Renovate repository if you have any questions.Release Notes
charliermarsh/ruff-pre-commit (charliermarsh/ruff-pre-commit)
v0.15.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.2
v0.15.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.1
v0.15.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.15.0
v0.14.14Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.14
v0.14.13Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.13
v0.14.12Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.12
v0.14.11Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.11
v0.14.10Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.10
v0.14.9Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.9
v0.14.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.8
v0.14.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.7
v0.14.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.6
v0.14.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.5
v0.14.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.4
v0.14.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.3
v0.14.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.2
v0.14.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.1
v0.14.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.14.0
v0.13.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.13.3
v0.13.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.13.2
v0.13.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.13.1
v0.13.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.13.0
v0.12.12Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.12
v0.12.11Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.11
v0.12.10Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.10
v0.12.9Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.9
v0.12.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.8
v0.12.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.7
v0.12.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.7
Ruff's 0.12.6 release was yanked. See the linked release notes for more information.
v0.12.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.5
v0.12.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.4
v0.12.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.3
v0.12.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.2
v0.12.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.1
v0.12.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.12.0
v0.11.13Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.13
v0.11.12Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.12
v0.11.11Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.11
v0.11.10Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.10
v0.11.9Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.9
v0.11.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.8
v0.11.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.7
v0.11.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.6
v0.11.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.5
v0.11.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.4
v0.11.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.3
v0.11.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.2
v0.11.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.1
v0.11.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.11.0
v0.10.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.10.0
v0.9.10Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.10
v0.9.9Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.9
v0.9.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.8
v0.9.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.7
v0.9.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.6
v0.9.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.5
v0.9.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.4
v0.9.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.3
v0.9.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.2
v0.9.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.1
v0.9.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.9.0
v0.8.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.8.6
v0.8.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.8.5
v0.8.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.8.4
v0.8.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.8.3
v0.8.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.8.2
v0.8.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.8.1
v0.8.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.8.0
v0.7.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.7.4
v0.7.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.7.3
v0.7.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.7.2
v0.7.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.7.1
v0.7.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.7.0
v0.6.9Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.9
v0.6.8Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.8
v0.6.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.7
v0.6.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.6
v0.6.5Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.5
v0.6.4Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.4
v0.6.3Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.3
v0.6.2Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.2
v0.6.1Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.1
v0.6.0Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.6.0
v0.5.7Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.5.7
v0.5.6Compare Source
See: https://github.com/astral-sh/ruff/releases/tag/0.5.6
astral-sh/ruff (ruff)
v0.15.2Compare Source
Released on 2026-02-19.
Preview features
Expand the default rule set (#23385)
In preview, Ruff now enables a significantly expanded default rule set of 412
rules, up from the stable default set of 59 rules. The new rules are mostly a
superset of the stable defaults, with the exception of these rules, which are
removed from the preview defaults:
multiple-imports-on-one-line(E401)module-import-not-at-top-of-file(E402)module-import-not-at-top-of-file(E701)multiple-statements-on-one-line-semicolon(E702)useless-semicolon(E703)none-comparison(E711)true-false-comparison(E712)not-in-test(E713)not-is-test(E714)type-comparison(E721)lambda-assignment(E731)ambiguous-variable-name(E741)ambiguous-class-name(E742)ambiguous-function-name(E743)undefined-local-with-import-star(F403)undefined-local-with-import-star-usage(F405)undefined-local-with-nested-import-star-usage(F406)forward-annotation-syntax-error(F722)If you use preview and prefer the old defaults, you can restore them with
configuration like:
If you do give them a try, feel free to share your feedback in the GitHub
discussion!
[
flake8-pyi] Also check string annotations (PYI041) (#19023)Bug fixes
flake8-async] Fixin_async_contextlogic (#23426)ruff] Fix forRUF102should delete entire comment (#23380)ruff] Suppress diagnostic for strings with backslashes in interpolations before Python 3.12 (RUF027) (#21069)flake8-bugbear] FixB023false positive for immediately-invoked lambdas (#23294)Rule changes
flake8-executable] Allow global flags in uv shebangs (EXE003) (#22582)pyupgrade] Fix handling oftyping.{io,re}(UP035) (#23131)ruff] DetectPLC0207on chainedstr.split()calls (#23275)CLI
noqawarning (#23270)Configuration
Documentation
Q004to the list of conflicting rules (#23340)ruff] Expandlint.externaldocs and add sub-diagnostic (RUF100,RUF102) (#23268)Contributors
v0.15.1Compare Source
Released on 2026-02-12.
Preview features
airflow] Add ruff rules to catch deprecated Airflow imports for Airflow 3.1 (AIR321) (#22376)airflow] Third positional parameter not namedti_keyshould be flagged forBaseOperatorLink.get_link(AIR303) (#22828)flake8-gettext] Fix false negatives for plural argument ofngettext(INT001,INT002,INT003) (#21078)pyflakes] Fix infinite loop in preview fix forunused-import(F401) (#23038)pygrep-hooks] Detect non-existent mock methods in standalone expressions (PGH005) (#22830)pylint] Allow dunder submodules and improve diagnostic range (PLC2701) (#22804)pyupgrade] Improve diagnostic range for tuples (UP024) (#23013)refurb] Check subscripts in tuple do not use lambda parameters inreimplemented-operator(FURB118) (#23079)ruff] Detect mutable defaults infieldcalls (RUF008) (#23046)ruff] Ignore stdcmath.inf(RUF069) (#23120)ruff] New rulefloat-equality-comparison(RUF069) (#20585)pyconMarkdown code blocks (#23112)Bug fixes
FAST001(#23224)FAST003autofix (#23227)InitVarfor__post_init__that references PEP 695 type parameters (#23226)RUF020target for multiline fixes (#23210)UP007target for multiline fixes (#23208)pyupgrade] Fix syntax error on string with newline escape and comment (UP037) (#22968)Rule changes
ruffinstead ofRuffas the program name in GitHub output format (#23240)PT006] Fix syntax error when unpacking nested tuples inparametrizefixes (#22441) (#22464)airflow] Catch deprecated attribute access from context key for Airflow 3.0 (AIR301) (#22850)airflow] Capture deprecated arguments and a decorator (AIR301) (#23170)flake8-boolean-trap] Addmultiprocessing.Valueto excluded functions forFBT003(#23010)flake8-bugbear] Add a secondary annotation showing the previous occurrence (B033) (#22634)flake8-type-checking] Add sub-diagnostic showing the runtime use of an annotation (TC004) (#23091)isort] Support configurable import section heading comments (#23151)ruff] Improve the diagnostic forRUF012(#23202)Formatter
format --check --silent(#17736)Documentation
runtime-evaluated-decoratorsexample (#23187)Other changes
Contributors
v0.15.0Compare Source
Released on 2026-02-03.
Check out the blog post for a migration
guide and overview of the changes!
Breaking changes
Ruff now formats your code according to the 2026 style guide. See the formatter section below or in the blog post for a detailed list of changes.
The linter now supports block suppression comments. For example, to suppress
N803for all parameters in this function:See the documentation for more details.
The
ruff:alpineDocker image is now based on Alpine 3.23 (up from 3.21).The
ruff:debianandruff:debian-slimDocker images are now based on Debian 13 "Trixie" instead of Debian 12 "Bookworm."Binaries for the
ppc64(64-bit big-endian PowerPC) architecture are no longer included in our releases. It should still be possible to build Ruff manually for this platform, if needed.Ruff now resolves all
extended configuration files before falling back on a default Python version.Stabilization
The following rules have been stabilized and are no longer in preview:
blocking-http-call-httpx-in-async-function(
ASYNC212)blocking-path-method-in-async-function(
ASYNC240)blocking-input-in-async-function(
ASYNC250)map-without-explicit-strict(
B912)if-exp-instead-of-or-operator(
FURB110)single-item-membership-test(
FURB171)missing-maxsplit-arg(PLC0207)unnecessary-lambda(PLW0108)unnecessary-empty-iterable-within-deque-call(
RUF037)in-empty-collection(RUF060)legacy-form-pytest-raises(
RUF061)non-octal-permissions(RUF064)invalid-rule-code(RUF102)invalid-suppression-comment(
RUF103)unmatched-suppression-comment(
RUF104)replace-str-enum(UP042)The following behaviors have been stabilized:
--output-formatflag is now respected when running Ruff in--watchmode, and thefulloutput format is now used by default, matching the regular CLI output.builtin-attribute-shadowing(A003) now detects the use of shadowed built-in names in additional contexts like decorators, default arguments, and other attribute definitions.duplicate-union-member(PYI016) now considerstyping.Optionalwhen searching for duplicate union members.split-static-string(SIM905) now offers an autofix when themaxsplitargument is provided, even without asepargument.dict-get-with-none-default(SIM910) now applies to more types of key expressions.super-call-with-parameters(UP008) now has a safe fix when it will not delete comments.unnecessary-default-type-args(UP043) now applies to stub (.pyi) files on Python versions before 3.13.Formatter
This release introduces the new 2026 style guide, with the following changes:
them break across multiple lines (#21385)
exceptclauses will now be removed on Python 3.14 andlater (#20768)
ascaptures inmatchstatements (#21176)Preview features
Apply formatting to Markdown code blocks (#22470, #22990, #22996)
See the documentation for more details.
Bug fixes
Rule changes
fix_titlesub-diagnostic appears (#23044)FastAPI] Add sub-diagnostic explaining why a fix was unavailable (FAST002) (#22565)flake8-annotations] Don't suggestNoReturnfor functions raisingNotImplementedError(ANN201,ANN202,ANN205,ANN206) (#21311)pyupgrade] Make fix unsafe if it deletes comments (UP017) (#22873)pyupgrade] Make fix unsafe if it deletes comments (UP020) (#22872)pyupgrade] Make fix unsafe if it deletes comments (UP033) (#22871)refurb] Do not addabc.ABCif already present (FURB180) (#22234)refurb] Make fix unsafe if it deletes comments (FURB110) (#22768)ruff] Add sub-diagnostics with permissions (RUF064) (#22972)Server
didOpeninstead of.ipynbfile extension (#22810)CLI
--colorCLI option to force colored output (#22806)Documentation
-stdin convention in CLI help text (#22817)refurb] Change example tore.searchwith^anchor (FURB167) (#22984)pydocstyle] Clarify which quote styles are allowed (D300) (#22825)flake8-bugbear] Improve docs forno-explicit-stacklevel(B028) (#22538)Other changes
Contributors
v0.14.14Compare Source
Released on 2026-01-22.
Preview features
airflow] Second positional argument toAsset/Datasetshould not be a dictionary (AIR303) (#22453)ruff] Detect duplicate entries in__all__(RUF068) (#22114)Bug fixes
pyupgrade] Allow shadowing non-builtin bindings (UP029) (#22749)pyupgrade] ApplyUP045to string arguments oftyping.cast(#22320)flake8-pie] Detect duplicated declared class fields inPIE794(#22717)Rule changes
flake8-pyi] Fix inconsistent handling of forward references for__new__,__enter__,__aenter__inPYI034(#22798)flake8-pytest-style] Supportcheckparameter inPT011(#22725)ruff] Add exception forctypes.Structure._fields_(RUF012) (#22559)flake8-bugbear]B009,B010,B013,B014,B033flake8-simplify]SIM910,SIM911pyupgrade]UP007,UP039,UP041,UP045refurb]FURB105,FURB116,FURB136,FURB140,FURB145,FURB154,FURB157,FURB164,FURB181,FURB188ruff]RUF019,RUF020Documentation
--exit-non-zero-on-formatto formatter exit codes section (#22761)FastAPI] Document fix safety forFAST001(#22655)flake8-async] Tweak explanation to focus on latency/efficiency tradeoff (ASYNC110) (#22715)pandas-vet] Make example error out-of-the-box (PD002) (#22561)refurb] Make the example work out of box (FURB101) (#22770)refurb] Make the example work out of box (FURB103) (#22769)Contributors
v0.14.13Released on 2026-01-15.
This is a follow-up release to 0.14.12. Because of an issue publishing the WASM packages, there is no GitHub release or Git tag for 0.14.12, although the package was published to PyPI. The contents of the 0.14.13 release are identical to 0.14.12.
v0.14.12Released on 2026-01-15.
Preview features
flake8-blind-except] Allow more logging methods (BLE001) (#22057)ruff] Respectlint.pydocstyle.property-decoratorsinRUF066(#22515)Bug fixes
--show-settings(#22478)fmt: skipfor multiple statements on the same logical line (#22119)Rule changes
pydocstyle] Update Rust crate imperative to v1.0.7 (D401) (#22519)isort] Insert imports in alphabetical order (I002) (#22493)Documentation
flake8-pytest-style] Addcheckparameter example toPT017docs (#22546)ruff] Make example error out-of-the-box (RUF103) (#22558)ruff] documentRUF100trailing comment fix behavior (#22479)Other changes
Contributors
v0.14.11Compare Source
Released on 2026-01-08.
Preview features
airflow] Passing positional argument intoairflow.lineage.hook.HookLineageCollector.create_assetis not allowed (AIR303) (#22046)refurb] MarkFURB192fix as always unsafe (#22210)ruff] Addnon-empty-init-module(RUF067) (#22143)Bug fixes
flake8-unused-arguments] Mark**kwargsinTypeVaras used (ARG001) (#22214)Rule changes
help:subdiagnostics for several Ruff rules that can sometimes appear to disagree withty(#22331)pylint] DemotePLW1510fix to display-only (#22318)pylint] Ignore identical members (PLR1714) (#22220)pylint] Improve diagnostic range forPLC0206(#22312)ruff] Improve fix title forRUF102invalid rule code (#22100)flake8-simplify]: Avoid unnecessary builtins import forSIM105(#22358)Configuration
target-versionvalue in preview (#22419)required-versionbefore parsing rules (#22410)srcdirectories when resolving graphs (#22451)Documentation
T201suggestion to not use root logger to satisfyLOG015(#22059)iterexample in unsafe fixes doc (#22118)flake8_print] better suggestion forbasicConfiginT201docs (#22101)pylint] Restore the fix safety docs forPLW0133(#22211)Contributors