diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000000..3f093079c46f8 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,114 @@ +# Changelog + +This is the first release which uses the `CHANGELOG` file. See [GitHub Releases](https://github.com/astral-sh/ruff/releases) for prior changelog entries. + +Read Ruff's new [versioning policy](https://docs.astral.sh/ruff/versioning/). + +## 0.1.0 + +### Breaking changes + +- Unsafe fixes are no longer displayed or applied without opt-in ([#7769](https://github.com/astral-sh/ruff/pull/7769)) +- Drop formatting specific rules from the default set ([#7900](https://github.com/astral-sh/ruff/pull/7900)) +- The deprecated `format` setting has been removed ([#7984](https://github.com/astral-sh/ruff/pull/7984)) + - The `format` setting cannot be used to configure the output format, use `output-format` instead + - The `RUFF_FORMAT` environment variable is ignored, use `RUFF_OUTPUT_FORMAT` instead + - The `--format` option has been removed from `ruff check`, use `--output-format` instead + +### Rule changes + +- Extend `reimplemented-starmap` (`FURB140`) to catch calls with a single and starred argument ([#7768](https://github.com/astral-sh/ruff/pull/7768)) +- Improve cases covered by `RUF015` ([#7848](https://github.com/astral-sh/ruff/pull/7848)) +- Update `SIM15` to allow `open` followed by `close` ([#7916](https://github.com/astral-sh/ruff/pull/7916)) +- Respect `msgspec.Struct` default-copy semantics in `RUF012` ([#7786](https://github.com/astral-sh/ruff/pull/7786)) +- Add `sqlalchemy` methods to \`flake8-boolean-trap\`\` exclusion list ([#7874](https://github.com/astral-sh/ruff/pull/7874)) +- Add fix for `PLR1714` ([#7910](https://github.com/astral-sh/ruff/pull/7910)) +- Add fix for `PIE804` ([#7884](https://github.com/astral-sh/ruff/pull/7884)) +- Add fix for `PLC0208` ([#7887](https://github.com/astral-sh/ruff/pull/7887)) +- Add fix for `PYI055` ([#7886](https://github.com/astral-sh/ruff/pull/7886)) +- Update `non-pep695-type-alias` to require `--unsafe-fixes` outside of stub files ([#7836](https://github.com/astral-sh/ruff/pull/7836)) +- Improve fix message for `UP018` ([#7913](https://github.com/astral-sh/ruff/pull/7913)) + +### Preview features + +- Only show warnings for empty preview selectors when enabling rules ([#7842](https://github.com/astral-sh/ruff/pull/7842)) +- 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)) +- Add `assignment-in-assert` to prevent walrus expressions in assert statements ([#7856](https://github.com/astral-sh/ruff/pull/7856)) +- \[`refurb`\] Add `single-item-membership-test` (`FURB171`) ([#7815](https://github.com/astral-sh/ruff/pull/7815)) +- \[`pylint`\] Add `and-or-ternary` (`R1706`) ([#7811](https://github.com/astral-sh/ruff/pull/7811)) + +_New rules are added in [preview](https://docs.astral.sh/ruff/preview/)._ + +### Configuration + +- Add `unsafe-fixes` setting ([#7769](https://github.com/astral-sh/ruff/pull/7769)) +- Add `extend-safe-fixes` and `extend-unsafe-fixes` for promoting and demoting fixes ([#7841](https://github.com/astral-sh/ruff/pull/7841)) + +### CLI + +- Added `--unsafe-fixes` option for opt-in to display and apply unsafe fixes ([#7769](https://github.com/astral-sh/ruff/pull/7769)) +- Fix use of deprecated `--format` option in warning ([#7837](https://github.com/astral-sh/ruff/pull/7837)) +- Show changed files when running under `--check` ([#7788](https://github.com/astral-sh/ruff/pull/7788)) +- Write summary messages to stderr when fixing via stdin instead of omitting them ([#7838](https://github.com/astral-sh/ruff/pull/7838)) +- Update fix summary message in `check --diff` to include unsafe fix hints ([#7790](https://github.com/astral-sh/ruff/pull/7790)) +- Add notebook `cell` field to JSON output format ([#7664](https://github.com/astral-sh/ruff/pull/7664)) +- Rename applicability levels to `Safe`, `Unsafe`, and `Display` ([#7843](https://github.com/astral-sh/ruff/pull/7843)) + +### Bug fixes + +- Fix bug where f-strings were allowed in match pattern literal ([#7857](https://github.com/astral-sh/ruff/pull/7857)) +- Fix `SIM110` with a yield in the condition ([#7801](https://github.com/astral-sh/ruff/pull/7801)) +- Preserve trailing comments in `C414` fixes ([#7775](https://github.com/astral-sh/ruff/pull/7775)) +- Check sequence type before triggering `unnecessary-enumerate` `len` suggestion ([#7781](https://github.com/astral-sh/ruff/pull/7781)) +- Use correct start location for class/function clause header ([#7802](https://github.com/astral-sh/ruff/pull/7802)) +- Fix incorrect fixes for `SIM101` ([#7798](https://github.com/astral-sh/ruff/pull/7798)) +- Format comment before parameter default correctly ([#7870](https://github.com/astral-sh/ruff/pull/7870)) +- Fix `E251` false positive inside f-strings ([#7894](https://github.com/astral-sh/ruff/pull/7894)) +- Allow bindings to be created and referenced within annotations ([#7885](https://github.com/astral-sh/ruff/pull/7885)) +- Show per-cell diffs when analyzing notebooks over `stdin` ([#7789](https://github.com/astral-sh/ruff/pull/7789)) +- Avoid curly brace escape in f-string format spec ([#7780](https://github.com/astral-sh/ruff/pull/7780)) +- Fix lexing single-quoted f-string with multi-line format spec ([#7787](https://github.com/astral-sh/ruff/pull/7787)) +- Consider nursery rules to be in-preview for `ruff rule` ([#7812](https://github.com/astral-sh/ruff/pull/7812)) +- Report precise location for invalid conversion flag ([#7809](https://github.com/astral-sh/ruff/pull/7809)) +- Visit pattern match guard as a boolean test ([#7911](https://github.com/astral-sh/ruff/pull/7911)) +- Respect `--unfixable` in `ISC` rules ([#7917](https://github.com/astral-sh/ruff/pull/7917)) +- Fix edge case with `PIE804` ([#7922](https://github.com/astral-sh/ruff/pull/7922)) +- Show custom message in `PTH118` for `Path.joinpath` with starred arguments ([#7852](https://github.com/astral-sh/ruff/pull/7852)) +- Fix false negative in `outdated-version-block` when using greater than comparisons ([#7920](https://github.com/astral-sh/ruff/pull/7920)) +- Avoid converting f-strings within Django `gettext` calls ([#7898](https://github.com/astral-sh/ruff/pull/7898)) +- Fix false positive in `PLR6301` ([#7933](https://github.com/astral-sh/ruff/pull/7933)) +- Treat type aliases as typing-only expressions e.g. resolves false positive in `TCH004` ([#7968](https://github.com/astral-sh/ruff/pull/7968)) +- Resolve `cache-dir` relative to project root ([#7962](https://github.com/astral-sh/ruff/pull/7962)) +- Respect subscripted base classes in type-checking rules e.g. resolves false positive in `TCH003` ([#7954](https://github.com/astral-sh/ruff/pull/7954)) +- Fix JSON schema limit for `line-length` ([#7883](https://github.com/astral-sh/ruff/pull/7883)) +- Fix commented-out `coalesce` keyword ([#7876](https://github.com/astral-sh/ruff/pull/7876)) + +### Documentation + +- Document `reimplemented-starmap` performance effects ([#7846](https://github.com/astral-sh/ruff/pull/7846)) +- Default to following the system dark/light mode ([#7888](https://github.com/astral-sh/ruff/pull/7888)) +- Add documentation for fixes ([#7901](https://github.com/astral-sh/ruff/pull/7901)) +- Fix typo in docs of `PLR6301` ([#7831](https://github.com/astral-sh/ruff/pull/7831)) +- Update `UP038` docs to note that it results in slower code ([#7872](https://github.com/astral-sh/ruff/pull/7872)) +- crlf -> cr-lf ([#7766](https://github.com/astral-sh/ruff/pull/7766)) +- Add an example of an unsafe fix ([#7924](https://github.com/astral-sh/ruff/pull/7924)) +- Fix documented examples for `unnecessary-subscript-reversal` ([#7774](https://github.com/astral-sh/ruff/pull/7774)) +- Correct error in tuple example in ruff formatter docs ([#7822](https://github.com/astral-sh/ruff/pull/7822)) +- Add versioning policy to documentation ([#7923](https://github.com/astral-sh/ruff/pull/7923)) +- Fix invalid code in `FURB177` example ([#7832](https://github.com/astral-sh/ruff/pull/7832)) + +### Formatter + +- Less scary `ruff format` message ([#7867](https://github.com/astral-sh/ruff/pull/7867)) +- Remove spaces from import statements ([#7859](https://github.com/astral-sh/ruff/pull/7859)) +- Formatter quoting for f-strings with triple quotes ([#7826](https://github.com/astral-sh/ruff/pull/7826)) +- Update `ruff_python_formatter` generate.py comment ([#7850](https://github.com/astral-sh/ruff/pull/7850)) +- Document one-call chaining deviation ([#7767](https://github.com/astral-sh/ruff/pull/7767)) +- Allow f-string modifications in line-shrinking cases ([#7818](https://github.com/astral-sh/ruff/pull/7818)) +- Add trailing comment deviation to README ([#7827](https://github.com/astral-sh/ruff/pull/7827)) +- Add trailing zero between dot and exponential ([#7956](https://github.com/astral-sh/ruff/pull/7956)) +- Force parentheses for power operations in unary expressions ([#7955](https://github.com/astral-sh/ruff/pull/7955)) + +### Playground + +- Fix playground `Quick Fix` action ([#7824](https://github.com/astral-sh/ruff/pull/7824)) diff --git a/Cargo.lock b/Cargo.lock index 610f9691c4fe7..4f7cfecf40b3c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -810,7 +810,7 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flake8-to-ruff" -version = "0.0.292" +version = "0.1.0" dependencies = [ "anyhow", "clap", @@ -2051,7 +2051,7 @@ dependencies = [ [[package]] name = "ruff_cli" -version = "0.0.292" +version = "0.1.0" dependencies = [ "annotate-snippets 0.9.1", "anyhow", @@ -2188,7 +2188,7 @@ dependencies = [ [[package]] name = "ruff_linter" -version = "0.0.292" +version = "0.1.0" dependencies = [ "aho-corasick", "annotate-snippets 0.9.1", diff --git a/README.md b/README.md index b500bd945a263..d68ccfadf0874 100644 --- a/README.md +++ b/README.md @@ -140,7 +140,7 @@ Ruff can also be used as a [pre-commit](https://pre-commit.com) hook: ```yaml - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.0.292 + rev: v0.1.0 hooks: - id: ruff ``` diff --git a/crates/flake8_to_ruff/Cargo.toml b/crates/flake8_to_ruff/Cargo.toml index f1cbf4046bd47..0d0dd2931cb39 100644 --- a/crates/flake8_to_ruff/Cargo.toml +++ b/crates/flake8_to_ruff/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "flake8-to-ruff" -version = "0.0.292" +version = "0.1.0" description = """ Convert Flake8 configuration files to Ruff configuration files. """ diff --git a/crates/ruff_cli/Cargo.toml b/crates/ruff_cli/Cargo.toml index f30caa7552ccc..d8f2b7d4d292b 100644 --- a/crates/ruff_cli/Cargo.toml +++ b/crates/ruff_cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_cli" -version = "0.0.292" +version = "0.1.0" publish = false authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_linter/Cargo.toml b/crates/ruff_linter/Cargo.toml index 33d0470aa94fb..b385d5b28a84a 100644 --- a/crates/ruff_linter/Cargo.toml +++ b/crates/ruff_linter/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_linter" -version = "0.0.292" +version = "0.1.0" publish = false authors = { workspace = true } edition = { workspace = true } diff --git a/docs/tutorial.md b/docs/tutorial.md index 7f5e5506bdae8..6eb932ce003a4 100644 --- a/docs/tutorial.md +++ b/docs/tutorial.md @@ -247,7 +247,7 @@ This tutorial has focused on Ruff's command-line interface, but Ruff can also be ```yaml - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.0.292 + rev: v0.1.0 hooks: - id: ruff ``` diff --git a/docs/usage.md b/docs/usage.md index 81a56aba70672..0cab2a5c5e6ce 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -23,7 +23,7 @@ Ruff can also be used as a [pre-commit](https://pre-commit.com) hook: ```yaml - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.0.292 + rev: v0.1.0 hooks: - id: ruff ``` @@ -33,7 +33,7 @@ Or, to enable fixes: ```yaml - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.0.292 + rev: v0.1.0 hooks: - id: ruff args: [ --fix, --exit-non-zero-on-fix ] @@ -44,7 +44,7 @@ Or, to run the hook on Jupyter Notebooks too: ```yaml - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.0.292 + rev: v0.1.0 hooks: - id: ruff types_or: [python, pyi, jupyter] diff --git a/pyproject.toml b/pyproject.toml index 5c5cc803df143..6db724b115698 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "ruff" -version = "0.0.292" +version = "0.1.0" description = "An extremely fast Python linter, written in Rust." authors = [{ name = "Astral Software Inc.", email = "hey@astral.sh" }] readme = "README.md"