Skip to content

Commit

Permalink
chore(deps): update dependency ruff to ~=0.6.3 (#23)
Browse files Browse the repository at this point in the history
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ruff](https://docs.astral.sh/ruff)
([source](https://github.com/astral-sh/ruff),
[changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md))
| `~=0.1.10` -> `~=0.6.3` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/ruff/0.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/ruff/0.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/ruff/0.1.15/0.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/ruff/0.1.15/0.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>astral-sh/ruff (ruff)</summary>

###
[`v0.6.3`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#063)

[Compare
Source](https://github.com/astral-sh/ruff/compare/0.6.2...0.6.3)

##### Preview features

- \[`flake8-simplify`] Extend `open-file-with-context-handler` to work
with `dbm.sqlite3` (`SIM115`)
([#&#8203;13104](https://github.com/astral-sh/ruff/pull/13104))
- \[`pycodestyle`] Disable `E741` in stub files (`.pyi`)
([#&#8203;13119](https://github.com/astral-sh/ruff/pull/13119))
- \[`pydoclint`] Avoid `DOC201` on explicit returns in functions that
only return `None`
([#&#8203;13064](https://github.com/astral-sh/ruff/pull/13064))

##### Rule changes

- \[`flake8-async`] Disable check for `asyncio` before Python 3.11
(`ASYNC109`)
([#&#8203;13023](https://github.com/astral-sh/ruff/pull/13023))

##### Bug fixes

- \[`FastAPI`] Avoid introducing invalid syntax in fix for
`fast-api-non-annotated-dependency` (`FAST002`)
([#&#8203;13133](https://github.com/astral-sh/ruff/pull/13133))
- \[`flake8-implicit-str-concat`] Normalize octals before merging
concatenated strings in `single-line-implicit-string-concatenation`
(`ISC001`)
([#&#8203;13118](https://github.com/astral-sh/ruff/pull/13118))
- \[`flake8-pytest-style`] Improve help message for
`pytest-incorrect-mark-parentheses-style` (`PT023`)
([#&#8203;13092](https://github.com/astral-sh/ruff/pull/13092))
- \[`pylint`] Avoid autofix for calls that aren't `min` or `max` as
starred expression (`PLW3301`)
([#&#8203;13089](https://github.com/astral-sh/ruff/pull/13089))
- \[`ruff`] Add `datetime.time`, `datetime.tzinfo`, and
`datetime.timezone` as immutable function calls (`RUF009`)
([#&#8203;13109](https://github.com/astral-sh/ruff/pull/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
([#&#8203;13105](https://github.com/astral-sh/ruff/pull/13105))
- Fix dark theme on initial page load for the Ruff playground
([#&#8203;13077](https://github.com/astral-sh/ruff/pull/13077))

###
[`v0.6.2`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#062)

[Compare
Source](https://github.com/astral-sh/ruff/compare/0.6.1...0.6.2)

##### Preview features

- \[`flake8-simplify`] Extend `open-file-with-context-handler` to work
with other standard-library IO modules (`SIM115`)
([#&#8203;12959](https://github.com/astral-sh/ruff/pull/12959))
- \[`ruff`] Avoid `unused-async` for functions with FastAPI route
decorator (`RUF029`)
([#&#8203;12938](https://github.com/astral-sh/ruff/pull/12938))
- \[`ruff`] Ignore `fstring-missing-syntax` (`RUF027`) for `fastAPI`
paths ([#&#8203;12939](https://github.com/astral-sh/ruff/pull/12939))
- \[`ruff`] Implement check for Decimal called with a float literal
(RUF032)
([#&#8203;12909](https://github.com/astral-sh/ruff/pull/12909))

##### Rule changes

- \[`flake8-bugbear`] Update diagnostic message when expression is at
the end of function (`B015`)
([#&#8203;12944](https://github.com/astral-sh/ruff/pull/12944))
- \[`flake8-pyi`] Skip type annotations in `string-or-bytes-too-long`
(`PYI053`)
([#&#8203;13002](https://github.com/astral-sh/ruff/pull/13002))
- \[`flake8-type-checking`] Always recognise relative imports as
first-party
([#&#8203;12994](https://github.com/astral-sh/ruff/pull/12994))
- \[`flake8-unused-arguments`] Ignore unused arguments on stub functions
(`ARG001`)
([#&#8203;12966](https://github.com/astral-sh/ruff/pull/12966))
- \[`pylint`] Ignore augmented assignment for `self-cls-assignment`
(`PLW0642`)
([#&#8203;12957](https://github.com/astral-sh/ruff/pull/12957))

##### Server

- Show full context in error log messages
([#&#8203;13029](https://github.com/astral-sh/ruff/pull/13029))

##### Bug fixes

- \[`pep8-naming`] Don't flag `from` imports following conventional
import names (`N817`)
([#&#8203;12946](https://github.com/astral-sh/ruff/pull/12946))
- \[`pylint`] - Allow `__new__` methods to have `cls` as their first
argument even if decorated with `@staticmethod` for
`bad-staticmethod-argument` (`PLW0211`)
([#&#8203;12958](https://github.com/astral-sh/ruff/pull/12958))

##### Documentation

- Add `hyperfine` installation instructions; update `hyperfine` code
samples
([#&#8203;13034](https://github.com/astral-sh/ruff/pull/13034))
- Expand note to use Ruff with other language server in Kate
([#&#8203;12806](https://github.com/astral-sh/ruff/pull/12806))
- Update example for `PT001` as per the new default behavior
([#&#8203;13019](https://github.com/astral-sh/ruff/pull/13019))
- \[`perflint`] Improve docs for `try-except-in-loop` (`PERF203`)
([#&#8203;12947](https://github.com/astral-sh/ruff/pull/12947))
- \[`pydocstyle`] Add reference to `lint.pydocstyle.ignore-decorators`
setting to rule docs
([#&#8203;12996](https://github.com/astral-sh/ruff/pull/12996))

###
[`v0.6.1`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#061)

[Compare
Source](https://github.com/astral-sh/ruff/compare/0.6.0...0.6.1)

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](https://github.com/astral-sh/ruff-pre-commit/pull/96).

##### Preview features

- \[`fastapi`] Implement `fast-api-unused-path-parameter` (`FAST003`)
([#&#8203;12638](https://github.com/astral-sh/ruff/pull/12638))

##### Rule changes

- \[`pylint`] Rename `too-many-positional` to
`too-many-positional-arguments` (`R0917`)
([#&#8203;12905](https://github.com/astral-sh/ruff/pull/12905))

##### Server

- Fix crash when applying "fix-all" code-action to notebook cells
([#&#8203;12929](https://github.com/astral-sh/ruff/pull/12929))

##### Other changes

- \[`flake8-naming`]: Respect import conventions (`N817`)
([#&#8203;12922](https://github.com/astral-sh/ruff/pull/12922))

###
[`v0.6.0`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#060)

[Compare
Source](https://github.com/astral-sh/ruff/compare/0.5.7...0.6.0)

Check out the [blog post](https://astral.sh/blog/ruff-v0.6.0) 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
([#&#8203;12878](https://github.com/astral-sh/ruff/pull/12878)).
- Detect imports in `src` layouts by default for `isort` rules
([#&#8203;12848](https://github.com/astral-sh/ruff/pull/12848))
- The pytest rules `PT001` and `PT023` now default to omitting the
decorator parentheses when there are no arguments
([#&#8203;12838](https://github.com/astral-sh/ruff/pull/12838)).

##### Deprecations

The following rules are now deprecated:

-
[`pytest-missing-fixture-name-underscore`](https://docs.astral.sh/ruff/rules/pytest-missing-fixture-name-underscore/)
(`PT004`)
-
[`pytest-incorrect-fixture-name-underscore`](https://docs.astral.sh/ruff/rules/pytest-incorrect-fixture-name-underscore/)
(`PT005`)
-
[`unpacked-list-comprehension`](https://docs.astral.sh/ruff/rules/unpacked-list-comprehension/)
(`UP027`)

##### Remapped rules

The following rules have been remapped to new rule codes:

-
[`unnecessary-dict-comprehension-for-iterable`](https://docs.astral.sh/ruff/rules/unnecessary-dict-comprehension-for-iterable/):
`RUF025` to `C420`

##### Stabilization

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

-
[`singledispatch-method`](https://docs.astral.sh/ruff/rules/singledispatch-method/)
(`PLE1519`)
-
[`singledispatchmethod-function`](https://docs.astral.sh/ruff/rules/singledispatchmethod-function/)
(`PLE1520`)
-
[`bad-staticmethod-argument`](https://docs.astral.sh/ruff/rules/bad-staticmethod-argument/)
(`PLW0211`)
-
[`if-stmt-min-max`](https://docs.astral.sh/ruff/rules/if-stmt-min-max/)
(`PLR1730`)
-
[`invalid-bytes-return-type`](https://docs.astral.sh/ruff/rules/invalid-bytes-return-type/)
(`PLE0308`)
-
[`invalid-hash-return-type`](https://docs.astral.sh/ruff/rules/invalid-hash-return-type/)
(`PLE0309`)
-
[`invalid-index-return-type`](https://docs.astral.sh/ruff/rules/invalid-index-return-type/)
(`PLE0305`)
-
[`invalid-length-return-type`](https://docs.astral.sh/ruff/rules/invalid-length-return-type/)
(`E303`)
-
[`self-or-cls-assignment`](https://docs.astral.sh/ruff/rules/self-or-cls-assignment/)
(`PLW0642`)
-
[`byte-string-usage`](https://docs.astral.sh/ruff/rules/byte-string-usage/)
(`PYI057`)
-
[`duplicate-literal-member`](https://docs.astral.sh/ruff/rules/duplicate-literal-member/)
(`PYI062`)
-
[`redirected-noqa`](https://docs.astral.sh/ruff/rules/redirected-noqa/)
(`RUF101`)

The following behaviors have been stabilized:

-
[`cancel-scope-no-checkpoint`](https://docs.astral.sh/ruff/rules/cancel-scope-no-checkpoint/)
(`ASYNC100`): Support `asyncio` and `anyio` context mangers.
-
[`async-function-with-timeout`](https://docs.astral.sh/ruff/rules/async-function-with-timeout/)
(`ASYNC109`): Support `asyncio` and `anyio` context mangers.
-
[`async-busy-wait`](https://docs.astral.sh/ruff/rules/async-busy-wait/)
(`ASYNC110`): Support `asyncio` and `anyio` context mangers.
-
[`async-zero-sleep`](https://docs.astral.sh/ruff/rules/async-zero-sleep/)
(`ASYNC115`): Support `anyio` context mangers.
-
[`long-sleep-not-forever`](https://docs.astral.sh/ruff/rules/long-sleep-not-forever/)
(`ASYNC116`): Support `anyio` context mangers.

The following fixes have been stabilized:

-
[`superfluous-else-return`](https://docs.astral.sh/ruff/rules/superfluous-else-return/)
(`RET505`)
-
[`superfluous-else-raise`](https://docs.astral.sh/ruff/rules/superfluous-else-raise/)
(`RET506`)
-
[`superfluous-else-continue`](https://docs.astral.sh/ruff/rules/superfluous-else-continue/)
(`RET507`)
-
[`superfluous-else-break`](https://docs.astral.sh/ruff/rules/superfluous-else-break/)
(`RET508`)

##### Preview features

- \[`flake8-simplify`] Further simplify to binary in preview for
(`SIM108`)
([#&#8203;12796](https://github.com/astral-sh/ruff/pull/12796))
- \[`pyupgrade`] Show violations without auto-fix (`UP031`)
([#&#8203;11229](https://github.com/astral-sh/ruff/pull/11229))

##### Rule changes

- \[`flake8-import-conventions`] Add `xml.etree.ElementTree` to default
conventions
([#&#8203;12455](https://github.com/astral-sh/ruff/pull/12455))
- \[`flake8-pytest-style`] Add a space after comma in CSV output
(`PT006`)
([#&#8203;12853](https://github.com/astral-sh/ruff/pull/12853))

##### Server

- Show a message for incorrect settings
([#&#8203;12781](https://github.com/astral-sh/ruff/pull/12781))

##### Bug fixes

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

##### Other changes

- Respect VS Code cell metadata when detecting the language of Jupyter
Notebook cells
([#&#8203;12864](https://github.com/astral-sh/ruff/pull/12864))
- Respect `kernelspec` notebook metadata when detecting the preferred
language for a Jupyter Notebook
([#&#8203;12875](https://github.com/astral-sh/ruff/pull/12875))

###
[`v0.5.7`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#057)

[Compare
Source](https://github.com/astral-sh/ruff/compare/0.5.6...0.5.7)

##### Preview features

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

##### Rule changes

- \[`refurb`] Add autofix for `implicit-cwd` (`FURB177`)
([#&#8203;12708](https://github.com/astral-sh/ruff/pull/12708))
- \[`ruff`] Add autofix for `zip-instead-of-pairwise` (`RUF007`)
([#&#8203;12663](https://github.com/astral-sh/ruff/pull/12663))
- \[`tryceratops`] Add `BaseException` to `raise-vanilla-class` rule
(`TRY002`)
([#&#8203;12620](https://github.com/astral-sh/ruff/pull/12620))

##### Server

- Ignore non-file workspace URL; Ruff will display a warning
notification in this case
([#&#8203;12725](https://github.com/astral-sh/ruff/pull/12725))

##### CLI

- Fix cache invalidation for nested `pyproject.toml` files
([#&#8203;12727](https://github.com/astral-sh/ruff/pull/12727))

##### Bug fixes

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

###
[`v0.5.6`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#056)

[Compare
Source](https://github.com/astral-sh/ruff/compare/0.5.5...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.

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

##### Preview features

- Enable notebooks by default in preview mode
([#&#8203;12621](https://github.com/astral-sh/ruff/pull/12621))
- \[`flake8-builtins`] Implement import, lambda, and module shadowing
([#&#8203;12546](https://github.com/astral-sh/ruff/pull/12546))
- \[`pydoclint`] Add `docstring-missing-returns` (`DOC201`) and
`docstring-extraneous-returns` (`DOC202`)
([#&#8203;12485](https://github.com/astral-sh/ruff/pull/12485))

##### Rule changes

- \[`flake8-return`] Exempt cached properties and other property-like
decorators from explicit return rule (`RET501`)
([#&#8203;12563](https://github.com/astral-sh/ruff/pull/12563))

##### Server

- Make server panic hook more error resilient
([#&#8203;12610](https://github.com/astral-sh/ruff/pull/12610))
- Use `$/logTrace` for server trace logs in Zed and VS Code
([#&#8203;12564](https://github.com/astral-sh/ruff/pull/12564))
- Keep track of deleted cells for reorder change request
([#&#8203;12575](https://github.com/astral-sh/ruff/pull/12575))

##### Configuration

- \[`flake8-implicit-str-concat`] Always allow explicit multi-line
concatenations when implicit concatenations are banned
([#&#8203;12532](https://github.com/astral-sh/ruff/pull/12532))

##### Bug fixes

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

##### Other changes

- Consider more stdlib decorators to be property-like
([#&#8203;12583](https://github.com/astral-sh/ruff/pull/12583))
- Improve handling of metaclasses in various linter rules
([#&#8203;12579](https://github.com/astral-sh/ruff/pull/12579))
- Improve consistency between linter rules in determining whether a
function is property
([#&#8203;12581](https://github.com/astral-sh/ruff/pull/12581))

###
[`v0.5.5`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#055)

[Compare
Source](https://github.com/astral-sh/ruff/compare/0.5.4...0.5.5)

##### Preview features

- \[`fastapi`] Implement `fastapi-redundant-response-model` (`FAST001`)
and `fastapi-non-annotated-dependency`(`FAST002`)
([#&#8203;11579](https://github.com/astral-sh/ruff/pull/11579))
- \[`pydoclint`] Implement `docstring-missing-exception` (`DOC501`) and
`docstring-extraneous-exception` (`DOC502`)
([#&#8203;11471](https://github.com/astral-sh/ruff/pull/11471))

##### Rule changes

- \[`numpy`] Fix NumPy 2.0 rule for `np.alltrue` and `np.sometrue`
([#&#8203;12473](https://github.com/astral-sh/ruff/pull/12473))
- \[`numpy`] Ignore `NPY201` inside `except` blocks for compatibility
with older numpy versions
([#&#8203;12490](https://github.com/astral-sh/ruff/pull/12490))
- \[`pep8-naming`] Avoid applying `ignore-names` to `self` and `cls`
function names (`N804`, `N805`)
([#&#8203;12497](https://github.com/astral-sh/ruff/pull/12497))

##### Formatter

- Fix incorrect placement of leading function comment with type params
([#&#8203;12447](https://github.com/astral-sh/ruff/pull/12447))

##### Server

- Do not bail code action resolution when a quick fix is requested
([#&#8203;12462](https://github.com/astral-sh/ruff/pull/12462))

##### Bug fixes

- Fix `Ord` implementation of `cmp_fix`
([#&#8203;12471](https://github.com/astral-sh/ruff/pull/12471))
- Raise syntax error for unparenthesized generator expression in
multi-argument call
([#&#8203;12445](https://github.com/astral-sh/ruff/pull/12445))
- \[`pydoclint`] Fix panic in `DOC501` reported in
[#&#8203;12428](https://github.com/astral-sh/ruff/pull/12428)
([#&#8203;12435](https://github.com/astral-sh/ruff/pull/12435))
- \[`flake8-bugbear`] Allow singleton tuples with starred expressions in
`B013` ([#&#8203;12484](https://github.com/astral-sh/ruff/pull/12484))

##### Documentation

- Add Eglot setup guide for Emacs editor
([#&#8203;12426](https://github.com/astral-sh/ruff/pull/12426))
- Add note about the breaking change in `nvim-lspconfig`
([#&#8203;12507](https://github.com/astral-sh/ruff/pull/12507))
- Add note to include notebook files for native server
([#&#8203;12449](https://github.com/astral-sh/ruff/pull/12449))
- Add setup docs for Zed editor
([#&#8203;12501](https://github.com/astral-sh/ruff/pull/12501))

###
[`v0.5.4`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#054)

[Compare
Source](https://github.com/astral-sh/ruff/compare/0.5.3...0.5.4)

##### Rule changes

- \[`ruff`] Rename `RUF007` to `zip-instead-of-pairwise`
([#&#8203;12399](https://github.com/astral-sh/ruff/pull/12399))

##### Bug fixes

- \[`flake8-builtins`] Avoid shadowing diagnostics for `@override`
methods
([#&#8203;12415](https://github.com/astral-sh/ruff/pull/12415))
- \[`flake8-comprehensions`] Insert parentheses for multi-argument
generators
([#&#8203;12422](https://github.com/astral-sh/ruff/pull/12422))
- \[`pydocstyle`] Handle escaped docstrings within docstring (`D301`)
([#&#8203;12192](https://github.com/astral-sh/ruff/pull/12192))

##### Documentation

- Fix GitHub link to Neovim setup
([#&#8203;12410](https://github.com/astral-sh/ruff/pull/12410))
- Fix `output-format` default in settings reference
([#&#8203;12409](https://github.com/astral-sh/ruff/pull/12409))

###
[`v0.5.3`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#053)

[Compare
Source](https://github.com/astral-sh/ruff/compare/0.5.2...0.5.3)

**Ruff 0.5.3 marks the stable release of the Ruff language server and
introduces revamped
[documentation](https://docs.astral.sh/ruff/editors), including [setup
guides for your editor of
choice](https://docs.astral.sh/ruff/editors/setup) and [the language
server
itself](https://docs.astral.sh/ruff/editors/settings)**.

##### Preview features

- Formatter: Insert empty line between suite and alternative branch
after function/class definition
([#&#8203;12294](https://github.com/astral-sh/ruff/pull/12294))
- \[`pyupgrade`] Implement `unnecessary-default-type-args` (`UP043`)
([#&#8203;12371](https://github.com/astral-sh/ruff/pull/12371))

##### Rule changes

- \[`flake8-bugbear`] Detect enumerate iterations in
`loop-iterator-mutation` (`B909`)
([#&#8203;12366](https://github.com/astral-sh/ruff/pull/12366))
- \[`flake8-bugbear`] Remove `discard`, `remove`, and `pop` allowance
for `loop-iterator-mutation` (`B909`)
([#&#8203;12365](https://github.com/astral-sh/ruff/pull/12365))
- \[`pylint`] Allow `repeated-equality-comparison` for mixed operations
(`PLR1714`)
([#&#8203;12369](https://github.com/astral-sh/ruff/pull/12369))
- \[`pylint`] Ignore `self` and `cls` when counting arguments
(`PLR0913`)
([#&#8203;12367](https://github.com/astral-sh/ruff/pull/12367))
- \[`pylint`] Use UTF-8 as default encoding in `unspecified-encoding`
fix (`PLW1514`)
([#&#8203;12370](https://github.com/astral-sh/ruff/pull/12370))

##### Server

- Build settings index in parallel for the native server
([#&#8203;12299](https://github.com/astral-sh/ruff/pull/12299))
- Use fallback settings when indexing the project
([#&#8203;12362](https://github.com/astral-sh/ruff/pull/12362))
- Consider `--preview` flag for `server` subcommand for the linter and
formatter
([#&#8203;12208](https://github.com/astral-sh/ruff/pull/12208))

##### Bug fixes

- \[`flake8-comprehensions`] Allow additional arguments for `sum` and
`max` comprehensions (`C419`)
([#&#8203;12364](https://github.com/astral-sh/ruff/pull/12364))
- \[`pylint`] Avoid dropping extra boolean operations in
`repeated-equality-comparison` (`PLR1714`)
([#&#8203;12368](https://github.com/astral-sh/ruff/pull/12368))
- \[`pylint`] Consider expression before statement when determining
binding kind (`PLR1704`)
([#&#8203;12346](https://github.com/astral-sh/ruff/pull/12346))

##### Documentation

- Add docs for Ruff language server
([#&#8203;12344](https://github.com/astral-sh/ruff/pull/12344))
- Migrate to standalone docs repo
([#&#8203;12341](https://github.com/astral-sh/ruff/pull/12341))
- Update versioning policy for editor integration
([#&#8203;12375](https://github.com/astral-sh/ruff/pull/12375))

##### Other changes

- Publish Wasm API to npm
([#&#8203;12317](https://github.com/astral-sh/ruff/pull/12317))

###
[`v0.5.2`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#052)

[Compare
Source](https://github.com/astral-sh/ruff/compare/0.5.1...0.5.2)

##### Preview features

- Use `space` separator before parenthesized expressions in
comprehensions with leading comments
([#&#8203;12282](https://github.com/astral-sh/ruff/pull/12282))
- \[`flake8-async`] Update `ASYNC100` to include `anyio` and `asyncio`
([#&#8203;12221](https://github.com/astral-sh/ruff/pull/12221))
- \[`flake8-async`] Update `ASYNC109` to include `anyio` and `asyncio`
([#&#8203;12236](https://github.com/astral-sh/ruff/pull/12236))
- \[`flake8-async`] Update `ASYNC110` to include `anyio` and `asyncio`
([#&#8203;12261](https://github.com/astral-sh/ruff/pull/12261))
- \[`flake8-async`] Update `ASYNC115` to include `anyio` and `asyncio`
([#&#8203;12262](https://github.com/astral-sh/ruff/pull/12262))
- \[`flake8-async`] Update `ASYNC116` to include `anyio` and `asyncio`
([#&#8203;12266](https://github.com/astral-sh/ruff/pull/12266))

##### Rule changes

- \[`flake8-return`] Exempt properties from explicit return rule
(`RET501`)
([#&#8203;12243](https://github.com/astral-sh/ruff/pull/12243))
- \[`numpy`] Add `np.NAN`-to-`np.nan` diagnostic
([#&#8203;12292](https://github.com/astral-sh/ruff/pull/12292))
- \[`refurb`] Make `list-reverse-copy` an unsafe fix
([#&#8203;12303](https://github.com/astral-sh/ruff/pull/12303))

##### Server

- Consider `include` and `extend-include` settings in native server
([#&#8203;12252](https://github.com/astral-sh/ruff/pull/12252))
- Include nested configurations in settings reloading
([#&#8203;12253](https://github.com/astral-sh/ruff/pull/12253))

##### CLI

- Omit code frames for fixes with empty ranges
([#&#8203;12304](https://github.com/astral-sh/ruff/pull/12304))
- Warn about formatter incompatibility for `D203`
([#&#8203;12238](https://github.com/astral-sh/ruff/pull/12238))

##### Bug fixes

- Make cache-write failures non-fatal on Windows
([#&#8203;12302](https://github.com/astral-sh/ruff/pull/12302))
- Treat `not` operations as boolean tests
([#&#8203;12301](https://github.com/astral-sh/ruff/pull/12301))
- \[`flake8-bandit`] Avoid `S310` violations for HTTP-safe f-strings
([#&#8203;12305](https://github.com/astral-sh/ruff/pull/12305))
- \[`flake8-bandit`] Support explicit string concatenations in S310 HTTP
detection
([#&#8203;12315](https://github.com/astral-sh/ruff/pull/12315))
- \[`flake8-bandit`] fix S113 false positive for httpx without `timeout`
argument
([#&#8203;12213](https://github.com/astral-sh/ruff/pull/12213))
- \[`pycodestyle`] Remove "non-obvious" allowance for E721
([#&#8203;12300](https://github.com/astral-sh/ruff/pull/12300))
- \[`pyflakes`] Consider `with` blocks as single-item branches for
redefinition analysis
([#&#8203;12311](https://github.com/astral-sh/ruff/pull/12311))
- \[`refurb`] Restrict forwarding for `newline` argument in `open()`
calls to Python versions >= 3.10
([#&#8203;12244](https://github.com/astral-sh/ruff/pull/12244))

##### Documentation

- Update help and documentation to reflect `--output-format full`
default
([#&#8203;12248](https://github.com/astral-sh/ruff/pull/12248))

##### Performance

- Use more threads when discovering Python files
([#&#8203;12258](https://github.com/astral-sh/ruff/pull/12258))

###
[`v0.5.1`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#051)

[Compare
Source](https://github.com/astral-sh/ruff/compare/0.5.0...0.5.1)

##### Preview features

- \[`flake8-bugbear`] Implement mutable-contextvar-default (B039)
([#&#8203;12113](https://github.com/astral-sh/ruff/pull/12113))
- \[`pycodestyle`] Whitespace after decorator (`E204`)
([#&#8203;12140](https://github.com/astral-sh/ruff/pull/12140))
- \[`pytest`] Reverse `PT001` and `PT0023` defaults
([#&#8203;12106](https://github.com/astral-sh/ruff/pull/12106))

##### Rule changes

- Enable token-based rules on source with syntax errors
([#&#8203;11950](https://github.com/astral-sh/ruff/pull/11950))
- \[`flake8-bandit`] Detect `httpx` for `S113`
([#&#8203;12174](https://github.com/astral-sh/ruff/pull/12174))
- \[`numpy`] Update `NPY201` to include exception deprecations
([#&#8203;12065](https://github.com/astral-sh/ruff/pull/12065))
- \[`pylint`] Generate autofix for `duplicate-bases` (`PLE0241`)
([#&#8203;12105](https://github.com/astral-sh/ruff/pull/12105))

##### Server

- Avoid syntax error notification for source code actions
([#&#8203;12148](https://github.com/astral-sh/ruff/pull/12148))
- Consider the content of the new cells during notebook sync
([#&#8203;12203](https://github.com/astral-sh/ruff/pull/12203))
- Fix replacement edit range computation
([#&#8203;12171](https://github.com/astral-sh/ruff/pull/12171))

##### Bug fixes

- Disable auto-fix when source has syntax errors
([#&#8203;12134](https://github.com/astral-sh/ruff/pull/12134))
- Fix cache key collisions for paths with separators
([#&#8203;12159](https://github.com/astral-sh/ruff/pull/12159))
- Make `requires-python` inference robust to `==`
([#&#8203;12091](https://github.com/astral-sh/ruff/pull/12091))
- Use char-wise width instead of `str`-width
([#&#8203;12135](https://github.com/astral-sh/ruff/pull/12135))
- \[`pycodestyle`] Avoid `E275` if keyword followed by comma
([#&#8203;12136](https://github.com/astral-sh/ruff/pull/12136))
- \[`pycodestyle`] Avoid `E275` if keyword is followed by a semicolon
([#&#8203;12095](https://github.com/astral-sh/ruff/pull/12095))
- \[`pylint`] Skip [dummy
variables](https://docs.astral.sh/ruff/settings/#lint_dummy-variable-rgx)
for `PLR1704`
([#&#8203;12190](https://github.com/astral-sh/ruff/pull/12190))

##### Performance

- Remove allocation in `parse_identifier`
([#&#8203;12103](https://github.com/astral-sh/ruff/pull/12103))
- Use `CompactString` for `Identifier` AST node
([#&#8203;12101](https://github.com/astral-sh/ruff/pull/12101))

###
[`v0.5.0`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#050)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.4.10...0.5.0)

Check out the [blog post](https://astral.sh/blog/ruff-v0.5.0) 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 `ALL` now excludes deprecated rules
- The released archives now include an extra level of nesting, which can
be removed with `--strip-components=1` when untarring.
- The release artifact's file name no longer includes the version tag.
This enables users to install via `/latest` URLs on GitHub.

##### Deprecations

The following rules are now deprecated:

- [`syntax-error`](https://docs.astral.sh/ruff/rules/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`](https://docs.astral.sh/ruff/rules/blocking-http-call-in-async-function/):
`ASYNC100` to `ASYNC210`
-
[`open-sleep-or-subprocess-in-async-function`](https://docs.astral.sh/ruff/rules/open-sleep-or-subprocess-in-async-function/):
`ASYNC101` split into `ASYNC220`, `ASYNC221`, `ASYNC230`, and `ASYNC251`
-
[`blocking-os-call-in-async-function`](https://docs.astral.sh/ruff/rules/blocking-os-call-in-async-function/):
`ASYNC102` has been merged into `ASYNC220` and `ASYNC221`
-
[`trio-timeout-without-await`](https://docs.astral.sh/ruff/rules/trio-timeout-without-await/):
`TRIO100` to `ASYNC100`
- [`trio-sync-call`](https://docs.astral.sh/ruff/rules/trio-sync-call/):
`TRIO105` to `ASYNC105`
-
[`trio-async-function-with-timeout`](https://docs.astral.sh/ruff/rules/trio-async-function-with-timeout/):
`TRIO109` to `ASYNC109`
-
[`trio-unneeded-sleep`](https://docs.astral.sh/ruff/rules/trio-unneeded-sleep/):
`TRIO110` to `ASYNC110`
-
[`trio-zero-sleep-call`](https://docs.astral.sh/ruff/rules/trio-zero-sleep-call/):
`TRIO115` to `ASYNC115`
-
[`repeated-isinstance-calls`](https://docs.astral.sh/ruff/rules/repeated-isinstance-calls/):
`PLR1701` to `SIM101`

##### Stabilization

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

-
[`mutable-fromkeys-value`](https://docs.astral.sh/ruff/rules/mutable-fromkeys-value/)
(`RUF024`)
-
[`default-factory-kwarg`](https://docs.astral.sh/ruff/rules/default-factory-kwarg/)
(`RUF026`)
- [`django-extra`](https://docs.astral.sh/ruff/rules/django-extra/)
(`S610`)
-
[`manual-dict-comprehension`](https://docs.astral.sh/ruff/rules/manual-dict-comprehension/)
(`PERF403`)
-
[`print-empty-string`](https://docs.astral.sh/ruff/rules/print-empty-string/)
(`FURB105`)
-
[`readlines-in-for`](https://docs.astral.sh/ruff/rules/readlines-in-for/)
(`FURB129`)
-
[`if-expr-min-max`](https://docs.astral.sh/ruff/rules/if-expr-min-max/)
(`FURB136`)
- [`bit-count`](https://docs.astral.sh/ruff/rules/bit-count/)
(`FURB161`)
-
[`redundant-log-base`](https://docs.astral.sh/ruff/rules/redundant-log-base/)
(`FURB163`)
-
[`regex-flag-alias`](https://docs.astral.sh/ruff/rules/regex-flag-alias/)
(`FURB167`)
-
[`isinstance-type-none`](https://docs.astral.sh/ruff/rules/isinstance-type-none/)
(`FURB168`)
-
[`type-none-comparison`](https://docs.astral.sh/ruff/rules/type-none-comparison/)
(`FURB169`)
- [`implicit-cwd`](https://docs.astral.sh/ruff/rules/implicit-cwd/)
(`FURB177`)
-
[`hashlib-digest-hex`](https://docs.astral.sh/ruff/rules/hashlib-digest-hex/)
(`FURB181`)
-
[`list-reverse-copy`](https://docs.astral.sh/ruff/rules/list-reverse-copy/)
(`FURB187`)
- [`bad-open-mode`](https://docs.astral.sh/ruff/rules/bad-open-mode/)
(`PLW1501`)
- [`empty-comment`](https://docs.astral.sh/ruff/rules/empty-comment/)
(`PLR2044`)
-
[`global-at-module-level`](https://docs.astral.sh/ruff/rules/global-at-module-level/)
(`PLW0604`)
-
[`misplaced-bare-raise`](https://docs.astral.sh/ruff/rules/misplaced-bare-raise%60/)
(`PLE0744`)
-
[`non-ascii-import-name`](https://docs.astral.sh/ruff/rules/non-ascii-import-name/)
(`PLC2403`)
- [`non-ascii-name`](https://docs.astral.sh/ruff/rules/non-ascii-name/)
(`PLC2401`)
-
[`nonlocal-and-global`](https://docs.astral.sh/ruff/rules/nonlocal-and-global/)
(`PLE0115`)
-
[`potential-index-error`](https://docs.astral.sh/ruff/rules/potential-index-error/)
(`PLE0643`)
-
[`redeclared-assigned-name`](https://docs.astral.sh/ruff/rules/redeclared-assigned-name/)
(`PLW0128`)
-
[`redefined-argument-from-local`](https://docs.astral.sh/ruff/rules/redefined-argument-from-local/)
(`PLR1704`)
-
[`repeated-keyword-argument`](https://docs.astral.sh/ruff/rules/repeated-keyword-argument/)
(`PLE1132`)
-
[`super-without-brackets`](https://docs.astral.sh/ruff/rules/super-without-brackets/)
(`PLW0245`)
-
[`unnecessary-list-index-lookup`](https://docs.astral.sh/ruff/rules/unnecessary-list-index-lookup/)
(`PLR1736`)
-
[`useless-exception-statement`](https://docs.astral.sh/ruff/rules/useless-exception-statement/)
(`PLW0133`)
-
[`useless-with-lock`](https://docs.astral.sh/ruff/rules/useless-with-lock/)
(`PLW2101`)

The following behaviors have been stabilized:

- [`is-literal`](https://docs.astral.sh/ruff/rules/is-literal/) (`F632`)
now warns for identity checks against list, set or dictionary literals
- [`needless-bool`](https://docs.astral.sh/ruff/rules/needless-bool/)
(`SIM103`) now detects `if` expressions with implicit `else` branches
-
[`module-import-not-at-top-of-file`](https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file/)
(`E402`) now allows `os.environ` modifications between import statements
-
[`type-comparison`](https://docs.astral.sh/ruff/rules/type-comparison/)
(`E721`) now allows idioms such as `type(x) is int`
- [`yoda-condition`](https://docs.astral.sh/ruff/rules/yoda-conditions/)
(`SIM300`) now flags a wider range of expressions

##### Removals

The following deprecated settings have been removed:

- `output-format=text`; use `output-format=concise` or
`output-format=full`
-   `tab-size`; use `indent-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>`; use `ruff check <path>`
-   `ruff --clean`; use `ruff clean`
- `ruff --generate-shell-completion`; use `ruff
generate-shell-completion`

##### Preview features

- \[`ruff`] Add `assert-with-print-message` rule
([#&#8203;11981](https://github.com/astral-sh/ruff/pull/11981))

##### CLI

- Use rule name rather than message in `--statistics`
([#&#8203;11697](https://github.com/astral-sh/ruff/pull/11697))
- Use the output format `full` by default
([#&#8203;12010](https://github.com/astral-sh/ruff/pull/12010))
- Don't log syntax errors to the console
([#&#8203;11902](https://github.com/astral-sh/ruff/pull/11902))

##### Rule changes

- \[`ruff`] Fix false positives if `gettext` is imported using an alias
(`RUF027`)
([#&#8203;12025](https://github.com/astral-sh/ruff/pull/12025))
- \[`npy`] Update `trapz` and `in1d` deprecation (`NPY201`)
([#&#8203;11948](https://github.com/astral-sh/ruff/pull/11948))
- \[`flake8-bandit`] Modify diagnostic ranges for shell-related rules
([#&#8203;10667](https://github.com/astral-sh/ruff/pull/10667))

##### Server

- Closing an untitled, unsaved notebook document no longer throws an
error ([#&#8203;11942](https://github.com/astral-sh/ruff/pull/11942))
- Support the usage of tildes and environment variables in `logFile`
([#&#8203;11945](https://github.com/astral-sh/ruff/pull/11945))
- Add option to configure whether to show syntax errors
([#&#8203;12059](https://github.com/astral-sh/ruff/pull/12059))

##### Bug fixes

- \[`pycodestyle`] Avoid `E203` for f-string debug expression
([#&#8203;12024](https://github.com/astral-sh/ruff/pull/12024))
- \[`pep8-naming`] Match import-name ignores against both name and alias
(`N812`, `N817`)
([#&#8203;12033](https://github.com/astral-sh/ruff/pull/12033))
- \[`pyflakes`] Detect assignments that shadow definitions (`F811`)
([#&#8203;11961](https://github.com/astral-sh/ruff/pull/11961))

##### Parser

- Emit a syntax error for an empty type parameter list
([#&#8203;12030](https://github.com/astral-sh/ruff/pull/12030))
- Avoid consuming the newline for unterminated strings
([#&#8203;12067](https://github.com/astral-sh/ruff/pull/12067))
- Do not include the newline in the unterminated string range
([#&#8203;12017](https://github.com/astral-sh/ruff/pull/12017))
- Use the correct range to highlight line continuation errors
([#&#8203;12016](https://github.com/astral-sh/ruff/pull/12016))
- Consider 2-character EOL before line continuations
([#&#8203;12035](https://github.com/astral-sh/ruff/pull/12035))
- Consider line continuation character for re-lexing
([#&#8203;12008](https://github.com/astral-sh/ruff/pull/12008))

##### Other changes

- Upgrade the Unicode table used for measuring the line-length
([#&#8203;11194](https://github.com/astral-sh/ruff/pull/11194))
- Remove the deprecation error message for the nursery selector
([#&#8203;10172](https://github.com/astral-sh/ruff/pull/10172))

###
[`v0.4.10`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0410)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.4.9...v0.4.10)

##### Parser

- Implement re-lexing logic for better error recovery
([#&#8203;11845](https://github.com/astral-sh/ruff/pull/11845))

##### Rule changes

- \[`flake8-copyright`] Update `CPY001` to check the first 4096 bytes
instead of 1024
([#&#8203;11927](https://github.com/astral-sh/ruff/pull/11927))
- \[`pycodestyle`] Update `E999` to show all syntax errors instead of
just the first one
([#&#8203;11900](https://github.com/astral-sh/ruff/pull/11900))

##### Server

- Add tracing setup guide to Helix documentation
([#&#8203;11883](https://github.com/astral-sh/ruff/pull/11883))
- Add tracing setup guide to Neovim documentation
([#&#8203;11884](https://github.com/astral-sh/ruff/pull/11884))
- Defer notebook cell deletion to avoid an error message
([#&#8203;11864](https://github.com/astral-sh/ruff/pull/11864))

##### Security

- Guard against malicious ecosystem comment artifacts
([#&#8203;11879](https://github.com/astral-sh/ruff/pull/11879))

###
[`v0.4.9`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#049)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.4.8...v0.4.9)

##### Preview features

- \[`pylint`] Implement `consider-dict-items` (`C0206`)
([#&#8203;11688](https://github.com/astral-sh/ruff/pull/11688))
- \[`refurb`] Implement `repeated-global` (`FURB154`)
([#&#8203;11187](https://github.com/astral-sh/ruff/pull/11187))

##### Rule changes

- \[`pycodestyle`] Adapt fix for `E203` to work identical to `ruff
format`
([#&#8203;10999](https://github.com/astral-sh/ruff/pull/10999))

##### Formatter

- Fix formatter instability for lines only consisting of zero-width
characters
([#&#8203;11748](https://github.com/astral-sh/ruff/pull/11748))

##### Server

- Add supported commands in server capabilities
([#&#8203;11850](https://github.com/astral-sh/ruff/pull/11850))
- Use real file path when available in `ruff server`
([#&#8203;11800](https://github.com/astral-sh/ruff/pull/11800))
- Improve error message when a command is run on an unavailable document
([#&#8203;11823](https://github.com/astral-sh/ruff/pull/11823))
- Introduce the `ruff.printDebugInformation` command
([#&#8203;11831](https://github.com/astral-sh/ruff/pull/11831))
- Tracing system now respects log level and trace level, with options to
log to a file
([#&#8203;11747](https://github.com/astral-sh/ruff/pull/11747))

##### CLI

- Handle non-printable characters in diff view
([#&#8203;11687](https://github.com/astral-sh/ruff/pull/11687))

##### Bug fixes

- \[`refurb`] Avoid suggesting starmap when arguments are used outside
call (`FURB140`)
([#&#8203;11830](https://github.com/astral-sh/ruff/pull/11830))
- \[`flake8-bugbear`] Avoid panic in `B909` when checking large loop
blocks ([#&#8203;11772](https://github.com/astral-sh/ruff/pull/11772))
- \[`refurb`] Fix misbehavior of `operator.itemgetter` when getter param
is a tuple (`FURB118`)
([#&#8203;11774](https://github.com/astral-sh/ruff/pull/11774))

###
[`v0.4.8`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#048)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.4.7...v0.4.8)

##### Performance

- Linter performance has been improved by around 10% on some
microbenchmarks by refactoring the lexer and parser to maintain
synchronicity between them
([#&#8203;11457](https://github.com/astral-sh/ruff/pull/11457))

##### Preview features

- \[`flake8-bugbear`] Implement `return-in-generator` (`B901`)
([#&#8203;11644](https://github.com/astral-sh/ruff/pull/11644))
- \[`flake8-pyi`] Implement `PYI063`
([#&#8203;11699](https://github.com/astral-sh/ruff/pull/11699))
- \[`pygrep_hooks`] Check blanket ignores via file-level pragmas
(`PGH004`)
([#&#8203;11540](https://github.com/astral-sh/ruff/pull/11540))

##### Rule changes

- \[`pyupgrade`] Update `UP035` for Python 3.13 and the latest version
of `typing_extensions`
([#&#8203;11693](https://github.com/astral-sh/ruff/pull/11693))
- \[`numpy`] Update `NPY001` rule for NumPy 2.0
([#&#8203;11735](https://github.com/astral-sh/ruff/pull/11735))

##### Server

- Formatting a document with syntax problems no longer spams a visible
error popup
([#&#8203;11745](https://github.com/astral-sh/ruff/pull/11745))

##### CLI

- Add RDJson support for `--output-format` flag
([#&#8203;11682](https://github.com/astral-sh/ruff/pull/11682))

##### Bug fixes

- \[`pyupgrade`] Write empty string in lieu of panic when fixing `UP032`
([#&#8203;11696](https://github.com/astral-sh/ruff/pull/11696))
- \[`flake8-simplify`] Simplify double negatives in `SIM103`
([#&#8203;11684](https://github.com/astral-sh/ruff/pull/11684))
- Ensure the expression generator adds a newline before `type`
statements
([#&#8203;11720](https://github.com/astral-sh/ruff/pull/11720))
- Respect per-file ignores for blanket and redirected noqa rules
([#&#8203;11728](https://github.com/astral-sh/ruff/pull/11728))

###
[`v0.4.7`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#047)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.4.6...v0.4.7)

##### Preview features

- \[`flake8-pyi`] Implement `PYI064`
([#&#8203;11325](https://github.com/astral-sh/ruff/pull/11325))
- \[`flake8-pyi`] Implement `PYI066`
([#&#8203;11541](https://github.com/astral-sh/ruff/pull/11541))
- \[`flake8-pyi`] Implement `PYI057`
([#&#8203;11486](https://github.com/astral-sh/ruff/pull/11486))
- \[`pyflakes`] Enable `F822` in `__init__.py` files by default
([#&#8203;11370](https://github.com/astral-sh/ruff/pull/11370))

##### Formatter

- Fix incorrect placement of trailing stub function comments
([#&#8203;11632](https://github.com/astral-sh/ruff/pull/11632))

##### Server

- Respect file exclusions in `ruff server`
([#&#8203;11590](https://github.com/astral-sh/ruff/pull/11590))
- Add support for documents not exist on disk
([#&#8203;11588](https://github.com/astral-sh/ruff/pull/11588))
- Add Vim and Kate setup guide for `ruff server`
([#&#8203;11615](https://github.com/astral-sh/ruff/pull/11615))

##### Bug fixes

- Avoid removing newlines between docstring headers and rST blocks
([#&#8203;11609](https://github.com/astral-sh/ruff/pull/11609))
- Infer indentation with imports when logical indent is absent
([#&#8203;11608](https://github.com/astral-sh/ruff/pull/11608))
- Use char index rather than position for indent slice
([#&#8203;11645](https://github.com/astral-sh/ruff/pull/11645))
- \[`flake8-comprehension`] Strip parentheses around generators in
`C400` ([#&#8203;11607](https://github.com/astral-sh/ruff/pull/11607))
- Mark `repeated-isinstance-calls` as unsafe on Python 3.10 and later
([#&#8203;11622](https://github.com/astral-sh/ruff/pull/11622))

###
[`v0.4.6`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#046)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.4.5...v0.4.6)

##### Breaking changes

- Use project-relative paths when calculating GitLab fingerprints
([#&#8203;11532](https://github.com/astral-sh/ruff/pull/11532))

##### Preview features

- \[`flake8-async`] Sleep with >24 hour interval should usually sleep
forever (`ASYNC116`)
([#&#8203;11498](https://github.com/astral-sh/ruff/pull/11498))

##### Rule changes

- \[`numpy`] Add missing functions to NumPy 2.0 migration rule
([#&#8203;11528](https://github.com/astral-sh/ruff/pull/11528))
- \[`mccabe`] Consider irrefutable pattern similar to `if .. else` for
`C901` ([#&#8203;11565](https://github.com/astral-sh/ruff/pull/11565))
- Consider `match`-`case` statements for `C901`, `PLR0912`, and
`PLR0915`
([#&#8203;11521](https://github.com/astral-sh/ruff/pull/11521))
- Remove empty strings when converting to f-string (`UP032`)
([#&#8203;11524](https://github.com/astral-sh/ruff/pull/11524))
- \[`flake8-bandit`] `request-without-timeout` should warn for
`requests.request`
([#&#8203;11548](https://github.com/astral-sh/ruff/pull/11548))
- \[`flake8-self`] Ignore sunder accesses in `flake8-self` rules
([#&#8203;11546](https://github.com/astral-sh/ruff/pull/11546))
- \[`pyupgrade`] Lint for `TypeAliasType` usages (`UP040`)
([#&#8203;11530](https://github.com/astral-sh/ruff/pull/11530))

##### Server

- Respect excludes in `ruff server` configuration discovery
([#&#8203;11551](https://github.com/astral-sh/ruff/pull/11551))
- Use default settings if initialization options is empty or not
provided
([#&#8203;11566](https://github.com/astral-sh/ruff/pull/11566))
- `ruff server` correctly treats `.pyi` files as stub files
([#&#8203;11535](https://github.com/astral-sh/ruff/pull/11535))
- `ruff server` searches for configuration in parent directories
([#&#8203;11537](https://github.com/astral-sh/ruff/pull/11537))
- `ruff server`: An empty code action filter no longer returns notebook
source actions
([#&#8203;11526](https://github.com/astral-sh/ruff/pull/11526))

##### Bug fixes

- \[`flake8-logging-format`] Fix autofix title in `logging-warn`
(`G010`)
([#&#8203;11514](https://github.com/astral-sh/ruff/pull/11514))
- \[`refurb`] Avoid recommending `operator.itemgetter` with dependence
on lambda arguments
([#&#8203;11574](https://github.com/astral-sh/ruff/pull/11574))
- \[`flake8-simplify`] Avoid recommending context manager in `__enter__`
implementations
([#&#8203;11575](https://github.com/astral-sh/ruff/pull/11575))
- Create intermediary directories for `--output-file`
([#&#8203;11550](https://github.com/astral-sh/ruff/pull/11550))
- Propagate reads on global variables
([#&#8203;11584](https://github.com/astral-sh/ruff/pull/11584))
- Treat all `singledispatch` arguments as runtime-required
([#&#8203;11523](https://github.com/astral-sh/ruff/pull/11523))

###
[`v0.4.5`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#045)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.4.4...v0.4.5)

##### Ruff's language server is now in Beta

`v0.4.5` marks the official Beta release of `ruff server`, an integrated
language server built into Ruff.
`ruff server` supports the same feature set as `ruff-lsp`, powering
linting, formatting, and
code fixes in Ruff's editor integrations -- but with superior
performance and
no installation required. We'd love your feedback!

You can enable `ruff server` in the [VS Code
extension](https://github.com/astral-sh/ruff-vscode?tab=readme-ov-file#enabling-the-rust-based-language-server)
today.

To read more about this exciting milestone, check out our [blog
post](https://astral.sh/blog/ruff-v0.4.5)!

##### Rule changes

- \[`flake8-future-annotations`] Reword
`future-rewritable-type-annotation` (`FA100`) message
([#&#8203;11381](https://github.com/astral-sh/ruff/pull/11381))
- \[`pycodestyle`] Consider soft keywords for `E27` rules
([#&#8203;11446](https://github.com/astral-sh/ruff/pull/11446))
- \[`pyflakes`] Recommend adding unused import bindings to `__all__`
([#&#8203;11314](https://github.com/astral-sh/ruff/pull/11314))
- \[`pyflakes`] Update documentation and deprecate
`ignore_init_module_imports`
([#&#8203;11436](https://github.com/astral-sh/ruff/pull/11436))
- \[`pyupgrade`] Mark quotes as unnecessary for non-evaluated
annotations
([#&#8203;11485](https://github.com/astral-sh/ruff/pull/11485))

##### Formatter

- Avoid multiline quotes warning with `quote-style = preserve`
([#&#8203;11490](https://github.com/astral-sh/ruff/pull/11490))

##### Server

- Support Jupyter Notebook files
([#&#8203;11206](https://github.com/astral-sh/ruff/pull/11206))
- Support `noqa` comment code actions
([#&#8203;11276](https://github.com/astral-sh/ruff/pull/11276))
- Fix automatic configuration reloading
([#&#8203;11492](https://github.com/astral-sh/ruff/pull/11492))
- Fix several issues with configuration in Neovim and Helix
([#&#8203;11497](https://github.com/astral-sh/ruff/pull/11497))

##### CLI

- Add `--output-format` as a CLI option for `ruff config`
([#&#8203;11438](https://github.com/astral-sh/ruff/pull/11438))

##### Bug fixes

- Avoid `PLE0237` for property with setter
([#&#8203;11377](https://github.com/astral-sh/ruff/pull/11377))
- Avoid `TCH005` for `if` stmt with `elif`/`else` block
([#&#8203;11376](https://github.com/astral-sh/ruff/pull/11376))
- Avoid flagging `__future__` annotations as required for non-evaluated
type annotations
([#&#8203;11414](https://github.com/astral-sh/ruff/pull/11414))
- Check for ruff executable in 'bin' directory as installed by 'pip
install --target'.
([#&#8203;11450](https://github.com/astral-sh/ruff/pull/11450))
- Sort edits prior to deduplicating in quotation fix
([#&#8203;11452](https://github.com/astral-sh/ruff/pull/11452))
- Treat escaped newline as valid sequence
([#&#8203;11465](https://github.com/astral-sh/ruff/pull/11465))
- \[`flake8-pie`] Preserve parentheses in `unnecessary-dict-kwargs`
([#&#8203;11372](https://github.com/astral-sh/ruff/pull/11372))
- \[`pylint`] Ignore `__slots__` with dynamic values
([#&#8203;11488](https://github.com/astral-sh/ruff/pull/11488))
- \[`pylint`] Remove `try` body from branch counting
([#&#8203;11487](https://github.com/astral-sh/ruff/pull/11487))
- \[`refurb`] Respect operator precedence in `FURB110`
([#&#8203;11464](https://github.com/astral-sh/ruff/pull/11464))

##### Documentation

- Add `--preview` to the README
([#&#8203;11395](https://github.com/astral-sh/ruff/pull/11395))
- Add Python 3.13 to list of allowed Python versions
([#&#8203;11411](https://github.com/astral-sh/ruff/pull/11411))
- Simplify Neovim setup documentation
([#&#8203;11489](https://github.com/astral-sh/ruff/pull/11489))
- Update CONTRIBUTING.md to reflect the new parser
([#&#8203;11434](https://github.com/astral-sh/ruff/pull/11434))
- Update server documentation with new migration guide
([#&#8203;11499](https://github.com/astral-sh/ruff/pull/11499))
- \[`pycodestyle`] Clarify motivation for `E713` and `E714`
([#&#8203;11483](https://github.com/astral-sh/ruff/pull/11483))
- \[`pyflakes`] Update docs to describe WAI behavior (F541)
([#&#8203;11362](https://github.com/astral-sh/ruff/pull/11362))
- \[`pylint`] Clearly indicate what is counted as a branch
([#&#8203;11423](https://github.com/astral-sh/ruff/pull/11423))

###
[`v0.4.4`](https://github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#044)

[Compare
Source](https://github.com/astral-sh/ruff/compare/v0.4.3...v0.4.4)

##### Preview features

- \[`pycodestyle`] Ignore end-of-line comments when determining blank
line rules
([#&#8203;11342](https://github.com/astral-sh/ruff/pull/11342))
- \[`pylint`] Detect `pathlib.Path.open` calls in `unspecified-encoding`
(`PLW1514`)
([#&#8203;11288](https://github.com/astral-sh/ruff/pull/11288))
- \[`flake8-pyi`] Implement `PYI059` (`generic-not-last-base-class`)
([#&#8203;11233](https://github.com/astral-sh/ruff/pull/11233))
- \[`flake8-pyi`] Implement `PYI062` (`duplicate-literal-member`)
([#&#8203;11269](https://github.com/astral-sh/ruff/pull/11269))

##### Rule changes

- \[`flake8-boolean-trap`] Allow passing booleans as positional-only
arguments in code such as `set(True)`
([#&#8203;11287](https://github.com/astral-sh/ruff/pull/11287))
- \[`flake8-bugbear`] Ignore enum classes in `cached-instance-method`
(`B019`)
([#&#8203;11312](https://github.com/astral-sh/ruff/pull/11312))

##### Server

- Expand tildes when resolving Ruff server configuration file
([#&#8203;11283](https://github.com/astral-sh/ruff/pull/11283))
- Fix `ruff server` hanging after Neovim closes
([#&#8203;11291](https://github.com/astral-sh/ruff/pull/11291))
- Editor settings are used by default if no file-based configuration
exists ([#&#8203;11266](https://github.com/astral-sh/ruff/pull/11266))

##### Bug fixes

- \[`pylint`] Consider `with` statements for `too-many-branches`
(`PLR0912`) ([#&#

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekend" in timezone Etc/UTC,
Automerge - At any time (no schedule defined).

🚦 **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.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/canonical/craftcraft).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOC41Ni4wIiwidXBkYXRlZEluVmVyIjoiMzguNTYuMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
  • Loading branch information
renovate[bot] committed Sep 4, 2024
1 parent 2f1ab78 commit c76b98c
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ dev = [
lint = [
"black~=23.10",
"codespell[toml]~=2.2",
"ruff~=0.1.10",
"ruff~=0.6.3",
"yamllint==1.32"
]
types = [
Expand Down

0 comments on commit c76b98c

Please sign in to comment.