Releases: astral-sh/ruff
Releases · astral-sh/ruff
0.11.10
Release Notes
Preview features
- [
ruff
] Implement a recursive check forRUF060
(#17976) - [
airflow
] Enable autofixes forAIR301
andAIR311
(#17941) - [
airflow
] Apply try catch guard to allAIR3
rules (#17887) - [
airflow
] ExtendAIR311
rules (#17913)
Bug fixes
- [
flake8-bugbear
] IgnoreB028
ifskip_file_prefixes
is present (#18047) - [
flake8-pie
] Mark autofix forPIE804
as unsafe if the dictionary contains comments (#18046) - [
flake8-simplify
] Correct behavior forstr.split
/rsplit
withmaxsplit=0
(SIM905
) (#18075) - [
flake8-simplify
] FixSIM905
autofix forrsplit
creating a reversed list literal (#18045) - [
flake8-use-pathlib
] Suppress diagnostics for allos.*
functions that have thedir_fd
parameter (PTH
) (#17968) - [
refurb
] Mark autofix as safe only for number literals (FURB116
) (#17692)
Rule changes
- [
flake8-bandit
] SkipS608
for expressionless f-strings (#17999) - [
flake8-pytest-style
] Don't recommendusefixtures
forparametrize
values (PT019
) (#17650) - [
pyupgrade
] Addresource.error
as deprecated alias ofOSError
(UP024
) (#17933)
CLI
- Disable jemalloc on Android (#18033)
Documentation
- Update Neovim setup docs (#18108)
- [
flake8-simplify
] Add fix safety section (SIM103
) (#18086) - [
flake8-simplify
] Add fix safety section (SIM112
) (#18099) - [
pylint
] Add fix safety section (PLC0414
) (#17802) - [
pylint
] Add fix safety section (PLE4703
) (#17824) - [
pylint
] Add fix safety section (PLW1514
) (#17932) - [
pylint
] Add fix safety section (PLW3301
) (#17878) - [
ruff
] Add fix safety section (RUF007
) (#17755) - [
ruff
] Add fix safety section (RUF033
) (#17760)
Contributors
- @AlexWaygood
- @BurntSushi
- @DimitriPapadopoulos
- @InSyncWithFoo
- @LaBatata101
- @Lee-W
- @MichaReiser
- @Rogdham
- @Usul-Dev
- @VascoSch92
- @abhijeetbodas2001
- @bombsimon
- @carljm
- @charliermarsh
- @danparizher
- @dcreager
- @dhruvmanila
- @github-actions
- @ibraheemdev
- @kiran-4444
- @lukeanderson93
- @maxmynter
- @mtshiba
- @naslundx
- @ntBre
- @omahs
- @renovate
- @sharkdp
- @swnb
- @yunchipang
- @zanieb
Install ruff 0.11.10
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.11.10/ruff-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ruff/releases/download/0.11.10/ruff-installer.ps1 | iex"
Download ruff 0.11.10
0.11.9
Release Notes
Preview features
- Default to latest supported Python version for version-related syntax errors (#17529)
- Implement deferred annotations for Python 3.14 (#17658)
- [
airflow
] FixSQLTableCheckOperator
typo (AIR302
) (#17946) - [
airflow
] Removeairflow.utils.dag_parsing_context.get_parsing_context
(AIR301
) (#17852) - [
airflow
] Skip attribute check in try catch block (AIR301
) (#17790) - [
flake8-bandit
] Mark tuples of string literals as trusted input inS603
(#17801) - [
isort
] Check full module path against project root(s) when categorizing first-party imports (#16565) - [
ruff
] Add new rulein-empty-collection
(RUF060
) (#16480)
Bug fixes
- Fix missing
combine
call forlint.typing-extensions
setting (#17823) - [
flake8-async
] Fix module name inASYNC110
,ASYNC115
, andASYNC116
fixes (#17774) - [
pyupgrade
] Add spaces between tokens as necessary to avoid syntax errors inUP018
autofix (#17648) - [
refurb
] Fix false positive for float and complex numbers inFURB116
(#17661) - [parser] Flag single unparenthesized generator expr with trailing comma in arguments. (#17893)
Documentation
- Add instructions on how to upgrade to a newer Rust version (#17928)
- Update code of conduct email address (#17875)
- Add fix safety sections to
PLC2801
,PLR1722
, andRUF013
(#17825, #17826, #17759) - Add link to
check-typed-exception
fromS110
andS112
(#17786)
Other changes
- Allow passing a virtual environment to
ruff analyze graph
(#17743)
Contributors
- @AlexWaygood
- @BurntSushi
- @Gankra
- @Glyphack
- @InSyncWithFoo
- @LaBatata101
- @Lee-W
- @MichaReiser
- @VascoSch92
- @abhijeetbodas2001
- @carljm
- @charliermarsh
- @dcreager
- @dhruvmanila
- @dylwil3
- @ercbot
- @maxmynter
- @mtshiba
- @naslundx
- @ntBre
- @renovate
- @sharkdp
- @thejchap
- @yunchipang
- @zanieb
Install ruff 0.11.9
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.11.9/ruff-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ruff/releases/download/0.11.9/ruff-installer.ps1 | iex"
Download ruff 0.11.9
0.11.8
Release Notes
Preview features
- [
airflow
] Apply auto fixes to cases where the names have changed in Airflow 3 (AIR302
,AIR311
) (#17553, #17570, #17571) - [
airflow
] ExtendAIR301
rule (#17598) - [
airflow
] Update existingAIR302
rules with better suggestions (#17542) - [
refurb
] Mark fix as safe forreadlines-in-for
(FURB129
) (#17644) - [syntax-errors]
nonlocal
declaration at module level (#17559) - [syntax-errors] Detect single starred expression assignment
x = *y
(#17624)
Bug fixes
- [
flake8-pyi
] EnsureLiteral[None,] | Literal[None,]
is not autofixed toNone | None
(PYI061
) (#17659) - [
flake8-use-pathlib
] Avoid suggestingPath.iterdir()
foros.listdir
with file descriptor (PTH208
) (#17715) - [
flake8-use-pathlib
] FixPTH104
false positive whenrename
is passed a file descriptor (#17712) - [
flake8-use-pathlib
] FixPTH116
false positive whenstat
is passed a file descriptor (#17709) - [
flake8-use-pathlib
] FixPTH123
false positive whenopen
is passed a file descriptor from a function call (#17705) - [
pycodestyle
] Fix duplicated diagnostic inE712
(#17651) - [
pylint
] Detectglobal
declarations in module scope (PLE0118
) (#17411) - [syntax-errors] Make
async-comprehension-in-sync-comprehension
more specific (#17460)
Configuration
- Add option to disable
typing_extensions
imports (#17611)
Documentation
- Fix example syntax for the
lint.pydocstyle.ignore-var-parameters
option (#17740) - Add fix safety sections (
ASYNC116
,FLY002
,D200
,RUF005
,RUF017
,RUF027
,RUF028
,RUF057
) (#17497, #17496, #17502, #17484, #17480, #17485, #17722, #17483)
Other changes
- Add Python 3.14 to configuration options (#17647)
- Make syntax error for unparenthesized except tuples version specific to before 3.14 (#17660)
Contributors
- @AlexWaygood
- @BurntSushi
- @Jie211
- @Kalmaegi
- @LaBatata101
- @Lee-W
- @MichaReiser
- @VascoSch92
- @abhijeetbodas2001
- @brendancooley
- @carljm
- @dcreager
- @dhruvmanila
- @dylwil3
- @github-actions
- @maxmynter
- @ntBre
- @renovate
- @sharkdp
- @thejchap
Install ruff 0.11.8
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.11.8/ruff-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ruff/releases/download/0.11.8/ruff-installer.ps1 | iex"
Download ruff 0.11.8
0.11.7
Release Notes
Preview features
- [
airflow
] Apply auto fixes to cases where the names have changed in Airflow 3 (AIR301
) (#17355) - [
perflint
] Implement fix formanual-dict-comprehension
(PERF403
) (#16719) - [syntax-errors] Make duplicate parameter names a semantic error (#17131)
Bug fixes
- [
airflow
] Fix typos in provider package names (AIR302
,AIR312
) (#17574) - [
flake8-type-checking
] Visit keyword arguments in checks involvingtyping.cast
/typing.NewType
arguments (#17538) - [
pyupgrade
] Preserve parenthesis when fixing native literals containing newlines (UP018
) (#17220) - [
refurb
] Mark theFURB161
fix unsafe except for integers and booleans (#17240)
Rule changes
- [
perflint
] Allow list function calls to be replaced with a comprehension (PERF401
) (#17519) - [
pycodestyle
] Auto-fix redundant boolean comparison (E712
) (#17090) - [
pylint
] make fix unsafe if delete comments (PLR1730
) (#17459)
Documentation
Contributors
- @AlexWaygood
- @BurntSushi
- @Daverball
- @Gankra
- @Glyphack
- @Kalmaegi
- @Lee-W
- @MatthewMckee4
- @MichaReiser
- @VascoSch92
- @camper42
- @carljm
- @dcreager
- @dhruvmanila
- @ericmarkmartin
- @jnooree
- @knavdeep152002
- @maxmynter
- @mtshiba
- @ntBre
- @renovate
- @sharkdp
- @w0nder1ng
Install ruff 0.11.7
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.11.7/ruff-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ruff/releases/download/0.11.7/ruff-installer.ps1 | iex"
Download ruff 0.11.7
0.11.6
Release Notes
Preview features
- Avoid adding whitespace to the end of a docstring after an escaped quote (#17216)
- [
airflow
] ExtractAIR311
fromAIR301
rules (AIR301
,AIR311
) (#17310, #17422)
Bug fixes
- Raise syntax error when
\
is at end of file (#17409)
Contributors
- @AlexWaygood
- @BurntSushi
- @Lee-W
- @MatthewMckee4
- @MichaReiser
- @cake-monotone
- @carljm
- @charliermarsh
- @dcreager
- @dhruvmanila
- @github-actions
- @maxmynter
- @mishamsk
- @mtshiba
- @ntBre
- @renovate
- @sharkdp
Install ruff 0.11.6
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.11.6/ruff-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ruff/releases/download/0.11.6/ruff-installer.ps1 | iex"
Download ruff 0.11.6
0.11.5
Release Notes
Preview features
- [
airflow
] Add missingAIR302
attribute check (#17115) - [
airflow
] Expand module path check to individual symbols (AIR302
) (#17278) - [
airflow
] ExtractAIR312
fromAIR302
rules (AIR302
,AIR312
) (#17152) - [
airflow
] Update oudatedAIR301
,AIR302
rules (#17123) - [syntax-errors] Async comprehension in sync comprehension (#17177)
- [syntax-errors] Check annotations in annotated assignments (#17283)
- [syntax-errors] Extend annotation checks to
await
(#17282)
Bug fixes
- [
flake8-pie
] Avoid false positive for multiple assignment withauto()
(PIE796
) (#17274)
Rule changes
- [
ruff
] FixRUF100
to detect unused file-levelnoqa
directives with specific codes (#17042) (#17061) - [
flake8-pytest-style
] Avoid false positive for legacy form ofpytest.raises
(PT011
) (#17231)
Documentation
- Fix formatting of "See Style Guide" link (#17272)
Contributors
- @AlexWaygood
- @BurntSushi
- @Gankra
- @InSyncWithFoo
- @Lee-W
- @MatthewMckee4
- @MichaReiser
- @Skylion007
- @browniebroke
- @cake-monotone
- @carljm
- @dcreager
- @maxmynter
- @mishamsk
- @ntBre
- @renovate
- @sharkdp
- @twentyone212121
Install ruff 0.11.5
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.11.5/ruff-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ruff/releases/download/0.11.5/ruff-installer.ps1 | iex"
Download ruff 0.11.5
0.11.4
Release Notes
Preview features
- [
ruff
] Implementinvalid-rule-code
asRUF102
(#17138) - [syntax-errors] Detect duplicate keys in
match
mapping patterns (#17129) - [syntax-errors] Detect duplicate attributes in
match
class patterns (#17186) - [syntax-errors] Detect invalid syntax in annotations (#17101)
Bug fixes
- [syntax-errors] Fix multiple assignment error for class fields in
match
patterns (#17184) - Don't skip visiting non-tuple slice in
typing.Annotated
subscripts (#17201)
Contributors
Install ruff 0.11.4
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.11.4/ruff-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/astral-sh/ruff/releases/download/0.11.4/ruff-installer.ps1 | iex"
Download ruff 0.11.4
0.11.3
Release Notes
Preview features
- [
airflow
] Add more autofixes forAIR302
(#16876, #16977, #16976, #16965) - [
airflow
] MoveAIR301
toAIR002
(#16978) - [
airflow
] MoveAIR302
toAIR301
andAIR303
toAIR302
(#17151) - [
flake8-bandit
] Markstr
andlist[str]
literals as trusted input (S603
) (#17136) - [
ruff
] Support slices inRUF005
(#17078) - [syntax-errors] Start detecting compile-time syntax errors (#16106)
- [syntax-errors] Duplicate type parameter names (#16858)
- [syntax-errors] Irrefutable
case
pattern before final case (#16905) - [syntax-errors] Multiple assignments in
case
pattern (#16957) - [syntax-errors] Single starred assignment target (#17024)
- [syntax-errors] Starred expressions in
return
,yield
, andfor
(#17134) - [syntax-errors] Store to or delete
__debug__
(#16984)
Bug fixes
- Error instead of
panic!
when running Ruff from a deleted directory (#16903) (#17054) - [syntax-errors] Fix false positive for parenthesized tuple index (#16948)
CLI
- Check
pyproject.toml
correctly when it is passed via stdin (#16971)
Configuration
- [
flake8-import-conventions
] Add importnumpy.typing as npt
to defaultflake8-import-conventions.aliases
(#17133)
Documentation
- [
refurb
] Document whyUserDict
,UserList
, andUserString
are preferred overdict
,list
, andstr
(FURB189
) (#16927)
Contributors
- @AlexWaygood
- @BurntSushi
- @InSyncWithFoo
- @Lee-W
- @MatthewMckee4
- @MichaReiser
- @VascoSch92
- @akx
- @alex-700
- @amin-not-found
- @ashb
- @cake-monotone
- @carljm
- @dan-wilton
- @dcreager
- @dhruvmanila
- @dylwil3
- @ericmarkmartin
- @github-actions
- @john-science
- @manzt
- @maxmynter
- @mishamsk
- @mtshiba
- @ntBre
- @renovate
- @sharkdp
- @trag1c
Install ruff 0.11.3
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.11.3/ruff-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/ruff/releases/download/0.11.3/ruff-installer.ps1 | iex"
Download ruff 0.11.3
0.11.2
Release Notes
Preview features
- [syntax-errors] Fix false-positive syntax errors emitted for annotations on variadic parameters before Python 3.11 (#16878)
Contributors
Install ruff 0.11.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.11.2/ruff-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/ruff/releases/download/0.11.2/ruff-installer.ps1 | iex"
Download ruff 0.11.2
0.11.1
Release Notes
Preview features
- [
airflow
] Addchain
,chain_linear
andcross_downstream
forAIR302
(#16647) - [syntax-errors] Improve error message and range for pre-PEP-614 decorator syntax errors (#16581)
- [syntax-errors] PEP 701 f-strings before Python 3.12 (#16543)
- [syntax-errors] Parenthesized context managers before Python 3.9 (#16523)
- [syntax-errors] Star annotations before Python 3.11 (#16545)
- [syntax-errors] Star expression in index before Python 3.11 (#16544)
- [syntax-errors] Unparenthesized assignment expressions in sets and indexes (#16404)
Bug fixes
- Server: Allow
FixAll
action in presence of version-specific syntax errors (#16848) - [
flake8-bandit
] Allow raw strings insuspicious-mark-safe-usage
(S308
) #16702 (#16770) - [
refurb
] Avoid panickingunwrap
inverbose-decimal-constructor
(FURB157
) (#16777) - [
refurb
] Fix starred expressions fix (FURB161
) (#16550) - Fix
--statistics
reporting for unsafe fixes (#16756)
Rule changes
- [
flake8-executables
] Allowuv run
in shebang line forshebang-missing-python
(EXE003
) (#16849,#16855)
CLI
- Add
--exit-non-zero-on-format
(#16009)
Documentation
- Update Ruff tutorial to avoid non-existent fix in
__init__.py
(#16818) - [
flake8-gettext
] Swapformat-
andprintf-in-get-text-func-call
examples (INT002
,INT003
) (#16769)
Contributors
- @AlexWaygood
- @BurntSushi
- @InSyncWithFoo
- @MatthewMckee4
- @MichaReiser
- @VascoSch92
- @ZedThree
- @cake-monotone
- @carljm
- @charliermarsh
- @dcreager
- @dhruvmanila
- @dylwil3
- @github-actions
- @junhsonjb
- @kaxil
- @mfontanaar
- @ntBre
- @renovate
- @sharkdp
- @thejcannon
- @zanieb
Install ruff 0.11.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.11.1/ruff-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/ruff/releases/download/0.11.1/ruff-installer.ps1 | iex"