Skip to content

Commit b53118e

Browse files
Bump version to v0.3.0 (#10151)
Co-authored-by: Alex Waygood <[email protected]>
1 parent 52f4c1e commit b53118e

File tree

12 files changed

+295
-82
lines changed

12 files changed

+295
-82
lines changed

BREAKING_CHANGES.md

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

3+
## 0.3.0
4+
5+
### Ruff 2024.2 style
6+
7+
The formatter now formats code according to the Ruff 2024.2 style guide. Read the [changelog](./CHANGELOG.md#030) for a detailed list of stabilized style changes.
8+
9+
### `isort`: Use one blank line after imports in typing stub files ([#9971](https://github.com/astral-sh/ruff/pull/9971))
10+
11+
Previously, Ruff used one or two blank lines (or the number configured by `isort.lines-after-imports`) after imports in typing stub files (`.pyi` files).
12+
The [typing style guide for stubs](https://typing.readthedocs.io/en/latest/source/stubs.html#style-guide) recommends using at most 1 blank line for grouping.
13+
As of this release, `isort` now always uses one blank line after imports in stub files, the same as the formatter.
14+
15+
### `build` is no longer excluded by default ([#10093](https://github.com/astral-sh/ruff/pull/10093))
16+
17+
Ruff maintains a list of directories and files that are excluded by default. This list now consists of the following patterns:
18+
19+
- `.bzr`
20+
- `.direnv`
21+
- `.eggs`
22+
- `.git`
23+
- `.git-rewrite`
24+
- `.hg`
25+
- `.ipynb_checkpoints`
26+
- `.mypy_cache`
27+
- `.nox`
28+
- `.pants.d`
29+
- `.pyenv`
30+
- `.pytest_cache`
31+
- `.pytype`
32+
- `.ruff_cache`
33+
- `.svn`
34+
- `.tox`
35+
- `.venv`
36+
- `.vscode`
37+
- `__pypackages__`
38+
- `_build`
39+
- `buck-out`
40+
- `dist`
41+
- `node_modules`
42+
- `site-packages`
43+
- `venv`
44+
45+
Previously, the `build` directory was included in this list. However, the `build` directory tends to be a not-unpopular directory
46+
name, and excluding it by default caused confusion. Ruff now no longer excludes `build` except if it is excluded by a `.gitignore` file
47+
or because it is listed in `extend-exclude`.
48+
49+
### `--format` is no longer a valid `rule` or `linter` command option
50+
51+
Previously, `ruff rule` and `ruff linter` accepted the `--format <FORMAT>` option as an alias for `--output-format`. Ruff no longer
52+
supports this alias. Please use `ruff rule --output-format <FORMAT>` and `ruff linter --output-format <FORMAT>` instead.
53+
354
## 0.1.9
455

556
### `site-packages` is now excluded by default ([#5513](https://github.com/astral-sh/ruff/pull/5513))

CHANGELOG.md

+65
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,70 @@
11
# Changelog
22

3+
## 0.3.0
4+
5+
This release introduces the new Ruff formatter 2024.2 style and adds a new lint rule to
6+
detect invalid formatter suppression comments.
7+
8+
### Preview features
9+
10+
- \[`flake8-bandit`\] Remove suspicious-lxml-import (`S410`) ([#10154](https://github.com/astral-sh/ruff/pull/10154))
11+
- \[`pycodestyle`\] Allow `os.environ` modifications between imports (`E402`) ([#10066](https://github.com/astral-sh/ruff/pull/10066))
12+
- \[`pycodestyle`\] Don't warn about a single whitespace character before a comma in a tuple (`E203`) ([#10094](https://github.com/astral-sh/ruff/pull/10094))
13+
14+
### Rule changes
15+
16+
- \[`eradicate`\] Detect commented out `case` statements (`ERA001`) ([#10055](https://github.com/astral-sh/ruff/pull/10055))
17+
- \[`eradicate`\] Detect single-line code for `try:`, `except:`, etc. (`ERA001`) ([#10057](https://github.com/astral-sh/ruff/pull/10057))
18+
- \[`flake8-boolean-trap`\] Allow boolean positionals in `__post_init__` ([#10027](https://github.com/astral-sh/ruff/pull/10027))
19+
- \[`flake8-copyright`\] Allow © in copyright notices ([#10065](https://github.com/astral-sh/ruff/pull/10065))
20+
- \[`isort`\]: Use one blank line after imports in typing stub files ([#9971](https://github.com/astral-sh/ruff/pull/9971))
21+
- \[`pylint`\] New Rule `dict-iter-missing-items` (`PLE1141`) ([#9845](https://github.com/astral-sh/ruff/pull/9845))
22+
- \[`pylint`\] Ignore `sys.version` and `sys.platform` (`PLR1714`) ([#10054](https://github.com/astral-sh/ruff/pull/10054))
23+
- \[`pyupgrade`\] Detect literals with unary operators (`UP018`) ([#10060](https://github.com/astral-sh/ruff/pull/10060))
24+
- \[`ruff`\] Expand rule for `list(iterable).pop(0)` idiom (`RUF015`) ([#10148](https://github.com/astral-sh/ruff/pull/10148))
25+
26+
### Formatter
27+
28+
This release introduces the Ruff 2024.2 style, stabilizing the following changes:
29+
30+
- Prefer splitting the assignment's value over the target or type annotation ([#8943](https://github.com/astral-sh/ruff/pull/8943))
31+
- Remove blank lines before class docstrings ([#9154](https://github.com/astral-sh/ruff/pull/9154))
32+
- Wrap multiple context managers in `with` parentheses when targeting Python 3.9 or newer ([#9222](https://github.com/astral-sh/ruff/pull/9222))
33+
- Add a blank line after nested classes with a dummy body (`...`) in typing stub files ([#9155](https://github.com/astral-sh/ruff/pull/9155))
34+
- Reduce vertical spacing for classes and functions with a dummy (`...`) body ([#7440](https://github.com/astral-sh/ruff/issues/7440), [#9240](https://github.com/astral-sh/ruff/pull/9240))
35+
- Add a blank line after the module docstring ([#8283](https://github.com/astral-sh/ruff/pull/8283))
36+
- Parenthesize long type hints in assignments ([#9210](https://github.com/astral-sh/ruff/pull/9210))
37+
- Preserve indent for single multiline-string call-expressions ([#9673](https://github.com/astral-sh/ruff/pull/9637))
38+
- Normalize hex escape and unicode escape sequences ([#9280](https://github.com/astral-sh/ruff/pull/9280))
39+
- Format module docstrings ([#9725](https://github.com/astral-sh/ruff/pull/9725))
40+
41+
### CLI
42+
43+
- Explicitly disallow `extend` as part of a `--config` flag ([#10135](https://github.com/astral-sh/ruff/pull/10135))
44+
- Remove `build` from the default exclusion list ([#10093](https://github.com/astral-sh/ruff/pull/10093))
45+
- Deprecate `ruff <path>`, `ruff --explain`, `ruff --clean`, and `ruff --generate-shell-completion` in favor of `ruff check <path>`, `ruff rule`, `ruff clean`, and `ruff generate-shell-completion` ([#10169](https://github.com/astral-sh/ruff/pull/10169))
46+
- Remove the deprecated CLI option `--format` from `ruff rule` and `ruff linter` ([#10170](https://github.com/astral-sh/ruff/pull/10170))
47+
48+
### Bug fixes
49+
50+
- \[`flake8-bugbear`\] Avoid adding default initializers to stubs (`B006`) ([#10152](https://github.com/astral-sh/ruff/pull/10152))
51+
- \[`flake8-type-checking`\] Respect runtime-required decorators for function signatures ([#10091](https://github.com/astral-sh/ruff/pull/10091))
52+
- \[`pycodestyle`\] Mark fixes overlapping with a multiline string as unsafe (`W293`) ([#10049](https://github.com/astral-sh/ruff/pull/10049))
53+
- \[`pydocstyle`\] Trim whitespace when removing blank lines after section (`D413`) ([#10162](https://github.com/astral-sh/ruff/pull/10162))
54+
- \[`pylint`\] Delete entire statement, including semicolons (`PLR0203`) ([#10074](https://github.com/astral-sh/ruff/pull/10074))
55+
- \[`ruff`\] Avoid f-string false positives in `gettext` calls (`RUF027`) ([#10118](https://github.com/astral-sh/ruff/pull/10118))
56+
- Fix `ruff` crashing on PowerPC systems because of too small page size ([#10080](https://github.com/astral-sh/ruff/pull/10080))
57+
58+
### Performance
59+
60+
- Add cold attribute to less likely printer queue branches in the formatter ([#10121](https://github.com/astral-sh/ruff/pull/10121))
61+
- Skip unnecessary string normalization in the formatter ([#10116](https://github.com/astral-sh/ruff/pull/10116))
62+
63+
### Documentation
64+
65+
- Remove "Beta" Label from formatter documentation ([#10144](https://github.com/astral-sh/ruff/pull/10144))
66+
- `line-length` option: fix link to `pycodestyle.max-line-length` ([#10136](https://github.com/astral-sh/ruff/pull/10136))
67+
368
## 0.2.2
469

570
Highlights include:

Cargo.lock

+3-3
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
@@ -150,7 +150,7 @@ Ruff can also be used as a [pre-commit](https://pre-commit.com/) hook via [`ruff
150150
```yaml
151151
- repo: https://github.com/astral-sh/ruff-pre-commit
152152
# Ruff version.
153-
rev: v0.2.2
153+
rev: v0.3.0
154154
hooks:
155155
# Run the linter.
156156
- 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.2.2"
3+
version = "0.3.0"
44
publish = false
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.2.2"
3+
version = "0.3.0"
44
publish = false
55
authors = { workspace = true }
66
edition = { workspace = true }

0 commit comments

Comments
 (0)