Skip to content

Commit a8b48fc

Browse files
Release v0.5.0 (#12068)
Co-authored-by: Alex Waygood <[email protected]>
1 parent 04c8597 commit a8b48fc

File tree

10 files changed

+155
-15
lines changed

10 files changed

+155
-15
lines changed

BREAKING_CHANGES.md

+7
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Breaking Changes
22

3+
## 0.5.0
4+
5+
- Follow the XDG specification to discover user-level configurations on macOS (same as on other Unix platforms)
6+
- Selecting `ALL` now excludes deprecated rules
7+
- The released archives now include an extra level of nesting, which can be removed with `--strip-components=1` when untarring.
8+
- The release artifact's file name no longer includes the version tag. This enables users to install via `/latest` URLs on GitHub.
9+
310
## 0.3.0
411

512
### Ruff 2024.2 style

CHANGELOG.md

+136
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,141 @@
11
# Changelog
22

3+
## 0.5.0
4+
5+
Check out the [blog post](https://astral.sh/blog/ruff-v0.5.0) for a migration guide and overview of the changes!
6+
7+
### Breaking changes
8+
9+
See also, the "Remapped rules" section which may result in disabled rules.
10+
11+
- Follow the XDG specification to discover user-level configurations on macOS (same as on other Unix platforms)
12+
- Selecting `ALL` now excludes deprecated rules
13+
- The released archives now include an extra level of nesting, which can be removed with `--strip-components=1` when untarring.
14+
- The release artifact's file name no longer includes the version tag. This enables users to install via `/latest` URLs on GitHub.
15+
16+
### Deprecations
17+
18+
The following rules are now deprecated:
19+
20+
- [`syntax-error`](https://docs.astral.sh/ruff/rules/syntax-error/) (`E999`): Syntax errors are now always shown
21+
22+
### Remapped rules
23+
24+
The following rules have been remapped to new rule codes:
25+
26+
- [`blocking-http-call-in-async-function`](https://docs.astral.sh/ruff/rules/blocking-http-call-in-async-function/): `ASYNC100` to `ASYNC210`
27+
- [`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`
28+
- [`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`
29+
- [`trio-timeout-without-await`](https://docs.astral.sh/ruff/rules/trio-timeout-without-await/): `TRIO100` to `ASYNC100`
30+
- [`trio-sync-call`](https://docs.astral.sh/ruff/rules/trio-sync-call/): `TRIO105` to `ASYNC105`
31+
- [`trio-async-function-with-timeout`](https://docs.astral.sh/ruff/rules/trio-async-function-with-timeout/): `TRIO109` to `ASYNC109`
32+
- [`trio-unneeded-sleep`](https://docs.astral.sh/ruff/rules/trio-unneeded-sleep/): `TRIO110` to `ASYNC110`
33+
- [`trio-zero-sleep-call`](https://docs.astral.sh/ruff/rules/trio-zero-sleep-call/): `TRIO115` to `ASYNC115`
34+
- [`repeated-isinstance-calls`](https://docs.astral.sh/ruff/rules/repeated-isinstance-calls/): `PLR1701` to `SIM101`
35+
36+
### Stabilization
37+
38+
The following rules have been stabilized and are no longer in preview:
39+
40+
- [`mutable-fromkeys-value`](https://docs.astral.sh/ruff/rules/mutable-fromkeys-value/) (`RUF024`)
41+
- [`default-factory-kwarg`](https://docs.astral.sh/ruff/rules/default-factory-kwarg/) (`RUF026`)
42+
- [`django-extra`](https://docs.astral.sh/ruff/rules/django-extra/) (`S610`)
43+
- [`manual-dict-comprehension`](https://docs.astral.sh/ruff/rules/manual-dict-comprehension/) (`PERF403`)
44+
- [`print-empty-string`](https://docs.astral.sh/ruff/rules/print-empty-string/) (`FURB105`)
45+
- [`readlines-in-for`](https://docs.astral.sh/ruff/rules/readlines-in-for/) (`FURB129`)
46+
- [`if-expr-min-max`](https://docs.astral.sh/ruff/rules/if-expr-min-max/) (`FURB136`)
47+
- [`bit-count`](https://docs.astral.sh/ruff/rules/bit-count/) (`FURB161`)
48+
- [`redundant-log-base`](https://docs.astral.sh/ruff/rules/redundant-log-base/) (`FURB163`)
49+
- [`regex-flag-alias`](https://docs.astral.sh/ruff/rules/regex-flag-alias/) (`FURB167`)
50+
- [`isinstance-type-none`](https://docs.astral.sh/ruff/rules/isinstance-type-none/) (`FURB168`)
51+
- [`type-none-comparison`](https://docs.astral.sh/ruff/rules/type-none-comparison/) (`FURB169`)
52+
- [`implicit-cwd`](https://docs.astral.sh/ruff/rules/implicit-cwd/) (`FURB177`)
53+
- [`hashlib-digest-hex`](https://docs.astral.sh/ruff/rules/hashlib-digest-hex/) (`FURB181`)
54+
- [`list-reverse-copy`](https://docs.astral.sh/ruff/rules/list-reverse-copy/) (`FURB187`)
55+
- [`bad-open-mode`](https://docs.astral.sh/ruff/rules/bad-open-mode/) (`PLW1501`)
56+
- [`empty-comment`](https://docs.astral.sh/ruff/rules/empty-comment/) (`PLR2044`)
57+
- [`global-at-module-level`](https://docs.astral.sh/ruff/rules/global-at-module-level/) (`PLW0604`)
58+
- [`misplaced-bare-raise`](https://docs.astral.sh/ruff/rules/misplaced-bare-raise%60/) (`PLE0744`)
59+
- [`non-ascii-import-name`](https://docs.astral.sh/ruff/rules/non-ascii-import-name/) (`PLC2403`)
60+
- [`non-ascii-name`](https://docs.astral.sh/ruff/rules/non-ascii-name/) (`PLC2401`)
61+
- [`nonlocal-and-global`](https://docs.astral.sh/ruff/rules/nonlocal-and-global/) (`PLE0115`)
62+
- [`potential-index-error`](https://docs.astral.sh/ruff/rules/potential-index-error/) (`PLE0643`)
63+
- [`redeclared-assigned-name`](https://docs.astral.sh/ruff/rules/redeclared-assigned-name/) (`PLW0128`)
64+
- [`redefined-argument-from-local`](https://docs.astral.sh/ruff/rules/redefined-argument-from-local/) (`PLR1704`)
65+
- [`repeated-keyword-argument`](https://docs.astral.sh/ruff/rules/repeated-keyword-argument/) (`PLE1132`)
66+
- [`super-without-brackets`](https://docs.astral.sh/ruff/rules/super-without-brackets/) (`PLW0245`)
67+
- [`unnecessary-list-index-lookup`](https://docs.astral.sh/ruff/rules/unnecessary-list-index-lookup/) (`PLR1736`)
68+
- [`useless-exception-statement`](https://docs.astral.sh/ruff/rules/useless-exception-statement/) (`PLW0133`)
69+
- [`useless-with-lock`](https://docs.astral.sh/ruff/rules/useless-with-lock/) (`PLW2101`)
70+
71+
The following behaviors have been stabilized:
72+
73+
- [`is-literal`](https://docs.astral.sh/ruff/rules/is-literal/) (`F632`) now warns for identity checks against list, set or dictionary literals
74+
- [`needless-bool`](https://docs.astral.sh/ruff/rules/needless-bool/) (`SIM103`) now detects `if` expressions with implicit `else` branches
75+
- [`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
76+
- [`type-comparison`](https://docs.astral.sh/ruff/rules/type-comparison/) (`E721`) now allows idioms such as `type(x) is int`
77+
- [`yoda-condition`](https://docs.astral.sh/ruff/rules/yoda-conditions/) (`SIM300`) now flags a wider range of expressions
78+
79+
### Removals
80+
81+
The following deprecated settings have been removed:
82+
83+
- `output-format=text`; use `output-format=concise` or `output-format=full`
84+
- `tab-size`; use `indent-width`
85+
86+
The following deprecated CLI options have been removed:
87+
88+
- `--show-source`; use `--output-format=full`
89+
- `--no-show-source`; use `--output-format=concise`
90+
91+
The following deprecated CLI commands have been removed:
92+
93+
- `ruff <path>`; use `ruff check <path>`
94+
- `ruff --clean`; use `ruff clean`
95+
- `ruff --generate-shell-completion`; use `ruff generate-shell-completion`
96+
97+
### Preview features
98+
99+
- \[`ruff`\] Add `assert-with-print-message` rule ([#11981](https://github.com/astral-sh/ruff/pull/11981))
100+
101+
### CLI
102+
103+
- Use rule name rather than message in `--statistics` ([#11697](https://github.com/astral-sh/ruff/pull/11697))
104+
- Use the output format `full` by default ([#12010](https://github.com/astral-sh/ruff/pull/12010))
105+
- Don't log syntax errors to the console ([#11902](https://github.com/astral-sh/ruff/pull/11902))
106+
107+
### Rule changes
108+
109+
- \[`ruff`\] Fix false positives if `gettext` is imported using an alias (`RUF027`) ([#12025](https://github.com/astral-sh/ruff/pull/12025))
110+
- \[`npy`\] Update `trapz` and `in1d` deprecation (`NPY201`) ([#11948](https://github.com/astral-sh/ruff/pull/11948))
111+
- \[`flake8-bandit`\] Modify diagnostic ranges for shell-related rules ([#10667](https://github.com/astral-sh/ruff/pull/10667))
112+
113+
### Server
114+
115+
- Closing an untitled, unsaved notebook document no longer throws an error ([#11942](https://github.com/astral-sh/ruff/pull/11942))
116+
- Support the usage of tildes and environment variables in `logFile` ([#11945](https://github.com/astral-sh/ruff/pull/11945))
117+
- Add option to configure whether to show syntax errors ([#12059](https://github.com/astral-sh/ruff/pull/12059))
118+
119+
### Bug fixes
120+
121+
- \[`pycodestyle`\] Avoid `E203` for f-string debug expression ([#12024](https://github.com/astral-sh/ruff/pull/12024))
122+
- \[`pep8-naming`\] Match import-name ignores against both name and alias (`N812`, `N817`) ([#12033](https://github.com/astral-sh/ruff/pull/12033))
123+
- \[`pyflakes`\] Detect assignments that shadow definitions (`F811`) ([#11961](https://github.com/astral-sh/ruff/pull/11961))
124+
125+
### Parser
126+
127+
- Emit a syntax error for an empty type parameter list ([#12030](https://github.com/astral-sh/ruff/pull/12030))
128+
- Avoid consuming the newline for unterminated strings ([#12067](https://github.com/astral-sh/ruff/pull/12067))
129+
- Do not include the newline in the unterminated string range ([#12017](https://github.com/astral-sh/ruff/pull/12017))
130+
- Use the correct range to highlight line continuation errors ([#12016](https://github.com/astral-sh/ruff/pull/12016))
131+
- Consider 2-character EOL before line continuations ([#12035](https://github.com/astral-sh/ruff/pull/12035))
132+
- Consider line continuation character for re-lexing ([#12008](https://github.com/astral-sh/ruff/pull/12008))
133+
134+
### Other changes
135+
136+
- Upgrade the Unicode table used for measuring the line-length ([#11194](https://github.com/astral-sh/ruff/pull/11194))
137+
- Remove the deprecation error message for the nursery selector ([#10172](https://github.com/astral-sh/ruff/pull/10172))
138+
3139
## 0.4.10
4140

5141
### Parser

CONTRIBUTING.md

+2-5
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,6 @@ even patch releases may contain [non-backwards-compatible changes](https://semve
348348
1. Merge the PR
349349
1. Run the [release workflow](https://github.com/astral-sh/ruff/actions/workflows/release.yaml) with:
350350
- The new version number (without starting `v`)
351-
- The commit hash of the merged release pull request on `main`
352351
1. The release workflow will do the following:
353352
1. Build all the assets. If this fails (even though we tested in step 4), we haven't tagged or
354353
uploaded anything, you can restart after pushing a fix. If you just need to rerun the build,
@@ -360,10 +359,8 @@ even patch releases may contain [non-backwards-compatible changes](https://semve
360359
1. Attach artifacts to draft GitHub release
361360
1. Trigger downstream repositories. This can fail non-catastrophically, as we can run any
362361
downstream jobs manually if needed.
363-
1. Publish the GitHub release
364-
1. Open the draft release in the GitHub release section
365-
1. Copy the changelog for the release into the GitHub release
366-
- See previous releases for formatting of section headers
362+
1. Verify the GitHub release:
363+
1. The Changelog should match the content of `CHANGELOG.md`
367364
1. Append the contributors from the `bump.sh` script
368365
1. If needed, [update the schemastore](https://github.com/astral-sh/ruff/blob/main/scripts/update_schemastore.py).
369366
1. One can determine if an update is needed when

Cargo.lock

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ Ruff can also be used as a [pre-commit](https://pre-commit.com/) hook via [`ruff
152152
```yaml
153153
- repo: https://github.com/astral-sh/ruff-pre-commit
154154
# Ruff version.
155-
rev: v0.4.10
155+
rev: v0.5.0
156156
hooks:
157157
# Run the linter.
158158
- id: ruff

crates/ruff/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ruff"
3-
version = "0.4.10"
3+
version = "0.5.0"
44
publish = true
55
authors = { workspace = true }
66
edition = { workspace = true }

crates/ruff_linter/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ruff_linter"
3-
version = "0.4.10"
3+
version = "0.5.0"
44
publish = false
55
authors = { workspace = true }
66
edition = { workspace = true }

docs/integrations.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Ruff can be used as a [pre-commit](https://pre-commit.com) hook via [`ruff-pre-c
1414
```yaml
1515
- repo: https://github.com/astral-sh/ruff-pre-commit
1616
# Ruff version.
17-
rev: v0.4.10
17+
rev: v0.5.0
1818
hooks:
1919
# Run the linter.
2020
- id: ruff
@@ -27,7 +27,7 @@ To enable lint fixes, add the `--fix` argument to the lint hook:
2727
```yaml
2828
- repo: https://github.com/astral-sh/ruff-pre-commit
2929
# Ruff version.
30-
rev: v0.4.10
30+
rev: v0.5.0
3131
hooks:
3232
# Run the linter.
3333
- id: ruff
@@ -41,7 +41,7 @@ To run the hooks over Jupyter Notebooks too, add `jupyter` to the list of allowe
4141
```yaml
4242
- repo: https://github.com/astral-sh/ruff-pre-commit
4343
# Ruff version.
44-
rev: v0.4.10
44+
rev: v0.5.0
4545
hooks:
4646
# Run the linter.
4747
- id: ruff

pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "maturin"
44

55
[project]
66
name = "ruff"
7-
version = "0.4.10"
7+
version = "0.5.0"
88
description = "An extremely fast Python linter and code formatter, written in Rust."
99
authors = [{ name = "Astral Software Inc.", email = "[email protected]" }]
1010
readme = "README.md"

scripts/benchmarks/pyproject.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "scripts"
3-
version = "0.4.10"
3+
version = "0.5.0"
44
description = ""
55
authors = ["Charles Marsh <[email protected]>"]
66

0 commit comments

Comments
 (0)