|
| 1 | +# Changelog |
| 2 | + |
| 3 | +This is the first release which uses the `CHANGELOG` file. See [GitHub Releases](https://github.com/astral-sh/ruff/releases) for prior changelog entries. |
| 4 | + |
| 5 | +Read Ruff's new [versioning policy](https://docs.astral.sh/ruff/versioning/). |
| 6 | + |
| 7 | +## 0.1.0 |
| 8 | + |
| 9 | +### Breaking changes |
| 10 | + |
| 11 | +- Unsafe fixes are no longer displayed or applied without opt-in ([#7769](https://github.com/astral-sh/ruff/pull/7769)) |
| 12 | +- Drop formatting specific rules from the default set ([#7900](https://github.com/astral-sh/ruff/pull/7900)) |
| 13 | +- The deprecated `format` setting has been removed ([#7984](https://github.com/astral-sh/ruff/pull/7984)) |
| 14 | + - The `format` setting cannot be used to configure the output format, use `output-format` instead |
| 15 | + - The `RUFF_FORMAT` environment variable is ignored, use `RUFF_OUTPUT_FORMAT` instead |
| 16 | + - The `--format` option has been removed from `ruff check`, use `--output-format` instead |
| 17 | + |
| 18 | +### Rule changes |
| 19 | + |
| 20 | +- Extend `reimplemented-starmap` (`FURB140`) to catch calls with a single and starred argument ([#7768](https://github.com/astral-sh/ruff/pull/7768)) |
| 21 | +- Improve cases covered by `RUF015` ([#7848](https://github.com/astral-sh/ruff/pull/7848)) |
| 22 | +- Update `SIM15` to allow `open` followed by `close` ([#7916](https://github.com/astral-sh/ruff/pull/7916)) |
| 23 | +- Respect `msgspec.Struct` default-copy semantics in `RUF012` ([#7786](https://github.com/astral-sh/ruff/pull/7786)) |
| 24 | +- Add `sqlalchemy` methods to \`flake8-boolean-trap\`\` exclusion list ([#7874](https://github.com/astral-sh/ruff/pull/7874)) |
| 25 | +- Add fix for `PLR1714` ([#7910](https://github.com/astral-sh/ruff/pull/7910)) |
| 26 | +- Add fix for `PIE804` ([#7884](https://github.com/astral-sh/ruff/pull/7884)) |
| 27 | +- Add fix for `PLC0208` ([#7887](https://github.com/astral-sh/ruff/pull/7887)) |
| 28 | +- Add fix for `PYI055` ([#7886](https://github.com/astral-sh/ruff/pull/7886)) |
| 29 | +- Update `non-pep695-type-alias` to require `--unsafe-fixes` outside of stub files ([#7836](https://github.com/astral-sh/ruff/pull/7836)) |
| 30 | +- Improve fix message for `UP018` ([#7913](https://github.com/astral-sh/ruff/pull/7913)) |
| 31 | +- Update `PLW3201` to support `Enum` [sunder names](https://docs.python.org/3/library/enum.html#supported-sunder-names) ([#7987](https://github.com/astral-sh/ruff/pull/7987)) |
| 32 | + |
| 33 | +### Preview features |
| 34 | + |
| 35 | +- Only show warnings for empty preview selectors when enabling rules ([#7842](https://github.com/astral-sh/ruff/pull/7842)) |
| 36 | +- Add `unnecessary-key-check` to simplify `key in dct and dct[key]` to `dct.get(key)` ([#7895](https://github.com/astral-sh/ruff/pull/7895)) |
| 37 | +- Add `assignment-in-assert` to prevent walrus expressions in assert statements ([#7856](https://github.com/astral-sh/ruff/pull/7856)) |
| 38 | +- \[`refurb`\] Add `single-item-membership-test` (`FURB171`) ([#7815](https://github.com/astral-sh/ruff/pull/7815)) |
| 39 | +- \[`pylint`\] Add `and-or-ternary` (`R1706`) ([#7811](https://github.com/astral-sh/ruff/pull/7811)) |
| 40 | + |
| 41 | +_New rules are added in [preview](https://docs.astral.sh/ruff/preview/)._ |
| 42 | + |
| 43 | +### Configuration |
| 44 | + |
| 45 | +- Add `unsafe-fixes` setting ([#7769](https://github.com/astral-sh/ruff/pull/7769)) |
| 46 | +- Add `extend-safe-fixes` and `extend-unsafe-fixes` for promoting and demoting fixes ([#7841](https://github.com/astral-sh/ruff/pull/7841)) |
| 47 | + |
| 48 | +### CLI |
| 49 | + |
| 50 | +- Added `--unsafe-fixes` option for opt-in to display and apply unsafe fixes ([#7769](https://github.com/astral-sh/ruff/pull/7769)) |
| 51 | +- Fix use of deprecated `--format` option in warning ([#7837](https://github.com/astral-sh/ruff/pull/7837)) |
| 52 | +- Show changed files when running under `--check` ([#7788](https://github.com/astral-sh/ruff/pull/7788)) |
| 53 | +- Write summary messages to stderr when fixing via stdin instead of omitting them ([#7838](https://github.com/astral-sh/ruff/pull/7838)) |
| 54 | +- Update fix summary message in `check --diff` to include unsafe fix hints ([#7790](https://github.com/astral-sh/ruff/pull/7790)) |
| 55 | +- Add notebook `cell` field to JSON output format ([#7664](https://github.com/astral-sh/ruff/pull/7664)) |
| 56 | +- Rename applicability levels to `Safe`, `Unsafe`, and `Display` ([#7843](https://github.com/astral-sh/ruff/pull/7843)) |
| 57 | + |
| 58 | +### Bug fixes |
| 59 | + |
| 60 | +- Fix bug where f-strings were allowed in match pattern literal ([#7857](https://github.com/astral-sh/ruff/pull/7857)) |
| 61 | +- Fix `SIM110` with a yield in the condition ([#7801](https://github.com/astral-sh/ruff/pull/7801)) |
| 62 | +- Preserve trailing comments in `C414` fixes ([#7775](https://github.com/astral-sh/ruff/pull/7775)) |
| 63 | +- Check sequence type before triggering `unnecessary-enumerate` `len` suggestion ([#7781](https://github.com/astral-sh/ruff/pull/7781)) |
| 64 | +- Use correct start location for class/function clause header ([#7802](https://github.com/astral-sh/ruff/pull/7802)) |
| 65 | +- Fix incorrect fixes for `SIM101` ([#7798](https://github.com/astral-sh/ruff/pull/7798)) |
| 66 | +- Format comment before parameter default correctly ([#7870](https://github.com/astral-sh/ruff/pull/7870)) |
| 67 | +- Fix `E251` false positive inside f-strings ([#7894](https://github.com/astral-sh/ruff/pull/7894)) |
| 68 | +- Allow bindings to be created and referenced within annotations ([#7885](https://github.com/astral-sh/ruff/pull/7885)) |
| 69 | +- Show per-cell diffs when analyzing notebooks over `stdin` ([#7789](https://github.com/astral-sh/ruff/pull/7789)) |
| 70 | +- Avoid curly brace escape in f-string format spec ([#7780](https://github.com/astral-sh/ruff/pull/7780)) |
| 71 | +- Fix lexing single-quoted f-string with multi-line format spec ([#7787](https://github.com/astral-sh/ruff/pull/7787)) |
| 72 | +- Consider nursery rules to be in-preview for `ruff rule` ([#7812](https://github.com/astral-sh/ruff/pull/7812)) |
| 73 | +- Report precise location for invalid conversion flag ([#7809](https://github.com/astral-sh/ruff/pull/7809)) |
| 74 | +- Visit pattern match guard as a boolean test ([#7911](https://github.com/astral-sh/ruff/pull/7911)) |
| 75 | +- Respect `--unfixable` in `ISC` rules ([#7917](https://github.com/astral-sh/ruff/pull/7917)) |
| 76 | +- Fix edge case with `PIE804` ([#7922](https://github.com/astral-sh/ruff/pull/7922)) |
| 77 | +- Show custom message in `PTH118` for `Path.joinpath` with starred arguments ([#7852](https://github.com/astral-sh/ruff/pull/7852)) |
| 78 | +- Fix false negative in `outdated-version-block` when using greater than comparisons ([#7920](https://github.com/astral-sh/ruff/pull/7920)) |
| 79 | +- Avoid converting f-strings within Django `gettext` calls ([#7898](https://github.com/astral-sh/ruff/pull/7898)) |
| 80 | +- Fix false positive in `PLR6301` ([#7933](https://github.com/astral-sh/ruff/pull/7933)) |
| 81 | +- Treat type aliases as typing-only expressions e.g. resolves false positive in `TCH004` ([#7968](https://github.com/astral-sh/ruff/pull/7968)) |
| 82 | +- Resolve `cache-dir` relative to project root ([#7962](https://github.com/astral-sh/ruff/pull/7962)) |
| 83 | +- Respect subscripted base classes in type-checking rules e.g. resolves false positive in `TCH003` ([#7954](https://github.com/astral-sh/ruff/pull/7954)) |
| 84 | +- Fix JSON schema limit for `line-length` ([#7883](https://github.com/astral-sh/ruff/pull/7883)) |
| 85 | +- Fix commented-out `coalesce` keyword ([#7876](https://github.com/astral-sh/ruff/pull/7876)) |
| 86 | + |
| 87 | +### Documentation |
| 88 | + |
| 89 | +- Document `reimplemented-starmap` performance effects ([#7846](https://github.com/astral-sh/ruff/pull/7846)) |
| 90 | +- Default to following the system dark/light mode ([#7888](https://github.com/astral-sh/ruff/pull/7888)) |
| 91 | +- Add documentation for fixes ([#7901](https://github.com/astral-sh/ruff/pull/7901)) |
| 92 | +- Fix typo in docs of `PLR6301` ([#7831](https://github.com/astral-sh/ruff/pull/7831)) |
| 93 | +- Update `UP038` docs to note that it results in slower code ([#7872](https://github.com/astral-sh/ruff/pull/7872)) |
| 94 | +- crlf -> cr-lf ([#7766](https://github.com/astral-sh/ruff/pull/7766)) |
| 95 | +- Add an example of an unsafe fix ([#7924](https://github.com/astral-sh/ruff/pull/7924)) |
| 96 | +- Fix documented examples for `unnecessary-subscript-reversal` ([#7774](https://github.com/astral-sh/ruff/pull/7774)) |
| 97 | +- Correct error in tuple example in ruff formatter docs ([#7822](https://github.com/astral-sh/ruff/pull/7822)) |
| 98 | +- Add versioning policy to documentation ([#7923](https://github.com/astral-sh/ruff/pull/7923)) |
| 99 | +- Fix invalid code in `FURB177` example ([#7832](https://github.com/astral-sh/ruff/pull/7832)) |
| 100 | + |
| 101 | +### Formatter |
| 102 | + |
| 103 | +- Less scary `ruff format` message ([#7867](https://github.com/astral-sh/ruff/pull/7867)) |
| 104 | +- Remove spaces from import statements ([#7859](https://github.com/astral-sh/ruff/pull/7859)) |
| 105 | +- Formatter quoting for f-strings with triple quotes ([#7826](https://github.com/astral-sh/ruff/pull/7826)) |
| 106 | +- Update `ruff_python_formatter` generate.py comment ([#7850](https://github.com/astral-sh/ruff/pull/7850)) |
| 107 | +- Document one-call chaining deviation ([#7767](https://github.com/astral-sh/ruff/pull/7767)) |
| 108 | +- Allow f-string modifications in line-shrinking cases ([#7818](https://github.com/astral-sh/ruff/pull/7818)) |
| 109 | +- Add trailing comment deviation to README ([#7827](https://github.com/astral-sh/ruff/pull/7827)) |
| 110 | +- Add trailing zero between dot and exponential ([#7956](https://github.com/astral-sh/ruff/pull/7956)) |
| 111 | +- Force parentheses for power operations in unary expressions ([#7955](https://github.com/astral-sh/ruff/pull/7955)) |
| 112 | + |
| 113 | +### Playground |
| 114 | + |
| 115 | +- Fix playground `Quick Fix` action ([#7824](https://github.com/astral-sh/ruff/pull/7824)) |
0 commit comments