26 KiB
Changelog 0.5.x
0.5.0
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.
- Follow the XDG specification to discover user-level configurations on macOS (same as on other Unix platforms)
- Selecting
ALLnow excludes deprecated rules - The released archives now include an extra level of nesting, which can be removed with
--strip-components=1when untarring. - The release artifact's file name no longer includes the version tag. This enables users to install via
/latestURLs on GitHub. - The diagnostic ranges for some
flake8-banditrules were modified (#10667).
Deprecations
The following rules are now deprecated:
syntax-error(E999): Syntax errors are now always shown
Remapped rules
The following rules have been remapped to new rule codes:
blocking-http-call-in-async-function:ASYNC100toASYNC210open-sleep-or-subprocess-in-async-function:ASYNC101split intoASYNC220,ASYNC221,ASYNC230, andASYNC251blocking-os-call-in-async-function:ASYNC102has been merged intoASYNC220andASYNC221trio-timeout-without-await:TRIO100toASYNC100trio-sync-call:TRIO105toASYNC105trio-async-function-with-timeout:TRIO109toASYNC109trio-unneeded-sleep:TRIO110toASYNC110trio-zero-sleep-call:TRIO115toASYNC115repeated-isinstance-calls:PLR1701toSIM101
Stabilization
The following rules have been stabilized and are no longer in preview:
mutable-fromkeys-value(RUF024)default-factory-kwarg(RUF026)django-extra(S610)manual-dict-comprehension(PERF403)print-empty-string(FURB105)readlines-in-for(FURB129)if-expr-min-max(FURB136)bit-count(FURB161)redundant-log-base(FURB163)regex-flag-alias(FURB167)isinstance-type-none(FURB168)type-none-comparison(FURB169)implicit-cwd(FURB177)hashlib-digest-hex(FURB181)list-reverse-copy(FURB187)bad-open-mode(PLW1501)empty-comment(PLR2044)global-at-module-level(PLW0604)misplaced-bare-raise(PLE0744)non-ascii-import-name(PLC2403)non-ascii-name(PLC2401)nonlocal-and-global(PLE0115)potential-index-error(PLE0643)redeclared-assigned-name(PLW0128)redefined-argument-from-local(PLR1704)repeated-keyword-argument(PLE1132)super-without-brackets(PLW0245)unnecessary-list-index-lookup(PLR1736)useless-exception-statement(PLW0133)useless-with-lock(PLW2101)
The following behaviors have been stabilized:
is-literal(F632) now warns for identity checks against list, set or dictionary literalsneedless-bool(SIM103) now detectsifexpressions with implicitelsebranchesmodule-import-not-at-top-of-file(E402) now allowsos.environmodifications between import statementstype-comparison(E721) now allows idioms such astype(x) is intyoda-condition(SIM300) now flags a wider range of expressions
Removals
The following deprecated settings have been removed:
output-format=text; useoutput-format=conciseoroutput-format=fulltab-size; useindent-width
The following deprecated CLI options have been removed:
--show-source; use--output-format=full--no-show-source; use--output-format=concise
The following deprecated CLI commands have been removed:
ruff <path>; useruff check <path>ruff --clean; useruff cleanruff --generate-shell-completion; useruff generate-shell-completion
Preview features
-
`ruff`
CLI
- Use rule name rather than message in
--statistics(#11697) - Use the output format
fullby default (#12010) - Don't log syntax errors to the console (#11902)
Rule changes
-
`ruff` -
`numpy` -
`flake8-bandit`
Server
- Closing an untitled, unsaved notebook document no longer throws an error (#11942)
- Support the usage of tildes and environment variables in
logFile(#11945) - Add option to configure whether to show syntax errors (#12059)
Bug fixes
-
`pycodestyle` -
`pep8-naming` -
`pyflakes`
Parser
- Emit a syntax error for an empty type parameter list (#12030)
- Avoid consuming the newline for unterminated strings (#12067)
- Do not include the newline in the unterminated string range (#12017)
- Use the correct range to highlight line continuation errors (#12016)
- Consider 2-character EOL before line continuations (#12035)
- Consider line continuation character for re-lexing (#12008)
Other changes
- Upgrade the Unicode table used for measuring the line-length (#11194)
- Remove the deprecation error message for the nursery selector (#10172)
0.5.1
Preview features
-
`flake8-bugbear` -
`pycodestyle` -
`pytest`
Rule changes
- Enable token-based rules on source with syntax errors (#11950)
-
`flake8-bandit` -
`numpy` -
`pylint`
Server
- Avoid syntax error notification for source code actions (#12148)
- Consider the content of the new cells during notebook sync (#12203)
- Fix replacement edit range computation (#12171)
Bug fixes
- Disable auto-fix when source has syntax errors (#12134)
- Fix cache key collisions for paths with separators (#12159)
- Make
requires-pythoninference robust to==(#12091) - Use char-wise width instead of
str-width (#12135) -
`pycodestyle` -
`pycodestyle` -
`pylint`
Performance
0.5.2
Preview features
- Use
spaceseparator before parenthesized expressions in comprehensions with leading comments (#12282) -
`flake8-async` -
`flake8-async` -
`flake8-async` -
`flake8-async` -
`flake8-async`
Rule changes
-
`flake8-return` -
`numpy` -
`refurb`
Server
- Consider
includeandextend-includesettings in native server (#12252) - Include nested configurations in settings reloading (#12253)
CLI
- Omit code frames for fixes with empty ranges (#12304)
- Warn about formatter incompatibility for
D203(#12238)
Bug fixes
- Make cache-write failures non-fatal on Windows (#12302)
- Treat
notoperations as boolean tests (#12301) -
`flake8-bandit` -
`flake8-bandit` -
`flake8-bandit` -
`pycodestyle` -
`pyflakes` -
`refurb`
Documentation
- Update help and documentation to reflect
--output-format fulldefault (#12248)
Performance
- Use more threads when discovering Python files (#12258)
0.5.3
Ruff 0.5.3 marks the stable release of the Ruff language server and introduces revamped documentation, including setup guides for your editor of choice and the language server itself.
Preview features
- Formatter: Insert empty line between suite and alternative branch after function/class definition (#12294)
-
`pyupgrade`
Rule changes
-
`flake8-bugbear` -
`flake8-bugbear` -
`pylint` -
`pylint` -
`pylint`
Server
- Build settings index in parallel for the native server (#12299)
- Use fallback settings when indexing the project (#12362)
- Consider
--previewflag forserversubcommand for the linter and formatter (#12208)
Bug fixes
-
`flake8-comprehensions` -
`pylint` -
`pylint`
Documentation
- Add docs for Ruff language server (#12344)
- Migrate to standalone docs repo (#12341)
- Update versioning policy for editor integration (#12375)
Other changes
- Publish Wasm API to npm (#12317)
0.5.4
Rule changes
-
`ruff`
Bug fixes
-
`flake8-builtins` -
`flake8-comprehensions` -
`pydocstyle`
Documentation
0.5.5
Preview features
-
`fastapi` -
`pydoclint`
Rule changes
-
`numpy` -
`numpy` -
`pep8-naming`
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
Ordimplementation ofcmp_fix(#12471) - Raise syntax error for unparenthesized generator expression in multi-argument call (#12445)
-
`pydoclint` -
`flake8-bugbear`
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)
0.5.6
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` -
`pydoclint`
Rule changes
-
`flake8-return`
Server
- Make server panic hook more error resilient (#12610)
- Use
$/logTracefor server trace logs in Zed and VS Code (#12564) - Keep track of deleted cells for reorder change request (#12575)
Configuration
-
`flake8-implicit-str-concat`
Bug fixes
-
`flake8-async` -
`flake8-slots` -
`isort` -
`isort` -
`pycodestyle` -
`pycodestyle` -
`pyflakes` -
`pylint` -
`pyupgrade` -
`pyupgrade` - 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)
0.5.7
Preview features
-
`flake8-comprehensions` -
`flake8-pyi` -
`flake8-return` -
`pydoclint` -
`pydoclint` -
`pydoclint` -
`pydoclint` -
`pydoclint` -
`ruff` -
`ruff`
Rule changes
-
`refurb` -
`ruff` -
`tryceratops`
Server
- Ignore non-file workspace URL; Ruff will display a warning notification in this case (#12725)
CLI
- Fix cache invalidation for nested
pyproject.tomlfiles (#12727)
Bug fixes
-
`flake8-async` -
`flake8-bandit` -
`flake8-bugbear` -
`flake8-comprehensions` -
`flake8-simplify` -
`pydoclint`