Skip to content

Commit

Permalink
Edit changelog
Browse files Browse the repository at this point in the history
  • Loading branch information
MichaReiser committed Nov 20, 2024
1 parent 36172a5 commit 62fb247
Showing 1 changed file with 67 additions and 21 deletions.
88 changes: 67 additions & 21 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,84 @@

## 0.8.0

Check out the [blog post](https://astral.sh/blog/ruff-v0.8.0) for a migration guide and overview of the changes!

### Breaking changes

- Ruff 0.8 ([#14383](https://github.com/MichaReiser/ruff/pull/14383))
See also, the "Remapped rules" section which may result in disabled rules.

### Preview features
**Default to Python 3.9**
Ruff now defaults to Python 3.9 instead of 3.8 if no explicit Python version is configured using `ruff.target-version` or `project.requires-python` ([#13896](https://github.com/astral-sh/ruff/pull/13896))

- Mark UP043 fix unsafe when the type annotation contains any comments ([#14458](https://github.com/astral-sh/ruff/pull/14458))
- \[`flake8-pyi`\] Implement `redundant-none-literal` (`PYI061`) ([#14316](https://github.com/astral-sh/ruff/pull/14316))
- \[`flake8-pyi`\] Implement autofix for `redundant-numeric-union` (`PYI041`) ([#14273](https://github.com/astral-sh/ruff/pull/14273))
- \[`pycodestyle`\] Exempt `pytest.importorskip()` calls (`E402`) ([#14474](https://github.com/astral-sh/ruff/pull/14474))
- \[`pydoclint`\] Update diagnostics to target the docstring ([#14381](https://github.com/astral-sh/ruff/pull/14381))
- \[`pylint`\] - use sets when possible for `PLR1714` autofix (`repeated-equality-comparison`) ([#14372](https://github.com/astral-sh/ruff/pull/14372))
- \[`ruff`\] Add rule forbidding `map(int, package.__version__.split('.'))` (`RUF048`) ([#14373](https://github.com/astral-sh/ruff/pull/14373))
- \[`ruff`\] Implement `redundant-bool-literal` (`RUF038`) ([#14319](https://github.com/astral-sh/ruff/pull/14319))
- \[`ruff`\] `re` and `regex` calls with unraw string as first argument (`RUF039`) ([#14446](https://github.com/astral-sh/ruff/pull/14446))
**Use XDG (i.e. `~/.local/bin`) instead of the Cargo home directory in the installer**
Previously, Ruff's installer used `$CARGO_HOME` or `~/.cargo/bin` for its target install directory. Now, Ruff will be installed into `$XDG_BIN_HOME`, `$XDG_DATA_HOME/../bin`, or `~/.local/bin` (in that order). Note, this only applies if you installed Ruff with the standalone installer (using the shell or PowerShell script but not when using e.g. pip).

### Bug fixes
**Updated Unicode standard**
Ruff now uses a more recent version of the Unicode standard. In very rare cases, this can lead to formatting changes or new `E501` violations if the computed line width differs.

- Avoid panic in unfixable `redundant-numeric-union` ([#14402](https://github.com/astral-sh/ruff/pull/14402))
- Reverse order of `__contains__` arguments ([#14424](https://github.com/astral-sh/ruff/pull/14424))
- \[`flake8-datetimez`\] Also exempt `.time()` (`DTZ901`) ([#14394](https://github.com/astral-sh/ruff/pull/14394))
- \[`flake8-type-checking`\] Consider type expressions in list for quoting annotations ([#14371](https://github.com/astral-sh/ruff/pull/14371))
### Removed Rules

### Documentation
The following deprecated rules have been removed:

- Improve rule & options documentation ([#14329](https://github.com/astral-sh/ruff/pull/14329))
- Watch for changes to the generated file during documentation serve ([#14476](https://github.com/astral-sh/ruff/pull/14476))
- \[`flake8-logging`\] Suggest `.getLogger(__name__)` instead of `.getLogger(__file__)` (`LOG015`) ([#14392](https://github.com/astral-sh/ruff/pull/14392))
- [`unpacked-list-comprehension`](https://docs.astral.sh/ruff/rules/unpacked-list-comprehension/) (`UP027`)
- [`missing-type-self`](https://docs.astral.sh/ruff/rules/missing-type-self/) (`ANN101`)
- [`missing-type-cls`](https://docs.astral.sh/ruff/rules/missing-type-cls/) (`ANN102`)
- [`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`)
- [`pytest-incorrect-fixture-name-underscore`](https://docs.astral.sh/ruff/rules/pytest-incorrect-fixture-name-underscore/) (`E999`)

### Other changes
### Remapped rules

The following rules have been remapped to new rule codes:

- [`flake8-type-checking`](https://docs.astral.sh/ruff/rules/#flake8-type-checking-tch): `TCH` to `TC`

### Stabilization

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

- [`builtin-import-shadowing`](https://docs.astral.sh/ruff/rules/builtin-import-shadowing/) (`A004`)
- [`mutable-contextvar-default`](https://docs.astral.sh/ruff/rules/mutable-contextvar-default/) (`B039`)
- [`fast-api-redundant-response-model`](https://docs.astral.sh/ruff/rules/fast-api-redundant-response-model/) (`FAST001`)
- [`fast-api-non-annotated-dependency`](https://docs.astral.sh/ruff/rules/fast-api-non-annotated-dependency/) (`FAST002`)
- [`dict-index-missing-items`](https://docs.astral.sh/ruff/rules/dict-index-missing-items/) (`PLC0206`)
- [`pep484-style-positional-only-argument`](https://docs.astral.sh/ruff/rules/pep484-style-positional-only-argument/) (`PYI063`)
- [`redundant-final-literal`](https://docs.astral.sh/ruff/rules/redundant-final-literal/) (`PYI064`)
- [`bad-version-info-order`](https://docs.astral.sh/ruff/rules/bad-version-info-order/) (`PYI066`)
- [`parenthesize-chained-operators`](https://docs.astral.sh/ruff/rules/parenthesize-chained-operators/) (`RUF021`)
- [`unsorted-dunder-all`](https://docs.astral.sh/ruff/rules/unsorted-dunder-all/) (`RUF022`)
- [`unsorted-dunder-slots`](https://docs.astral.sh/ruff/rules/unsorted-dunder-slots/) (`RUF023`)
- [`assert-with-print-message`](https://docs.astral.sh/ruff/rules/assert-with-print-message/) (`RUF030`)
- [`unnecessary-default-type-args`](https://docs.astral.sh/ruff/rules/unnecessary-default-type-args/) (`UP043`)

The following behaviors have been stabilized:

- [`printf-string-formatting`](https://docs.astral.sh/ruff/rules/printf-string-formatting/) (`UP031`): Report all printf-like usages even if no autofix is available
- [`ambiguous-variable-name`](https://docs.astral.sh/ruff/rules/ambiguous-variable-name/) (`E741`): Ignore violations in stub files because the stub-author doesn't control the variable name.
- [`invalid-pyproject-toml`](https://docs.astral.sh/ruff/rules/invalid-pyproject-toml/) (`RUF200`): Updated to reflect the provisionally accepted PEP 639.

The following fixes have been stabilized:

- [`zip-instead-of-pairwise`](https://docs.astral.sh/ruff/rules/zip-instead-of-pairwise/) (`RUF007`)

### Preview features

- \[`flake8-pyi`\] Add `redundant-none-literal` (`PYI061`) ([#14316](https://github.com/astral-sh/ruff/pull/14316))
- \[`flake8-pyi`\] Add autofix for `redundant-numeric-union` (`PYI041`) ([#14273](https://github.com/astral-sh/ruff/pull/14273))
- \[`pycodestyle`\] Exempt `pytest.importorskip()` calls (`E402`) ([#14474](https://github.com/astral-sh/ruff/pull/14474))
- \[`pydoclint`\] Update the location of pydoclint diagnostics to the start of the docstring instead of the documented statement ([#14381](https://github.com/astral-sh/ruff/pull/14381))
- \[`pylint`\] Autofix suggests using sets when possible (`PLR1714`) ([#14372](https://github.com/astral-sh/ruff/pull/14372))
- \[`ruff`\] New rule `map-int-version-parsing` (`RUF048`) ([#14373](https://github.com/astral-sh/ruff/pull/14373))
- \[`ruff`\] New rule `redundant-bool-literal` (`RUF038`) ([#14319](https://github.com/astral-sh/ruff/pull/14319))
- \[`ruff`\] New rule `unraw-re-pattern` (`RUF039`) ([#14446](https://github.com/astral-sh/ruff/pull/14446))

### Rule changes

- \[`flake8-datetimez`\] Exempt `min.time()` and `max.time()` (`DTZ901`) ([#14394](https://github.com/astral-sh/ruff/pull/14394))
- \[`flake8-pie`\] Mark fix as unsafe if the following statement is a string literal (`PIE790`) ([#14393](https://github.com/astral-sh/ruff/pull/14393))
- \[`flake8-pyi`\] Avoid panic in unfixable case (`PYI041`) ([#14402](https://github.com/astral-sh/ruff/pull/14402))
- \[`flake8-type-checking`\] Correctly handle quotes in subscript expression when generating an autofix ([#14371](https://github.com/astral-sh/ruff/pull/14371))
- \[`pylint`\] Fix incorrect autofix for `__contains__` (`PLC2801`) ([#14424](https://github.com/astral-sh/ruff/pull/14424))

## 0.7.4

Expand Down

0 comments on commit 62fb247

Please sign in to comment.