Skip to content

Releases: astral-sh/ruff

0.6.5

13 Sep 15:03
8558126
Compare
Choose a tag to compare

Release Notes

Preview features

  • [pydoclint] Ignore DOC201 when function name is "new" (#13300)
  • [refurb] Implement slice-to-remove-prefix-or-suffix (FURB188) (#13256)

Rule changes

  • [eradicate] Ignore script-comments with multiple end-tags (ERA001) (#13283)
  • [pyflakes] Improve error message for UndefinedName when a builtin was added in a newer version than specified in Ruff config (F821) (#13293)

Server

  • Add support for extensionless Python files for server (#13326)
  • Fix configuration inheritance for configurations specified in the LSP settings (#13285)

Bug fixes

  • [ruff] Handle unary operators in decimal-from-float-literal (RUF032) (#13275)

CLI

  • Only include rules with diagnostics in SARIF metadata (#13268)

Playground

  • Add "Copy as pyproject.toml/ruff.toml" and "Paste from TOML" (#13328)
  • Fix errors not shown for restored snippet on page load (#13262)

Contributors

Install ruff 0.6.5

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.6.5/ruff-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -c "irm https://github.com/astral-sh/ruff/releases/download/0.6.5/ruff-installer.ps1 | iex"

Download ruff 0.6.5

File Platform Checksum
ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ruff-x86_64-apple-darwin.tar.gz Intel macOS checksum
ruff-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
ruff-i686-pc-windows-msvc.zip x86 Windows checksum
ruff-x86_64-pc-windows-msvc.zip x64 Windows checksum
ruff-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
ruff-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
ruff-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
ruff-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
ruff-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
ruff-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
ruff-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
ruff-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
ruff-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
ruff-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
ruff-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
ruff-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum

0.6.4

05 Sep 15:55
65cc6ec
Compare
Choose a tag to compare

Release Notes

Preview features

  • [flake8-builtins] Use dynamic builtins list based on Python version (#13172)
  • [pydoclint] Permit yielding None in DOC402 and DOC403 (#13148)
  • [pylint] Update diagnostic message for PLW3201 (#13194)
  • [ruff] Implement post-init-default (RUF033) (#13192)
  • [ruff] Implement useless if-else (RUF034) (#13218)

Rule changes

  • [flake8-pyi] Respect pep8_naming.classmethod-decorators settings when determining if a method is a classmethod in custom-type-var-return-type (PYI019) (#13162)
  • [flake8-pyi] Teach various rules that annotations might be stringized (#12951)
  • [pylint] Avoid no-self-use for attrs-style validators (#13166)
  • [pylint] Recurse into subscript subexpressions when searching for list/dict lookups (PLR1733, PLR1736) (#13186)
  • [pyupgrade] Detect aiofiles.open calls in UP015 (#13173)
  • [pyupgrade] Mark sys.version_info[0] < 3 and similar comparisons as outdated (UP036) (#13175)

CLI

  • Enrich messages of SARIF results (#13180)
  • Handle singular case for incompatible rules warning in ruff format output (#13212)

Bug fixes

  • [pydocstyle] Improve heuristics for detecting Google-style docstrings (#13142)
  • [refurb] Treat sep arguments with effects as unsafe removals (FURB105) (#13165)

Contributors

Install ruff 0.6.4

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.6.4/ruff-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -c "irm https://github.com/astral-sh/ruff/releases/download/0.6.4/ruff-installer.ps1 | iex"

Download ruff 0.6.4

File Platform Checksum
ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ruff-x86_64-apple-darwin.tar.gz Intel macOS checksum
ruff-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
ruff-i686-pc-windows-msvc.zip x86 Windows checksum
ruff-x86_64-pc-windows-msvc.zip x64 Windows checksum
ruff-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
ruff-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
ruff-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
ruff-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
ruff-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
ruff-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
ruff-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
ruff-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
ruff-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
ruff-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
ruff-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
ruff-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum

0.6.3

29 Aug 15:20
ee258ca
Compare
Choose a tag to compare

Release Notes

Preview features

  • [flake8-simplify] Extend open-file-with-context-handler to work with dbm.sqlite3 (SIM115) (#13104)
  • [pycodestyle] Disable E741 in stub files (.pyi) (#13119)
  • [pydoclint] Avoid DOC201 on explicit returns in functions that only return None (#13064)

Rule changes

  • [flake8-async] Disable check for asyncio before Python 3.11 (ASYNC109) (#13023)

Bug fixes

  • [FastAPI] Avoid introducing invalid syntax in fix for fast-api-non-annotated-dependency (FAST002) (#13133)
  • [flake8-implicit-str-concat] Normalize octals before merging concatenated strings in single-line-implicit-string-concatenation (ISC001) (#13118)
  • [flake8-pytest-style] Improve help message for pytest-incorrect-mark-parentheses-style (PT023) (#13092)
  • [pylint] Avoid autofix for calls that aren't min or max as starred expression (PLW3301) (#13089)
  • [ruff] Add datetime.time, datetime.tzinfo, and datetime.timezone as immutable function calls (RUF009) (#13109)
  • [ruff] Extend comment deletion for RUF100 to include trailing text from noqa directives while preserving any following comments on the same line, if any (#13105)
  • Fix dark theme on initial page load for the Ruff playground (#13077)

Contributors

Install ruff 0.6.3

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.6.3/ruff-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -c "irm https://github.com/astral-sh/ruff/releases/download/0.6.3/ruff-installer.ps1 | iex"

Download ruff 0.6.3

File Platform Checksum
ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ruff-x86_64-apple-darwin.tar.gz Intel macOS checksum
ruff-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
ruff-i686-pc-windows-msvc.zip x86 Windows checksum
ruff-x86_64-pc-windows-msvc.zip x64 Windows checksum
ruff-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
ruff-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
ruff-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
ruff-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
ruff-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
ruff-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
ruff-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
ruff-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
ruff-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
ruff-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
ruff-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
ruff-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum

0.6.2

22 Aug 13:51
02c4373
Compare
Choose a tag to compare

Release Notes

Preview features

  • [flake8-simplify] Extend open-file-with-context-handler to work with other standard-library IO modules (SIM115) (#12959)
  • [ruff] Avoid unused-async for functions with FastAPI route decorator (RUF029) (#12938)
  • [ruff] Ignore fstring-missing-syntax (RUF027) for fastAPI paths (#12939)
  • [ruff] Implement check for Decimal called with a float literal (RUF032) (#12909)

Rule changes

  • [flake8-bugbear] Update diagnostic message when expression is at the end of function (B015) (#12944)
  • [flake8-pyi] Skip type annotations in string-or-bytes-too-long (PYI053) (#13002)
  • [flake8-type-checking] Always recognise relative imports as first-party (#12994)
  • [flake8-unused-arguments] Ignore unused arguments on stub functions (ARG001) (#12966)
  • [pylint] Ignore augmented assignment for self-cls-assignment (PLW0642) (#12957)

Server

  • Show full context in error log messages (#13029)

Bug fixes

  • [pep8-naming] Don't flag from imports following conventional import names (N817) (#12946)
  • [pylint] - Allow __new__ methods to have cls as their first argument even if decorated with @staticmethod for bad-staticmethod-argument (PLW0211) (#12958)

Documentation

  • Add hyperfine installation instructions; update hyperfine code samples (#13034)
  • Expand note to use Ruff with other language server in Kate (#12806)
  • Update example for PT001 as per the new default behavior (#13019)
  • [perflint] Improve docs for try-except-in-loop (PERF203) (#12947)
  • [pydocstyle] Add reference to lint.pydocstyle.ignore-decorators setting to rule docs (#12996)

Contributors

Install ruff 0.6.2

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.6.2/ruff-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -c "irm https://github.com/astral-sh/ruff/releases/download/0.6.2/ruff-installer.ps1 | iex"

Download ruff 0.6.2

File Platform Checksum
ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ruff-x86_64-apple-darwin.tar.gz Intel macOS checksum
ruff-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
ruff-i686-pc-windows-msvc.zip x86 Windows checksum
ruff-x86_64-pc-windows-msvc.zip x64 Windows checksum
ruff-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
ruff-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
ruff-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
ruff-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
ruff-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
ruff-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
ruff-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
ruff-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
ruff-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
ruff-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
ruff-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
ruff-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum

0.6.1

16 Aug 17:08
499c0bd
Compare
Choose a tag to compare

Release Notes

This is a hotfix release to address an issue with ruff-pre-commit. In v0.6, Ruff changed its behavior to lint and format Jupyter notebooks by default; however, due to an oversight, these files were still excluded by default if Ruff was run via pre-commit, leading to inconsistent behavior. This has now been fixed.

Preview features

  • [fastapi] Implement fast-api-unused-path-parameter (FAST003) (#12638)

Rule changes

  • [pylint] Rename too-many-positional to too-many-positional-arguments (R0917) (#12905)

Server

  • Fix crash when applying "fix-all" code-action to notebook cells (#12929)

Other changes

  • [flake8-naming]: Respect import conventions (N817) (#12922)

Contributors

Install ruff 0.6.1

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.6.1/ruff-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -c "irm https://github.com/astral-sh/ruff/releases/download/0.6.1/ruff-installer.ps1 | iex"

Download ruff 0.6.1

File Platform Checksum
ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ruff-x86_64-apple-darwin.tar.gz Intel macOS checksum
ruff-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
ruff-i686-pc-windows-msvc.zip x86 Windows checksum
ruff-x86_64-pc-windows-msvc.zip x64 Windows checksum
ruff-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
ruff-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
ruff-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
ruff-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
ruff-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
ruff-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
ruff-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
ruff-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
ruff-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
ruff-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
ruff-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
ruff-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum

0.6.0

15 Aug 12:39
b9da316
Compare
Choose a tag to compare

Release Notes

Check out the blog post for a migration guide and overview of the changes!

Breaking changes

See also, the "Remapped rules" section which may result in disabled rules.

  • Lint and format Jupyter Notebook by default (#12878).
  • Detect imports in src layouts by default for isort rules (#12848)
  • The pytest rules PT001 and PT023 now default to omitting the decorator parentheses when there are no arguments (#12838).

Deprecations

The following rules are now deprecated:

Remapped rules

The following rules have been remapped to new rule codes:

Stabilization

The following rules have been stabilized and are no longer in preview:

The following behaviors have been stabilized:

The following fixes have been stabilized:

Preview features

  • [flake8-simplify] Further simplify to binary in preview for (SIM108) (#12796)
  • [pyupgrade] Show violations without auto-fix (UP031) (#11229)

Rule changes

  • [flake8-import-conventions] Add xml.etree.ElementTree to default conventions (#12455)
  • [flake8-pytest-style] Add a space after comma in CSV output (PT006) (#12853)

Server

  • Show a message for incorrect settings (#12781)

Bug fixes

  • [flake8-async] Do not lint yield in context manager (ASYNC100) (#12896)
  • [flake8-comprehensions] Do not lint async for comprehensions (C419) (#12895)
  • [flake8-return] Only add return None at end of a function (RET503) (#11074)
  • [flake8-type-checking] Avoid treating dataclasses.KW_ONLY as typing-only (TCH003) (#12863)
  • [pep8-naming] Treat type(Protocol) et al as metaclass base (N805) (#12770)
  • [pydoclint] Don't enforce returns and yields in abstract methods (DOC201, DOC202) (#12771)
  • [ruff] Skip tuples with slice expressions in (RUF031) (#12768)
  • [ruff] Ignore unparenthesized tuples in subscripts when the subscript is a type annotation or type alias (RUF031) (#12762)
  • [ruff] Ignore template strings passed to logging and builtins._() calls (RUF027) (#12889)
  • [ruff] Do not remove parens for tuples with starred expressions in Python <=3.10 (RUF031) (#12784)
  • Evaluate default parameter values for a function in that function's enclosing scope (#12852)

Other changes

  • Respect VS Code cell metadata when detecting the language of Jupyter Notebook cells (#12864)
  • Respect kernelspec notebook metadata when detecting the preferred language for a Jupyter Notebook (#12875)

Install ruff 0.6.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.6.0/ruff-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -c "irm https://github.com/astral-sh/ruff/releases/download/0.6.0/ruff-installer.ps1 | iex"

Download ruff 0.6.0

File Platform Checksum
ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ruff-x86_64-apple-darwin.tar.gz Intel macOS checksum
ruff-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
ruff-i686-pc-windows-msvc.zip x86 Windows checksum
ruff-x86_64-pc-windows-msvc.zip x64 Windows checksum
ruff-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
ruff-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
ruff-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
ruff-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
ruff-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
ruff-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
ruff-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux [checksum](https://github.com/astral-sh/ruff/releases/download/0.6.0/ruff-armv7-unkno...
Read more

0.5.7

08 Aug 15:46
221ea66
Compare
Choose a tag to compare

Release Notes

Preview features

  • [flake8-comprehensions] Account for list and set comprehensions in unnecessary-literal-within-tuple-call (C409) (#12657)
  • [flake8-pyi] Add autofix for future-annotations-in-stub (PYI044) (#12676)
  • [flake8-return] Avoid syntax error when auto-fixing RET505 with mixed indentation (space and tabs) (#12740)
  • [pydoclint] Add docstring-missing-yields (DOC402) and docstring-extraneous-yields (DOC403) (#12538)
  • [pydoclint] Avoid DOC201 if docstring begins with "Return", "Returns", "Yield", or "Yields" (#12675)
  • [pydoclint] Deduplicate collected exceptions after traversing function bodies (DOC501) (#12642)
  • [pydoclint] Ignore DOC errors for stub functions (#12651)
  • [pydoclint] Teach rules to understand reraised exceptions as being explicitly raised (DOC501, DOC502) (#12639)
  • [ruff] Implement incorrectly-parenthesized-tuple-in-subscript (RUF031) (#12480)
  • [ruff] Mark RUF023 fix as unsafe if __slots__ is not a set and the binding is used elsewhere (#12692)

Rule changes

  • [refurb] Add autofix for implicit-cwd (FURB177) (#12708)
  • [ruff] Add autofix for zip-instead-of-pairwise (RUF007) (#12663)
  • [tryceratops] Add BaseException to raise-vanilla-class rule (TRY002) (#12620)

Server

  • Ignore non-file workspace URL; Ruff will display a warning notification in this case (#12725)

CLI

  • Fix cache invalidation for nested pyproject.toml files (#12727)

Bug fixes

  • [flake8-async] Fix false positives with multiple async with items (ASYNC100) (#12643)
  • [flake8-bandit] Avoid false-positives for list concatenations in SQL construction (S608) (#12720)
  • [flake8-bugbear] Treat return as equivalent to break (B909) (#12646)
  • [flake8-comprehensions] Set comprehensions not a violation for sum in unnecessary-comprehension-in-call (C419) (#12691)
  • [flake8-simplify] Parenthesize conditions based on precedence when merging if arms (SIM114) (#12737)
  • [pydoclint] Try both 'Raises' section styles when convention is unspecified (DOC501) (#12649)

Contributors

Install ruff 0.5.7

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.5.7/ruff-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -c "irm https://github.com/astral-sh/ruff/releases/download/0.5.7/ruff-installer.ps1 | iex"

Download ruff 0.5.7

File Platform Checksum
ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ruff-x86_64-apple-darwin.tar.gz Intel macOS checksum
ruff-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
ruff-i686-pc-windows-msvc.zip x86 Windows checksum
ruff-x86_64-pc-windows-msvc.zip x64 Windows checksum
ruff-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
ruff-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
ruff-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
ruff-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
ruff-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
ruff-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
ruff-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
ruff-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
ruff-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
ruff-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
ruff-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
ruff-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum

0.5.6

02 Aug 15:56
da824ba
Compare
Choose a tag to compare

Release Notes

Ruff 0.5.6 automatically enables linting and formatting of notebooks in preview mode.
You can opt-out of this behavior by adding *.ipynb to the extend-exclude setting.

[tool.ruff]
extend-exclude = ["*.ipynb"]

Preview features

  • Enable notebooks by default in preview mode (#12621)
  • [flake8-builtins] Implement import, lambda, and module shadowing (#12546)
  • [pydoclint] Add docstring-missing-returns (DOC201) and docstring-extraneous-returns (DOC202) (#12485)

Rule changes

  • [flake8-return] Exempt cached properties and other property-like decorators from explicit return rule (RET501) (#12563)

Server

  • Make server panic hook more error resilient (#12610)
  • Use $/logTrace for server trace logs in Zed and VS Code (#12564)
  • Keep track of deleted cells for reorder change request (#12575)

Configuration

  • [flake8-implicit-str-concat] Always allow explicit multi-line concatenations when implicit concatenations are banned (#12532)

Bug fixes

  • [flake8-async] Avoid flagging asyncio.timeouts as unused when the context manager includes asyncio.TaskGroup (#12605)
  • [flake8-slots] Avoid recommending __slots__ for classes that inherit from more than namedtuple (#12531)
  • [isort] Avoid marking required imports as unused (#12537)
  • [isort] Preserve trailing inline comments on import-from statements (#12498)
  • [pycodestyle] Add newlines before comments (E305) (#12606)
  • [pycodestyle] Don't attach comments with mismatched indents (#12604)
  • [pyflakes] Fix preview-mode bugs in F401 when attempting to autofix unused first-party submodule imports in an __init__.py file (#12569)
  • [pylint] Respect start index in unnecessary-list-index-lookup (#12603)
  • [pyupgrade] Avoid recommending no-argument super in slots=True dataclasses (#12530)
  • [pyupgrade] Use colon rather than dot formatting for integer-only types (#12534)
  • Fix NFKC normalization bug when removing unused imports (#12571)

Other changes

  • Consider more stdlib decorators to be property-like (#12583)
  • Improve handling of metaclasses in various linter rules (#12579)
  • Improve consistency between linter rules in determining whether a function is property (#12581)

Install ruff 0.5.6

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.5.6/ruff-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -c "irm https://github.com/astral-sh/ruff/releases/download/0.5.6/ruff-installer.ps1 | iex"

Download ruff 0.5.6

File Platform Checksum
ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ruff-x86_64-apple-darwin.tar.gz Intel macOS checksum
ruff-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
ruff-i686-pc-windows-msvc.zip x86 Windows checksum
ruff-x86_64-pc-windows-msvc.zip x64 Windows checksum
ruff-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
ruff-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
ruff-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
ruff-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
ruff-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
ruff-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
ruff-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
ruff-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
ruff-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
ruff-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
ruff-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
ruff-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum

0.5.5

25 Jul 15:07
fc16d8d
Compare
Choose a tag to compare

Release Notes

Preview features

  • [fastapi] Implement fastapi-redundant-response-model (FAST001) and fastapi-non-annotated-dependency(FAST002) (#11579)
  • [pydoclint] Implement docstring-missing-exception (DOC501) and docstring-extraneous-exception (DOC502) (#11471)

Rule changes

  • [numpy] Fix NumPy 2.0 rule for np.alltrue and np.sometrue (#12473)
  • [numpy] Ignore NPY201 inside except blocks for compatibility with older numpy versions (#12490)
  • [pep8-naming] Avoid applying ignore-names to self and cls function names (N804, N805) (#12497)

Formatter

  • Fix incorrect placement of leading function comment with type params (#12447)

Server

  • Do not bail code action resolution when a quick fix is requested (#12462)

Bug fixes

  • Fix Ord implementation of cmp_fix (#12471)
  • Raise syntax error for unparenthesized generator expression in multi-argument call (#12445)
  • [pydoclint] Fix panic in DOC501 reported in #12428 (#12435)
  • [flake8-bugbear] Allow singleton tuples with starred expressions in B013 (#12484)

Documentation

  • Add Eglot setup guide for Emacs editor (#12426)
  • Add note about the breaking change in nvim-lspconfig (#12507)
  • Add note to include notebook files for native server (#12449)
  • Add setup docs for Zed editor (#12501)

Contributors

Install ruff 0.5.5

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.5.5/ruff-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -c "irm https://github.com/astral-sh/ruff/releases/download/0.5.5/ruff-installer.ps1 | iex"

Download ruff 0.5.5

File Platform Checksum
ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ruff-x86_64-apple-darwin.tar.gz Intel macOS checksum
ruff-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
ruff-i686-pc-windows-msvc.zip x86 Windows checksum
ruff-x86_64-pc-windows-msvc.zip x64 Windows checksum
ruff-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
ruff-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
ruff-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
ruff-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
ruff-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
ruff-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
ruff-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
ruff-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
ruff-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
ruff-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
ruff-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
ruff-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum

0.5.4

20 Jul 18:06
53b84ab
Compare
Choose a tag to compare

Release Notes

Rule changes

  • [ruff] Rename RUF007 to zip-instead-of-pairwise (#12399)

Bug fixes

  • [flake8-builtins] Avoid shadowing diagnostics for @override methods (#12415)
  • [flake8-comprehensions] Insert parentheses for multi-argument generators (#12422)
  • [pydocstyle] Handle escaped docstrings within docstring (D301) (#12192)

Documentation

  • Fix GitHub link to Neovim setup (#12410)
  • Fix output-format default in settings reference (#12409)

Install ruff 0.5.4

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.5.4/ruff-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -c "irm https://github.com/astral-sh/ruff/releases/download/0.5.4/ruff-installer.ps1 | iex"

Download ruff 0.5.4

File Platform Checksum
ruff-aarch64-apple-darwin.tar.gz Apple Silicon macOS checksum
ruff-x86_64-apple-darwin.tar.gz Intel macOS checksum
ruff-aarch64-pc-windows-msvc.zip ARM64 Windows checksum
ruff-i686-pc-windows-msvc.zip x86 Windows checksum
ruff-x86_64-pc-windows-msvc.zip x64 Windows checksum
ruff-aarch64-unknown-linux-gnu.tar.gz ARM64 Linux checksum
ruff-i686-unknown-linux-gnu.tar.gz x86 Linux checksum
ruff-powerpc64-unknown-linux-gnu.tar.gz PPC64 Linux checksum
ruff-powerpc64le-unknown-linux-gnu.tar.gz PPC64LE Linux checksum
ruff-s390x-unknown-linux-gnu.tar.gz S390x Linux checksum
ruff-x86_64-unknown-linux-gnu.tar.gz x64 Linux checksum
ruff-armv7-unknown-linux-gnueabihf.tar.gz ARMv7 Linux checksum
ruff-aarch64-unknown-linux-musl.tar.gz ARM64 MUSL Linux checksum
ruff-i686-unknown-linux-musl.tar.gz x86 MUSL Linux checksum
ruff-x86_64-unknown-linux-musl.tar.gz x64 MUSL Linux checksum
ruff-arm-unknown-linux-musleabihf.tar.gz ARMv6 MUSL Linux (Hardfloat) checksum
ruff-armv7-unknown-linux-musleabihf.tar.gz ARMv7 MUSL Linux checksum