|
1 | 1 | # Changelog
|
2 | 2 |
|
| 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 | + |
3 | 68 | ## 0.2.2
|
4 | 69 |
|
5 | 70 | Highlights include:
|
|
0 commit comments