diff --git a/.github/ISSUE_TEMPLATE/1_bug_report.yaml b/.github/ISSUE_TEMPLATE/1_bug_report.yaml index 7b7f22d36f..8866504e18 100644 --- a/.github/ISSUE_TEMPLATE/1_bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/1_bug_report.yaml @@ -26,6 +26,6 @@ body: attributes: label: Version description: What version of ruff are you using? (see `ruff version`) - placeholder: e.g., ruff 0.16.10 + placeholder: e.g., ruff 0.17.0 validations: required: false diff --git a/.github/ISSUE_TEMPLATE/3_question.yaml b/.github/ISSUE_TEMPLATE/3_question.yaml index 5c2d546b2c..758b029e3c 100644 --- a/.github/ISSUE_TEMPLATE/3_question.yaml +++ b/.github/ISSUE_TEMPLATE/3_question.yaml @@ -13,6 +13,6 @@ body: attributes: label: Version description: What version of ruff are you using? (see `ruff version`) - placeholder: e.g., ruff 0.16.10 + placeholder: e.g., ruff 0.17.0 validations: required: false diff --git a/BREAKING_CHANGES.md b/BREAKING_CHANGES.md index b141a59199..7b93796b8e 100644 --- a/BREAKING_CHANGES.md +++ b/BREAKING_CHANGES.md @@ -1,5 +1,83 @@ # Breaking Changes +## 0.17.0 + +- **Default to Python 3.11** + + Ruff now defaults to Python 3.11 instead of 3.10 if no Python version is configured using + [`target-version`](https://docs.astral.sh/ruff/settings/#target-version) or + [`project.requires-python`](https://docs.astral.sh/ruff/configuration/#inferring-the-python-version). + +- **Default to Python 3.15 for syntax errors** + + Ruff now defaults to Python 3.15 instead of 3.14 when checking for syntax errors without a + configured Python version. This allows Python 3.15 syntax, including lazy imports, without an + explicit target version. The default for version-dependent lint rules is Python 3.11. + +- **Updated default rules** + + Ruff no longer enables [`DTZ001`](https://docs.astral.sh/ruff/rules/call-datetime-without-tzinfo/), + [`DTZ005`](https://docs.astral.sh/ruff/rules/call-datetime-now-without-tzinfo/), + [`DTZ006`](https://docs.astral.sh/ruff/rules/call-datetime-fromtimestamp/), + [`DTZ007`](https://docs.astral.sh/ruff/rules/call-datetime-strptime-without-zone/), + [`DTZ011`](https://docs.astral.sh/ruff/rules/call-date-today/), + [`DTZ012`](https://docs.astral.sh/ruff/rules/call-date-fromtimestamp/), or + [`DTZ901`](https://docs.astral.sh/ruff/rules/datetime-min-max/) + by default. These rules restrict the use of timezone-naive dates and datetimes, which are + appropriate in many applications. The other `DTZ` rules remain in the default rule set. + + [`F406`](https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage/), + which corresponds to a syntax error, is now enabled by default. + +- **`datetime` import convention** + + [`unconventional-import-alias`](https://docs.astral.sh/ruff/rules/unconventional-import-alias/) + (`ICN001`) now expects the `datetime` module to be imported as `dt`. + +- **Unicode dummy variable names** + + The default [`lint.dummy-variable-rgx`](https://docs.astral.sh/ruff/settings/#lint_dummy-variable-rgx) + now treats underscore-prefixed Unicode names, such as `_次` or `_é`, as dummy variables. + +- **Unicode 17** + + Ruff now uses Unicode 17 data for identifier normalization and named character escapes. + +- **Unsafe fixes and manual suggestions in CLI output** + + The default `full` output format now displays all suggested fix diffs, including unsafe fixes + and suggestions that require manual review. Enabling + [`unsafe-fixes`](https://docs.astral.sh/ruff/settings/#unsafe-fixes) in the configuration or + passing `--unsafe-fixes` alongside `--fix` are still required to _apply_ unsafe fixes. + +- **JUnit output** + + The `junit` output format now uses `skipped` instead of `disabled` on `` elements and + adds a `skipped` attribute to the root `` element. + +- **Pragma comments and line length** + + The formatter, [`unsorted-imports`](https://docs.astral.sh/ruff/rules/unsorted-imports/) (`I001`), + [`line-too-long`](https://docs.astral.sh/ruff/rules/line-too-long/) (`E501`), and + [`doc-line-too-long`](https://docs.astral.sh/ruff/rules/doc-line-too-long/) (`W505`) now + consistently ignore trailing pragma comments when computing line length. This resolved several + bugs involving interactions between these rules but may also cause existing imports to be + reformatted. + +- **conda-forge package** + + The conda-forge build no longer depends on Python, now supports linux-riscv64, win-arm64, and + linux-ppc64le platforms, and now includes shell completions. However, no longer depending on + Python means that `python -m ruff` and `import ruff` will no longer work. Use `ruff` directly from + `PATH` instead. PyPI installations and those from the standalone installer are unaffected. + +- **Removal of `ruff-lsp` support** + + Support for `ruff-lsp`, the legacy Python language server [deprecated in Ruff + v0.9.5](https://github.com/astral-sh/ruff/releases/tag/0.9.5), has been removed. The Ruff VS Code + extension now always uses the native language server; `ruff.nativeServer` is deprecated and + ignored. See the [migration guide](https://docs.astral.sh/ruff/editors/migration/). + ## 0.16.0 - **New default rules** diff --git a/CHANGELOG.md b/CHANGELOG.md index c4c36c44cf..b13bc37e63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,590 +1,125 @@ # Changelog -## 0.16.10 +## 0.17.0 -Released on 2026-10-01. - -### Preview features - -- Add a migration guide for categories ([#28087](https://github.com/astral-sh/ruff/pull/28087)) -- \[`pyupgrade`\] Add rule for context manager iterator annotations (`UP052`) ([#29000](https://github.com/astral-sh/ruff/pull/29000)) - -### Performance - -- Reduce memory used by diagnostics ([#28951](https://github.com/astral-sh/ruff/pull/28951)) - -### Server - -- Avoid running `uv format` in untrusted workspaces ([#28873](https://github.com/astral-sh/ruff/pull/28873)) - -### Documentation - -- Fix links to moved changelog sections and renamed mdtests ([#28941](https://github.com/astral-sh/ruff/pull/28941)) -- Add Python 3.15 as a supported version ([#28907](https://github.com/astral-sh/ruff/pull/28907)) -- Add ty as a type checker example ([#28906](https://github.com/astral-sh/ruff/pull/28906)) - -### Other changes - -- Update Rust toolchain to 1.99 and MSRV to 1.97 ([#29047](https://github.com/astral-sh/ruff/pull/29047)) - -### Contributors - -- [@ntBre](https://github.com/ntBre) -- [@spaceone](https://github.com/spaceone) -- [@HardMax71](https://github.com/HardMax71) -- [@charliermarsh](https://github.com/charliermarsh) - -## 0.16.9 - -Released on 2026-09-24. - -### Preview features - -- \[`ruff`\] Avoid false positives for overloaded division (`RUF069`) ([#28309](https://github.com/astral-sh/ruff/pull/28309)) - -### Bug fixes - -- \[`flake8-bugbear`\] Avoid false positives for calls with keyword arguments (`B009`, `B010`, `B043`) ([#28776](https://github.com/astral-sh/ruff/pull/28776)) -- \[`flake8-tidy-imports`\] Allow lazy imports to be used in deferred annotations (`TID255`) ([#28767](https://github.com/astral-sh/ruff/pull/28767)) - -### Rule changes - -- Update LibCST-based fixes for Python 3.15 ([#28616](https://github.com/astral-sh/ruff/pull/28616)) -- \[`flake8-pyi`\] Mention stubs in the diagnostic message (`PYI002`) ([#28542](https://github.com/astral-sh/ruff/pull/28542)) - -### Documentation - -- Fix horizontal overflow on the rules documentation page ([#28699](https://github.com/astral-sh/ruff/pull/28699)) -- Update rules table with category information ([#28651](https://github.com/astral-sh/ruff/pull/28651)) -- \[`flake8-annotations`\] Clarify that `ANN401` checks return types in addition to arguments ([#28334](https://github.com/astral-sh/ruff/pull/28334)) -- \[`flake8-bugbear`\] Document type-checker interaction (`B010`) ([#28509](https://github.com/astral-sh/ruff/pull/28509)) -- \[`flake8-comprehensions`\] Document `map`/generator exception behavior (`C417`) ([#27794](https://github.com/astral-sh/ruff/pull/27794)) -- \[`ruff`\] Mention related isort settings (`RUF022`) ([#28719](https://github.com/astral-sh/ruff/pull/28719)) - -### Contributors - -- [@qinpei-dev](https://github.com/qinpei-dev) -- [@sanjayrohith](https://github.com/sanjayrohith) -- [@ntBre](https://github.com/ntBre) -- [@webdevsamran](https://github.com/webdevsamran) -- [@zaniebot](https://github.com/zaniebot) -- [@ewdurbin](https://github.com/ewdurbin) -- [@MichaReiser](https://github.com/MichaReiser) -- [@spaceone](https://github.com/spaceone) -- [@IbrahimKhan12](https://github.com/IbrahimKhan12) -- [@devtechedge](https://github.com/devtechedge) -- [@GruffElixir](https://github.com/GruffElixir) - -## 0.16.8 - -Released on 2026-09-16. - -### Bug fixes - -- Visit functional `TypedDict` keyword arguments correctly ([#28584](https://github.com/astral-sh/ruff/pull/28584)) -- \[`flake8-simplify`\] Detect nested `async with` under sync parent (`SIM117`) ([#27821](https://github.com/astral-sh/ruff/pull/27821)) -- \[`flake8-simplify`\] Preserve operand order in `SIM109` fix ([#27824](https://github.com/astral-sh/ruff/pull/27824)) -- \[`pyupgrade`\] Preserve required parentheses in multiline `UP040` fixes ([#28164](https://github.com/astral-sh/ruff/pull/28164)) -- \[`pyupgrade`\] Skip `TypeVarTuple` and `ParamSpec` conversions with bounds or constraints (`UP040`, `UP046`, `UP047`) ([#28505](https://github.com/astral-sh/ruff/pull/28505)) - -### Rule changes - -- Add support for `__lazy_modules__` ([#28459](https://github.com/astral-sh/ruff/pull/28459)) -- Recognize PEP-728 `TypedDict` class keywords ([#28533](https://github.com/astral-sh/ruff/pull/28533)) -- Recognize quoted types in `typing.TypeForm` ([#28507](https://github.com/astral-sh/ruff/pull/28507)) -- Support conditional assignment to `__lazy_modules__` ([#28491](https://github.com/astral-sh/ruff/pull/28491)) -- \[`flake8-type-checking`\] Prefer lazy imports over `TYPE_CHECKING` on Python 3.15 and later (`TC001`, `TC002`, `TC003`) ([#28541](https://github.com/astral-sh/ruff/pull/28541)) -- \[`pyupgrade`\] Make the fix for `UP040` always unsafe ([#28526](https://github.com/astral-sh/ruff/pull/28526)) -- \[`pyupgrade`\] Stop recommending deprecated `ByteString` aliases (`UP035`) ([#28498](https://github.com/astral-sh/ruff/pull/28498)) -- \[`ruff`, `flake8-use-pathlib`\] Recognize the `parent_mode` argument (`RUF064`, `PTH103`) ([#28528](https://github.com/astral-sh/ruff/pull/28528)) -- \[`ruff`\] Detect `\Z` in `pytest.raises()` match patterns (`RUF043`) ([#28598](https://github.com/astral-sh/ruff/pull/28598)) - -### CLI - -- Use rule name and code in formatter incompatibility warnings ([#28571](https://github.com/astral-sh/ruff/pull/28571)) - -### Configuration - -- \[`flake8-tidy-imports`\] Add `extend-banned-api` ([#28644](https://github.com/astral-sh/ruff/pull/28644)) - -### Contributors - -- [@VedantMadane](https://github.com/VedantMadane) -- [@alzeph](https://github.com/alzeph) -- [@charliermarsh](https://github.com/charliermarsh) -- [@fredrikblau](https://github.com/fredrikblau) -- [@ntBre](https://github.com/ntBre) -- [@zsol](https://github.com/zsol) -- [@Aniket-a14](https://github.com/Aniket-a14) -- [@r-b-1](https://github.com/r-b-1) - -## 0.16.7 - -Released on 2026-09-10. - -### Preview features - -- \[`ruff`\] Add rule for default values on method receivers (`RUF077`) ([#26700](https://github.com/astral-sh/ruff/pull/26700)) -- \[`ruff`\] Recognize `re.prefixmatch` (`RUF039`, `RUF055`) ([#28311](https://github.com/astral-sh/ruff/pull/28311)) - -### Bug fixes - -- Alternate nested quotes inside format spec interpolations ([#28259](https://github.com/astral-sh/ruff/pull/28259)) -- \[`flake8-implicit-str-concat`\] Mark fix unsafe when it creates a docstring (`ISC003`) ([#27981](https://github.com/astral-sh/ruff/pull/27981)) -- \[`flake8-tidy-imports`\] Skip fixes for multi-member imports (`TID254`) ([#26584](https://github.com/astral-sh/ruff/pull/26584)) -- \[`pylint`\] Gate `ImportCycleError` on Python 3.15 (`PLW0133`) ([#28310](https://github.com/astral-sh/ruff/pull/28310)) - -### Rule changes - -- Correct `D211` and `D203` rule conflict diagnostic ([#28444](https://github.com/astral-sh/ruff/pull/28444)) -- Recognize `slice` and `frozendict` generics ([#28477](https://github.com/astral-sh/ruff/pull/28477)) -- Stop defining `__cached__` for Python 3.15 ([#28476](https://github.com/astral-sh/ruff/pull/28476)) -- \[`pyupgrade`\] Stop recommending removed `typing.no_type_check_decorator` (`UP035`) ([#28475](https://github.com/astral-sh/ruff/pull/28475)) - -### Performance - -- Reuse parser name lookups when interning ([#28399](https://github.com/astral-sh/ruff/pull/28399)) -- Speed up inherited configuration resolution ([#28299](https://github.com/astral-sh/ruff/pull/28299)) - -### Documentation - -- Fix `line-length` path in `--config` example ([#28392](https://github.com/astral-sh/ruff/pull/28392)) -- Remove the "Who’s Using Ruff?" list ([#28455](https://github.com/astral-sh/ruff/pull/28455)) - -### Other changes - -- Embed archive checksums in the shell installer ([#28281](https://github.com/astral-sh/ruff/pull/28281)) - -### Contributors - -- [@The-Compiler](https://github.com/The-Compiler) -- [@mdiniz97](https://github.com/mdiniz97) -- [@zsol](https://github.com/zsol) -- [@gorewilliams](https://github.com/gorewilliams) -- [@RafaelJohn9](https://github.com/RafaelJohn9) -- [@qatcod](https://github.com/qatcod) -- [@zanieb](https://github.com/zanieb) -- [@MichaReiser](https://github.com/MichaReiser) -- [@ntBre](https://github.com/ntBre) -- [@charliermarsh](https://github.com/charliermarsh) -- [@nightt5879](https://github.com/nightt5879) -- [@jonathandung](https://github.com/jonathandung) -- [@jogo-openai](https://github.com/jogo-openai) - -## 0.16.6 - -Released on 2026-09-03. - -### Preview features - -- Move `pytest-fixture-autouse` to the `restriction` category ([#28219](https://github.com/astral-sh/ruff/pull/28219)) -- \[`flake8-pytest-style`\] Add an autofix for `PT020` ([#27993](https://github.com/astral-sh/ruff/pull/27993)) -- \[`flake8-tidy-imports`\] Prevent fix loop between `TID254` and `TID255` ([#28262](https://github.com/astral-sh/ruff/pull/28262)) -- \[`isort`\] Exclude pragma comments from line length calculation (`I001`) ([#27313](https://github.com/astral-sh/ruff/pull/27313)) - -### Bug fixes - -- Validate unary expressions when parsing ([#28233](https://github.com/astral-sh/ruff/pull/28233)) -- \[`flake8-async`, `pylint`\] Recognize `builtins.open` (`ASYNC230`, `PLW1514`) ([#28021](https://github.com/astral-sh/ruff/pull/28021)) -- \[`flake8-bugbear`\] Fix panic on `match` subjects (`B031`) ([#27781](https://github.com/astral-sh/ruff/pull/27781)) -- \[`flake8-datetimez`\] Reject `tzinfo=None` for `datetime` bounds (`DTZ901`) ([#28022](https://github.com/astral-sh/ruff/pull/28022)) -- \[`flake8-pytest-style`\] Avoid duplicate `PT017` diagnostics ([#27918](https://github.com/astral-sh/ruff/pull/27918)) -- \[`ruff`\] Remove `lint.external` hint for Ruff-specific suppressions (`RUF102`) ([#27923](https://github.com/astral-sh/ruff/pull/27923)) - -### Rule changes - -- \[`flake8-use-pathlib`\] Add display-only fix for `os.listdir` (`PTH208`) ([#28027](https://github.com/astral-sh/ruff/pull/28027)) - -### Documentation - -- Add another example and glob reference for `lint.per-file-ignores` ([#28106](https://github.com/astral-sh/ruff/pull/28106)) -- Add duplicate work guidance ([#28229](https://github.com/astral-sh/ruff/pull/28229)) -- \[`flake8-async`\] Document thread offloading (`ASYNC240`) ([#28008](https://github.com/astral-sh/ruff/pull/28008)) -- \[`pyupgrade`\] Clarify default `encoding` argument handling (`UP012`) ([#27315](https://github.com/astral-sh/ruff/pull/27315)) - -### Other changes - -- Allow unary plus in match patterns on Python 3.15 ([#28231](https://github.com/astral-sh/ruff/pull/28231)) - -### Contributors - -- [@flying-sheep](https://github.com/flying-sheep) -- [@pikammmmm](https://github.com/pikammmmm) -- [@fly1d](https://github.com/fly1d) -- [@waterWang](https://github.com/waterWang) -- [@Pierre-Sassoulas](https://github.com/Pierre-Sassoulas) -- [@ntBre](https://github.com/ntBre) -- [@jelle-openai](https://github.com/jelle-openai) -- [@ericbuehl](https://github.com/ericbuehl) -- [@tjkuson](https://github.com/tjkuson) -- [@AbhinavMir](https://github.com/AbhinavMir) -- [@Whning0513](https://github.com/Whning0513) -- [@chirizxc](https://github.com/chirizxc) - -## 0.16.5 - -Released on 2026-08-27. - -### Preview features - -- Allow rules without codes ([#28049](https://github.com/astral-sh/ruff/pull/28049)) -- Introduce category selectors ([#27666](https://github.com/astral-sh/ruff/pull/27666)) -- Update preview default rules and categories ([#27877](https://github.com/astral-sh/ruff/pull/27877)) - -### Bug fixes - -- \[`flake8-async`\] Detect blocking generic HTTP requests (`ASYNC210`) ([#28024](https://github.com/astral-sh/ruff/pull/28024)) -- \[`flake8-datetimez`\] Allow timezone-safe `strptime` chains (`DTZ007`) ([#28023](https://github.com/astral-sh/ruff/pull/28023)) -- \[`flake8-simplify`\] Respect side effects in `lambda` defaults (`SIM401`) ([#28000](https://github.com/astral-sh/ruff/pull/28000)) - -### Server - -- Fix duplicated "of" in `ClientOptions` doc comment ([#27978](https://github.com/astral-sh/ruff/pull/27978)) - -### Documentation - -- Document rule acceptance guidelines ([#27910](https://github.com/astral-sh/ruff/pull/27910)) -- Document the new category selectors ([#27906](https://github.com/astral-sh/ruff/pull/27906)) - -### Contributors - -- [@AlexWaygood](https://github.com/AlexWaygood) -- [@sharkdp](https://github.com/sharkdp) -- [@jelle-openai](https://github.com/jelle-openai) -- [@charliermarsh](https://github.com/charliermarsh) -- [@ntBre](https://github.com/ntBre) -- [@aarushkandukoori](https://github.com/aarushkandukoori) - -## 0.16.4 - -Released on 2026-08-20. - -### Preview features - -- \[`flake8-use-pathlib`\] Add autofix for `PTH116` ([#26460](https://github.com/astral-sh/ruff/pull/26460)) -- \[`refurb`\] Restrict `delete-full-slice` to lists (`FURB131`) ([#27711](https://github.com/astral-sh/ruff/pull/27711)) -- \[`refurb`\] Skip `FURB101` and `FURB103` when the `open` argument is a file descriptor ([#27643](https://github.com/astral-sh/ruff/pull/27643)) - -### Bug fixes - -- Fix `InvalidInstruction` on Windows CPUs that do not support `POPCNT` ([#27803](https://github.com/astral-sh/ruff/pull/27803)) -- \[`pyflakes`\] Emit semantic syntax errors in string type definitions as `F722` ([#27835](https://github.com/astral-sh/ruff/pull/27835)) -- \[`pylint`\] Allow `os._exit` imports in `import-private-name` (`PLC2701`) ([#27738](https://github.com/astral-sh/ruff/pull/27738)) - -### Rule changes - -- [syntax-errors] Align mixed t-string/bytes error message with CPython 3.14 ([#27766](https://github.com/astral-sh/ruff/pull/27766)) -- \[`ruff`\] Add `ctypes.LittleEndianStructure` and related types to existing exception (`RUF012`) ([#27753](https://github.com/astral-sh/ruff/pull/27753)) -- [syntax-errors] Detect duplicate keyword arguments ([#17804](https://github.com/astral-sh/ruff/pull/17804)) -- [syntax-errors] Detect parameters declared `nonlocal` ([#27628](https://github.com/astral-sh/ruff/pull/27628)) - -### Server - -- Offer display-only fixes and mark safe fixes preferred ([#27807](https://github.com/astral-sh/ruff/pull/27807)) -- Support pull diagnostics for notebook cells ([#27779](https://github.com/astral-sh/ruff/pull/27779)) - -### Documentation - -- Add default indicator to rules table ([#27724](https://github.com/astral-sh/ruff/pull/27724)) -- Fix broken link to Python docs ([#27757](https://github.com/astral-sh/ruff/pull/27757)) - -### Other changes - -- Fix s390x stacker assembly in release builds ([#27776](https://github.com/astral-sh/ruff/pull/27776)) -- Guarantee minimum stack size when parsing a module, standalone expression, and suites ([#25464](https://github.com/astral-sh/ruff/pull/25464)) -- Reduce configuration deserialization code size ([#27924](https://github.com/astral-sh/ruff/pull/27924)) -- Check packed AST index bounds ([#27849](https://github.com/astral-sh/ruff/pull/27849)) - -### Contributors - -- [@AbhinavMir](https://github.com/AbhinavMir) -- [@eduardorittner](https://github.com/eduardorittner) -- [@royb3](https://github.com/royb3) -- [@MichaReiser](https://github.com/MichaReiser) -- [@carljm](https://github.com/carljm) -- [@rosstitmarsh](https://github.com/rosstitmarsh) -- [@ntBre](https://github.com/ntBre) -- [@zaniebot](https://github.com/zaniebot) -- [@ewdurbin](https://github.com/ewdurbin) -- [@woodruffw](https://github.com/woodruffw) -- [@Sacrimento](https://github.com/Sacrimento) -- [@lakshayxi](https://github.com/lakshayxi) -- [@WhiteFox0-0](https://github.com/WhiteFox0-0) -- [@baltasarblanco](https://github.com/baltasarblanco) - -## 0.16.3 - -Released on 2026-08-13. - -### Preview features - -- \[`pylint`\] Fix false negatives on negative numbers (`PLR6104`) ([#27251](https://github.com/astral-sh/ruff/pull/27251)) -- \[`pyupgrade`\] Add rule to replace `while 1` with `while True` (`UP048`) ([#27190](https://github.com/astral-sh/ruff/pull/27190)) - -### Bug fixes - -- \[`flake8-bandit`\] Also check keyword arguments (`S602`, `S603`, `S607`, `S609`) ([#27687](https://github.com/astral-sh/ruff/pull/27687)) -- \[`pylint`\] Allow `continue` in `finally` on Python 3.8 ([#27626](https://github.com/astral-sh/ruff/pull/27626)) -- \[`pylint`\] Fix `PLE1307` false positive with bools ([#27651](https://github.com/astral-sh/ruff/pull/27651)) -- \[`pylint`\] Fix false positives and negatives with `%b` format character (`PLE1300`, `PLE1307`) ([#27560](https://github.com/astral-sh/ruff/pull/27560)) -- \[`pylint`\] Improve handling of concatenated strings (`PLE1300`) ([#27659](https://github.com/astral-sh/ruff/pull/27659)) - -### Rule changes - -- \[`numpy`\] Make `np.chararray` autofix backwards-compatible (`NPY201`) ([#27527](https://github.com/astral-sh/ruff/pull/27527)) - -### Performance - -- Enable PGO for Linux x86-64 Ruff releases ([#27570](https://github.com/astral-sh/ruff/pull/27570)) -- Enable PGO for Linux ARM64 Ruff releases ([#27574](https://github.com/astral-sh/ruff/pull/27574)) -- Enable PGO for Windows x86-64 Ruff releases ([#27573](https://github.com/astral-sh/ruff/pull/27573)) -- Enable PGO for macOS ARM64 Ruff releases ([#27572](https://github.com/astral-sh/ruff/pull/27572)) -- Reduce `Expr` size to 64 bytes ([#27591](https://github.com/astral-sh/ruff/pull/27591)) - -### CLI - -- Hyperlink rule codes in `ruff check --statistics` output ([#27646](https://github.com/astral-sh/ruff/pull/27646)) - -### Documentation - -- \[`ruff`\] Also suggest `asyncio.TaskGroup` (`RUF006`) ([#27461](https://github.com/astral-sh/ruff/pull/27461)) - -### Other changes - -- Use mimalloc v3 ([#27586](https://github.com/astral-sh/ruff/pull/27586)) - -### Contributors - -- [@Andrej730](https://github.com/Andrej730) -- [@alonfaraj](https://github.com/alonfaraj) -- [@romero-deshaw](https://github.com/romero-deshaw) -- [@Avasam](https://github.com/Avasam) -- [@tjkuson](https://github.com/tjkuson) -- [@charliermarsh](https://github.com/charliermarsh) -- [@chirizxc](https://github.com/chirizxc) -- [@saberoueslati](https://github.com/saberoueslati) -- [@MichaReiser](https://github.com/MichaReiser) - -## 0.16.2 - -Released on 2026-08-06. - -### Bug fixes - -- \[`flake8-pyi`\] Avoid false positives on `singledispatch` functions (`PYI041`) ([#27335](https://github.com/astral-sh/ruff/pull/27335)) - -### Server - -- Register formatting capabilities dynamically to exclude TOML files ([#27332](https://github.com/astral-sh/ruff/pull/27332)) - -### Contributors - -- [@MeGaGiGaGon](https://github.com/MeGaGiGaGon) -- [@charliermarsh](https://github.com/charliermarsh) -- [@epage](https://github.com/epage) -- [@sharkdp](https://github.com/sharkdp) -- [@ntBre](https://github.com/ntBre) - -## 0.16.1 - -Released on 2026-07-30. - -### Preview features - -- Add an option to opt out of human-readable names ([#27160](https://github.com/astral-sh/ruff/pull/27160)) -- \[`flake8-pytest-style`\] Make fixes safe by default and unsafe only when comments are present (`PT018`) ([#27201](https://github.com/astral-sh/ruff/pull/27201)) -- \[`pyupgrade`\] Skip fix when a defaulted `TypeVar` precedes a non-defaulted one (`UP040`, `UP046`, `UP047`) ([#27133](https://github.com/astral-sh/ruff/pull/27133)) -- \[`ruff`\] Fix false positive with unpacked arguments (`RUF065`) ([#26959](https://github.com/astral-sh/ruff/pull/26959)) - -### Bug fixes - -- Bump `gen-lsp-types` to gracefully handle unknown enumeration values in LSP messages ([#27230](https://github.com/astral-sh/ruff/pull/27230)) -- \[`flake8-bugbear`\] Mark `range` as immutable (`B008`) ([#27247](https://github.com/astral-sh/ruff/pull/27247)) -- \[`flake8-comprehensions`\] NFKC-normalize keyword names in `C408` fix ([#26813](https://github.com/astral-sh/ruff/pull/26813)) -- \[`flake8-return`\] Fix false positive when variable is read in `finally` clause (`RET504`) ([#25441](https://github.com/astral-sh/ruff/pull/25441)) -- \[`pydocstyle`\] Skip section detection inside RST directive bodies (`D214`, `D405`, `D413`) ([#23635](https://github.com/astral-sh/ruff/pull/23635)) -- \[`refurb`\] Parenthesize `yield` arguments in the `FURB192` fix ([#27192](https://github.com/astral-sh/ruff/pull/27192)) - -### Rule changes - -- \[`flake8-pytest-style`\] Mark `PT022` fixes as unsafe ([#26440](https://github.com/astral-sh/ruff/pull/26440)) -- \[`refurb`\] Mark fixes that remove unknown separators as unsafe (`FURB105`) ([#27200](https://github.com/astral-sh/ruff/pull/27200)) - -### Server - -- Fix indexing of excluded nested Ruff workspaces ([#27303](https://github.com/astral-sh/ruff/pull/27303)) -- Lint TOML files in the LSP ([#26862](https://github.com/astral-sh/ruff/pull/26862)) - -### Documentation - -- Cover `pycon` Markdown formatting ([#27153](https://github.com/astral-sh/ruff/pull/27153)) -- \[`flake8-bandit`\] Document `TYPE_CHECKING` exception (`S101`) ([#27004](https://github.com/astral-sh/ruff/pull/27004)) -- \[`flake8-import-conventions`\] Document that `extend-aliases` can override default aliases ([#27191](https://github.com/astral-sh/ruff/pull/27191)) -- \[`pylint`\] Add missing fix safety gotchas for `non-augmented-assignment` (`PLR6104`) ([#27250](https://github.com/astral-sh/ruff/pull/27250)) - -### Other changes - -- Reduce syntax error noise by swallowing dedents like indents ([#27170](https://github.com/astral-sh/ruff/pull/27170)) -- Vendor latest annotate-snippets ([#27033](https://github.com/astral-sh/ruff/pull/27033)) - -### Contributors - -- [@bxff](https://github.com/bxff) -- [@anishgirianish](https://github.com/anishgirianish) -- [@Avasam](https://github.com/Avasam) -- [@epage](https://github.com/epage) -- [@LHMQ878](https://github.com/LHMQ878) -- [@MichaReiser](https://github.com/MichaReiser) -- [@ntBre](https://github.com/ntBre) -- [@HarshalPatel1972](https://github.com/HarshalPatel1972) -- [@mjpieters](https://github.com/mjpieters) -- [@joshuavetos](https://github.com/joshuavetos) -- [@jesco-absolute](https://github.com/jesco-absolut) -- [@vidigoat](https://github.com/vidigoat) -- [@baltasarblanco](https://github.com/baltasarblanco) -- [@ribru17](https://github.com/ribru17) -- [@oh-summy](https://github.com/oh-summy) -- [@Jayashanker-Padishala](https://github.com/Jayashanker-Padishala) - -## 0.16.0 - -Released on 2026-07-23. - -Check out the [blog post](https://astral.sh/blog/ruff-v0.16.0) for a migration -guide and overview of the changes! +Released on 2026-10-09. ### Breaking changes -- Ruff now enables a much larger set of rules by default (413, up from 59). See the blog post for - more details and the new [Default Rules](https://docs.astral.sh/ruff/default-rules/) page for a - full listing of the enabled rules. Note that this is primarily an expansion, but 18 of the more - opinionated pycodestyle (`E`) and pyflakes (`F`) rules have been removed from the default set: - `E401`, `E402`, `E701`, `E702`, `E703`, `E711`, `E712`, `E713`, `E714`, `E721`, `E731`, `E741`, - `E742`, `E743`, `F403`, `F405`, `F406`, and `F722`. +- Update the default and latest Python versions for 3.15 ([#28792](https://github.com/astral-sh/ruff/pull/28792)) -- Ruff can now format Python code blocks in Markdown files and will do this by default. See the - [documentation](https://docs.astral.sh/ruff/formatter/#markdown-code-formatting) for more details. + Ruff now defaults to Python 3.11 instead of 3.10 when no Python version is configured through + [`target-version`](https://docs.astral.sh/ruff/settings/#target-version) or + [`requires-python`](https://docs.astral.sh/ruff/configuration/#inferring-the-python-version). When + checking for syntax errors without a configured Python version, Ruff now defaults to Python 3.15 + instead of 3.14. -- Ruff now supports `ruff: ignore` comments at the ends of lines, like `noqa` comments, or on the line preceding a diagnostic. For example, these both suppress an [`unused-import`](https://docs.astral.sh/ruff/rules/unused-import/) (`F401`) diagnostic: +- Update the default rule set ([#28786](https://github.com/astral-sh/ruff/pull/28786)) - ```py - import math # ruff: ignore[F401] + Several of the `flake8-datetimez` rules + ([`DTZ001`](https://docs.astral.sh/ruff/rules/call-datetime-without-tzinfo/), + [`DTZ005`](https://docs.astral.sh/ruff/rules/call-datetime-now-without-tzinfo/), + [`DTZ006`](https://docs.astral.sh/ruff/rules/call-datetime-fromtimestamp/), + [`DTZ007`](https://docs.astral.sh/ruff/rules/call-datetime-strptime-without-zone/), + [`DTZ011`](https://docs.astral.sh/ruff/rules/call-date-today/), + [`DTZ012`](https://docs.astral.sh/ruff/rules/call-date-fromtimestamp/), and + [`DTZ901`](https://docs.astral.sh/ruff/rules/datetime-min-max/)) are no longer enabled by default, + while [`undefined-local-with-nested-import-star-usage`](https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage/) + (`F406`), which corresponds to a syntax error, is now enabled by default. - # ruff: ignore[F401] - import os - ``` +- Update Rust crate quick-junit to 0.8.0 ([#27295](https://github.com/astral-sh/ruff/pull/27295)) -- Fixes are now shown in `check` and `format --check` output: + JUnit output now uses a `skipped` attribute instead of `disabled` on `` elements and + includes a `skipped` attribute on the root `` element. - ````console - ❯ ruff format --check . - unformatted: File would be reformatted - --> try.md:1:1 - | - 1 | ```python - - import math - 2 + import math - 3 | ``` - | +- \[`flake8-import-conventions`\] Add `datetime as dt` as a conventional alias (`ICN001`) ([#28790](https://github.com/astral-sh/ruff/pull/28790)) - 1 file would be reformatted - ```` +- Support Unicode dummy variable names ([#28722](https://github.com/astral-sh/ruff/pull/28722)) - This example also shows off the Markdown formatting. + The default [`lint.dummy-variable-rgx`](https://docs.astral.sh/ruff/settings/#lint_dummy-variable-rgx) + now recognizes underscore-prefixed Unicode names, such as `_次`, as dummy variables. -- `format --check` now supports the same output formats as the linter, including the `github` and - `gitlab` outputs for rendering annotations in CI: +- Update to Unicode 17 ([#21229](https://github.com/astral-sh/ruff/pull/21229), [#28784](https://github.com/astral-sh/ruff/pull/28784)) - ```console - ❯ ruff format --check --output-format github . - ::error title=ruff (unformatted),file=try.md,line=2,col=8,endLine=2,endColumn=10::try.md:2:8: unformatted: File would be reformatted - ``` + Ruff now uses Unicode 17 data for identifier normalization and named character escapes (`"\N{...}"`). - See the CLI help or [documentation](https://docs.astral.sh/ruff/settings/#output-format) for the - full list of supported formats. +- Always show unsafe and display-only fixes in the CLI ([#27810](https://github.com/astral-sh/ruff/pull/27810)) -- The `filename`, `location`, `end_location`, `fix.edits[].location`, and `fix.edits[].end_location` - fields in the JSON output format may now be `null` rather than defaulting to the empty string and - row 1, column 1, respectively. + The default `full` output format now shows unsafe fixes and suggestions requiring manual review, + regardless of the [`unsafe-fixes`](https://docs.astral.sh/ruff/settings/#unsafe-fixes) setting. + Actually applying unsafe fixes still requires explicit opt-in. + +- Remove the Python dependency from conda-forge builds ([conda-forge/ruff-feedstock#361](https://github.com/conda-forge/ruff-feedstock/pull/361)) + + The conda-forge build no longer depends on Python, now supports linux-riscv64, win-arm64, and + linux-ppc64le platforms, and now includes shell completions. However, no longer depending on + Python means that `python -m ruff` and `import ruff` will no longer work. Use `ruff` directly from + `PATH` instead. PyPI installations and those from the standalone installer are unaffected. + +- Remove support for ruff-lsp ([#28750](https://github.com/astral-sh/ruff/pull/28750)) + + Support for `ruff-lsp`, the legacy Python language server [deprecated in Ruff + v0.9.5](https://github.com/astral-sh/ruff/releases/tag/0.9.5), has been removed. The Ruff VS Code + extension now always uses the native language server; `ruff.nativeServer` is deprecated and + ignored. See the [migration guide](https://docs.astral.sh/ruff/editors/migration/). ### Stabilization The following rules have been stabilized and are no longer in preview: -- [`airflow3-incompatible-function-signature`](https://docs.astral.sh/ruff/rules/airflow3-incompatible-function-signature) - (`AIR303`) -- [`missing-copyright-notice`](https://docs.astral.sh/ruff/rules/missing-copyright-notice) - (`CPY001`) -- [`unnecessary-from-float`](https://docs.astral.sh/ruff/rules/unnecessary-from-float) (`FURB164`) -- [`sorted-min-max`](https://docs.astral.sh/ruff/rules/sorted-min-max) (`FURB192`) -- [`implicit-string-concatenation-in-collection-literal`](https://docs.astral.sh/ruff/rules/implicit-string-concatenation-in-collection-literal) - (`ISC004`) -- [`log-exception-outside-except-handler`](https://docs.astral.sh/ruff/rules/log-exception-outside-except-handler) - (`LOG004`) -- [`invalid-bool-return-type`](https://docs.astral.sh/ruff/rules/invalid-bool-return-type) - (`PLE0304`) -- [`too-many-positional-arguments`](https://docs.astral.sh/ruff/rules/too-many-positional-arguments) - (`PLR0917`) -- [`stop-iteration-return`](https://docs.astral.sh/ruff/rules/stop-iteration-return) (`PLR1708`) -- [`none-not-at-end-of-union`](https://docs.astral.sh/ruff/rules/none-not-at-end-of-union) - (`RUF036`) -- [`access-annotations-from-class-dict`](https://docs.astral.sh/ruff/rules/access-annotations-from-class-dict) - (`RUF063`) -- [`duplicate-entry-in-dunder-all`](https://docs.astral.sh/ruff/rules/duplicate-entry-in-dunder-all) - (`RUF068`) +- [`lazy-import-mismatch`](https://docs.astral.sh/ruff/rules/lazy-import-mismatch) (`TID254`) +- [`lazy-import-immediately-resolved`](https://docs.astral.sh/ruff/rules/lazy-import-immediately-resolved) + (`TID255`) +- [`os-path-commonprefix`](https://docs.astral.sh/ruff/rules/os-path-commonprefix) (`RUF071`) The following behaviors have been stabilized: -- [`blind-except`](https://docs.astral.sh/ruff/rules/blind-except) (`BLE001`) is now suppressed when - the exception is logged via `logging` methods other than `critical`, `error` and `exception`. -- [`future-required-type-annotation`](https://docs.astral.sh/ruff/rules/future-required-type-annotation) - (`FA102`) now checks for additional [PEP 585](https://peps.python.org/pep-0585/)-compatible - APIs, such as those from `collections.abc`. -- [`f-string-in-get-text-func-call`](https://docs.astral.sh/ruff/rules/f-string-in-get-text-func-call) - (`INT001`), - [`format-in-get-text-func-call`](https://docs.astral.sh/ruff/rules/format-in-get-text-func-call) - (`INT002`), and - [`printf-in-get-text-func-call`](https://docs.astral.sh/ruff/rules/printf-in-get-text-func-call) - (`INT003`) now check for additional common ways of using the `gettext` module, such as assigning - it to `builtins._`. -- [`suspicious-url-open-usage`](https://docs.astral.sh/ruff/rules/suspicious-url-open-usage) - (`S310`) now resolves local string literal bindings to avoid more false positives. -- [`snmp-insecure-version`](https://docs.astral.sh/ruff/rules/snmp-insecure-version) (`S508`) and - [`snmp-weak-cryptography`](https://docs.astral.sh/ruff/rules/snmp-weak-cryptography) (`S509`) now - support the recommended API from newer versions of PySNMP. -- [`typing-text-str-alias`](https://docs.astral.sh/ruff/rules/typing-text-str-alias) (`UP019`) now - recognizes `typing_extensions.Text` in addition to `typing.Text`. +- The formatter, [`unsorted-imports`](https://docs.astral.sh/ruff/rules/unsorted-imports/) (`I001`), + [`line-too-long`](https://docs.astral.sh/ruff/rules/line-too-long/) (`E501`), and + [`doc-line-too-long`](https://docs.astral.sh/ruff/rules/doc-line-too-long/) (`W505`) now + consistently ignore trailing pragma comments when computing line length. This resolved several + bugs involving interactions between these rules + ([#27313](https://github.com/astral-sh/ruff/pull/27313)) but may also cause existing imports to be + reformatted and was thus classified as a breaking change. ### Preview features -- \[`pyupgrade`\] Fix false positive with `TypeVar` default before Python 3.13 (`UP040`) ([#26888](https://github.com/astral-sh/ruff/pull/26888)) +- \[`flake8-bugbear`\] Report the method name and a more precise range (`B005`) ([#27050](https://github.com/astral-sh/ruff/pull/27050)) +- \[`refurb`\] Mark fix unsafe and move to `suspicious` (`FURB152`) ([#28405](https://github.com/astral-sh/ruff/pull/28405)) +- \[`ruff`\] Allow docstrings in strict mode (`RUF067`) ([#28679](https://github.com/astral-sh/ruff/pull/28679)) ### Bug fixes -- \[`ruff`\] Fix missing check on unrecognized early bound (`RUF016`) ([#26986](https://github.com/astral-sh/ruff/pull/26986)) +- \[`flake8-builtins`\] Expand checks in class scopes (`A001`) ([#29076](https://github.com/astral-sh/ruff/pull/29076)) +- \[`flake8-self`\] Allow private access on `object.__new__(cls)` instances (`SLF001`) ([#29001](https://github.com/astral-sh/ruff/pull/29001)) +- \[`flake8-tidy-imports`\] Skip `lazy-import-mismatch` in stubs (`TID254`) ([#29095](https://github.com/astral-sh/ruff/pull/29095)) +- \[`flake8-type-checking`\] Add the notion of runtime-ambiguous references ([#26508](https://github.com/astral-sh/ruff/pull/26508)) +- \[`flake8-type-checking`\] Never flag annotations in function scopes ([#29183](https://github.com/astral-sh/ruff/pull/29183)) +- \[`pyflakes`\] Mark the fix as unsafe when it creates a docstring (`F541`) ([#28258](https://github.com/astral-sh/ruff/pull/28258)) +- \[`pylint`\] Preserve trailing comments in `useless-return` fix (`PLR1711`) ([#29180](https://github.com/astral-sh/ruff/pull/29180)) +- \[`ruff`\] Avoid false positive when `pytest.raises` is used in a `with` statement (`RUF061`) ([#28186](https://github.com/astral-sh/ruff/pull/28186)) ### Rule changes -- Insert a space after the colon in Ruff suppression comments ([#27123](https://github.com/astral-sh/ruff/pull/27123)) - -### Performance - -- \[`pyupgrade`\] Speed up `unnecessary-future-import` (`UP010`) ([#27047](https://github.com/astral-sh/ruff/pull/27047)) - -### Documentation - -- \[`ruff`\] Add missing period in "Why is this bad?" section (`RUF200`) ([#26930](https://github.com/astral-sh/ruff/pull/26930)) -- \[`flake8-simplify`\] Clarify `os.environ` behavior on Windows (`SIM112`) ([#26972](https://github.com/astral-sh/ruff/pull/26972)) -- \[`pydocstyle`\] Document fix safety (`D400`) ([#26971](https://github.com/astral-sh/ruff/pull/26971)) +- \[`pyupgrade`\] Suggest `typing.TypeForm` on Python 3.15 (`UP035`) ([#29084](https://github.com/astral-sh/ruff/pull/29084)) ### Contributors -- [@jonathandung](https://github.com/jonathandung) -- [@Joosboy](https://github.com/Joosboy) -- [@MichaReiser](https://github.com/MichaReiser) -- [@Andrej730](https://github.com/Andrej730) -- [@ntBre](https://github.com/ntBre) -- [@zaniebot](https://github.com/zaniebot) +- [@DeviousCardi](https://github.com/DeviousCardi) +- [@hugehoo](https://github.com/hugehoo) +- [@nekomario28](https://github.com/nekomario28) +- [@Daverball](https://github.com/Daverball) +- [@Viicos](https://github.com/Viicos) +- [@DebadityaHait](https://github.com/DebadityaHait) +- [@saberoueslati](https://github.com/saberoueslati) +- [@baltasarblanco](https://github.com/baltasarblanco) +- [@yxshee](https://github.com/yxshee) +- [@lognd](https://github.com/lognd) +- [@dor-sr](https://github.com/dor-sr) + +## 0.16.x + +See [changelogs/0.16.x](./changelogs/0.16.x.md) ## 0.15.x diff --git a/Cargo.lock b/Cargo.lock index eea9459924..7040921f75 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3084,7 +3084,7 @@ dependencies = [ [[package]] name = "ruff" -version = "0.16.10" +version = "0.17.0" dependencies = [ "anyhow", "assert_fs", @@ -3148,7 +3148,7 @@ dependencies = [ [[package]] name = "ruff_annotate_snippets" -version = "0.0.16" +version = "0.0.17" dependencies = [ "anstream 1.0.0", "anstyle", @@ -3192,7 +3192,7 @@ dependencies = [ [[package]] name = "ruff_cache" -version = "0.0.16" +version = "0.0.17" dependencies = [ "char_str", "filetime", @@ -3206,14 +3206,14 @@ dependencies = [ [[package]] name = "ruff_command_line" -version = "0.0.16" +version = "0.0.17" dependencies = [ "argfile", ] [[package]] name = "ruff_db" -version = "0.0.16" +version = "0.0.17" dependencies = [ "anstyle", "arc-swap", @@ -3304,7 +3304,7 @@ dependencies = [ [[package]] name = "ruff_diagnostics" -version = "0.0.16" +version = "0.0.17" dependencies = [ "get-size2", "is-macro", @@ -3314,7 +3314,7 @@ dependencies = [ [[package]] name = "ruff_formatter" -version = "0.0.16" +version = "0.0.17" dependencies = [ "drop_bomb", "ruff_cache", @@ -3330,7 +3330,7 @@ dependencies = [ [[package]] name = "ruff_graph" -version = "0.0.16" +version = "0.0.17" dependencies = [ "anyhow", "clap", @@ -3351,7 +3351,7 @@ dependencies = [ [[package]] name = "ruff_index" -version = "0.0.16" +version = "0.0.17" dependencies = [ "get-size2", "ruff_macros", @@ -3361,7 +3361,7 @@ dependencies = [ [[package]] name = "ruff_linter" -version = "0.16.10" +version = "0.17.0" dependencies = [ "aho-corasick", "anyhow", @@ -3424,7 +3424,7 @@ dependencies = [ [[package]] name = "ruff_macros" -version = "0.0.16" +version = "0.0.17" dependencies = [ "heck", "itertools 0.15.0", @@ -3437,7 +3437,7 @@ dependencies = [ [[package]] name = "ruff_markdown" -version = "0.0.16" +version = "0.0.17" dependencies = [ "insta", "regex", @@ -3468,14 +3468,14 @@ dependencies = [ [[package]] name = "ruff_memory_usage" -version = "0.0.16" +version = "0.0.17" dependencies = [ "get-size2", ] [[package]] name = "ruff_notebook" -version = "0.0.16" +version = "0.0.17" dependencies = [ "anyhow", "rand 0.10.2", @@ -3491,14 +3491,14 @@ dependencies = [ [[package]] name = "ruff_options_metadata" -version = "0.0.16" +version = "0.0.17" dependencies = [ "serde", ] [[package]] name = "ruff_python_ast" -version = "0.0.16" +version = "0.0.17" dependencies = [ "aho-corasick", "arrayvec", @@ -3535,7 +3535,7 @@ dependencies = [ [[package]] name = "ruff_python_codegen" -version = "0.0.16" +version = "0.0.17" dependencies = [ "ruff_python_ast", "ruff_python_literal", @@ -3547,7 +3547,7 @@ dependencies = [ [[package]] name = "ruff_python_edits" -version = "0.0.16" +version = "0.0.17" dependencies = [ "ruff_python_ast", "ruff_python_parser", @@ -3557,7 +3557,7 @@ dependencies = [ [[package]] name = "ruff_python_formatter" -version = "0.0.16" +version = "0.0.17" dependencies = [ "anyhow", "clap", @@ -3590,7 +3590,7 @@ dependencies = [ [[package]] name = "ruff_python_importer" -version = "0.0.16" +version = "0.0.17" dependencies = [ "anyhow", "insta", @@ -3605,7 +3605,7 @@ dependencies = [ [[package]] name = "ruff_python_index" -version = "0.0.16" +version = "0.0.17" dependencies = [ "ruff_python_ast", "ruff_python_parser", @@ -3616,7 +3616,7 @@ dependencies = [ [[package]] name = "ruff_python_literal" -version = "0.0.16" +version = "0.0.17" dependencies = [ "bitflags 2.13.1", "icu_normalizer", @@ -3627,7 +3627,7 @@ dependencies = [ [[package]] name = "ruff_python_parser" -version = "0.0.16" +version = "0.0.17" dependencies = [ "anyhow", "bitflags 2.13.1", @@ -3658,7 +3658,7 @@ dependencies = [ [[package]] name = "ruff_python_semantic" -version = "0.0.16" +version = "0.0.17" dependencies = [ "bitflags 2.13.1", "insta", @@ -3679,7 +3679,7 @@ dependencies = [ [[package]] name = "ruff_python_stdlib" -version = "0.0.16" +version = "0.0.17" dependencies = [ "bitflags 2.13.1", "unicode-ident", @@ -3687,7 +3687,7 @@ dependencies = [ [[package]] name = "ruff_python_trivia" -version = "0.0.16" +version = "0.0.17" dependencies = [ "itertools 0.15.0", "memchr", @@ -3710,7 +3710,7 @@ dependencies = [ [[package]] name = "ruff_ranged_value" -version = "0.0.16" +version = "0.0.17" dependencies = [ "get-size2", "ruff_db", @@ -3723,7 +3723,7 @@ dependencies = [ [[package]] name = "ruff_server" -version = "0.0.16" +version = "0.0.17" dependencies = [ "anyhow", "crossbeam", @@ -3767,7 +3767,7 @@ dependencies = [ [[package]] name = "ruff_source_file" -version = "0.0.16" +version = "0.0.17" dependencies = [ "get-size2", "memchr", @@ -3777,7 +3777,7 @@ dependencies = [ [[package]] name = "ruff_text_size" -version = "0.0.16" +version = "0.0.17" dependencies = [ "get-size2", "schemars", @@ -3788,7 +3788,7 @@ dependencies = [ [[package]] name = "ruff_unicode_names2" -version = "0.0.16" +version = "0.0.17" dependencies = [ "phf 0.11.3", "rand 0.8.5", @@ -3797,7 +3797,7 @@ dependencies = [ [[package]] name = "ruff_unicode_names2_generator" -version = "0.0.16" +version = "0.0.17" dependencies = [ "phf_codegen", "rand 0.8.5", @@ -3805,7 +3805,7 @@ dependencies = [ [[package]] name = "ruff_wasm" -version = "0.16.10" +version = "0.17.0" dependencies = [ "console_error_panic_hook", "console_log", @@ -3832,7 +3832,7 @@ dependencies = [ [[package]] name = "ruff_workspace" -version = "0.0.16" +version = "0.0.17" dependencies = [ "anyhow", "colored", @@ -4714,7 +4714,7 @@ dependencies = [ [[package]] name = "ty_combine" -version = "0.0.16" +version = "0.0.17" dependencies = [ "ordermap", "ruff_db", @@ -4795,7 +4795,7 @@ dependencies = [ [[package]] name = "ty_module_resolver" -version = "0.0.16" +version = "0.0.17" dependencies = [ "anyhow", "camino", @@ -4874,7 +4874,7 @@ dependencies = [ [[package]] name = "ty_python_core" -version = "0.0.16" +version = "0.0.17" dependencies = [ "anyhow", "bitflags 2.13.1", @@ -4909,7 +4909,7 @@ dependencies = [ [[package]] name = "ty_python_semantic" -version = "0.0.16" +version = "0.0.17" dependencies = [ "anyhow", "bitflags 2.13.1", @@ -5009,7 +5009,7 @@ dependencies = [ [[package]] name = "ty_site_packages" -version = "0.0.16" +version = "0.0.17" dependencies = [ "camino", "colored", @@ -5030,7 +5030,7 @@ dependencies = [ [[package]] name = "ty_static" -version = "0.0.16" +version = "0.0.17" dependencies = [ "ruff_macros", ] @@ -5063,7 +5063,7 @@ dependencies = [ [[package]] name = "ty_vendored" -version = "0.0.16" +version = "0.0.17" dependencies = [ "path-slash", "ruff_db", diff --git a/Cargo.toml b/Cargo.toml index 2b3cca90a4..03b948d730 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -14,55 +14,55 @@ license = "MIT" [workspace.dependencies] char_str = { version = "0.0.4", default-features = false, features = ["std"] } -ruff = { version = "0.16.10", path = "crates/ruff" } -ruff_annotate_snippets = { version = "0.0.16", path = "crates/ruff_annotate_snippets" } -ruff_cache = { version = "0.0.16", path = "crates/ruff_cache" } -ruff_command_line = { version = "0.0.16", path = "crates/ruff_command_line" } -ruff_db = { version = "0.0.16", path = "crates/ruff_db", default-features = false } -ruff_diagnostics = { version = "0.0.16", path = "crates/ruff_diagnostics" } -ruff_formatter = { version = "0.0.16", path = "crates/ruff_formatter" } -ruff_graph = { version = "0.0.16", path = "crates/ruff_graph" } -ruff_index = { version = "0.0.16", path = "crates/ruff_index" } -ruff_linter = { version = "0.16.10", path = "crates/ruff_linter" } -ruff_macros = { version = "0.0.16", path = "crates/ruff_macros" } -ruff_markdown = { version = "0.0.16", path = "crates/ruff_markdown" } -ruff_memory_usage = { version = "0.0.16", path = "crates/ruff_memory_usage" } -ruff_notebook = { version = "0.0.16", path = "crates/ruff_notebook" } -ruff_options_metadata = { version = "0.0.16", path = "crates/ruff_options_metadata" } -ruff_python_ast = { version = "0.0.16", path = "crates/ruff_python_ast" } -ruff_python_codegen = { version = "0.0.16", path = "crates/ruff_python_codegen" } -ruff_python_edits = { version = "0.0.16", path = "crates/ruff_python_edits" } -ruff_python_formatter = { version = "0.0.16", path = "crates/ruff_python_formatter" } -ruff_python_importer = { version = "0.0.16", path = "crates/ruff_python_importer" } -ruff_python_index = { version = "0.0.16", path = "crates/ruff_python_index" } -ruff_python_literal = { version = "0.0.16", path = "crates/ruff_python_literal" } -ruff_python_parser = { version = "0.0.16", path = "crates/ruff_python_parser" } -ruff_python_semantic = { version = "0.0.16", path = "crates/ruff_python_semantic" } -ruff_python_stdlib = { version = "0.0.16", path = "crates/ruff_python_stdlib" } -ruff_python_trivia = { version = "0.0.16", path = "crates/ruff_python_trivia" } -ruff_server = { version = "0.0.16", path = "crates/ruff_server" } -ruff_source_file = { version = "0.0.16", path = "crates/ruff_source_file" } +ruff = { version = "0.17.0", path = "crates/ruff" } +ruff_annotate_snippets = { version = "0.0.17", path = "crates/ruff_annotate_snippets" } +ruff_cache = { version = "0.0.17", path = "crates/ruff_cache" } +ruff_command_line = { version = "0.0.17", path = "crates/ruff_command_line" } +ruff_db = { version = "0.0.17", path = "crates/ruff_db", default-features = false } +ruff_diagnostics = { version = "0.0.17", path = "crates/ruff_diagnostics" } +ruff_formatter = { version = "0.0.17", path = "crates/ruff_formatter" } +ruff_graph = { version = "0.0.17", path = "crates/ruff_graph" } +ruff_index = { version = "0.0.17", path = "crates/ruff_index" } +ruff_linter = { version = "0.17.0", path = "crates/ruff_linter" } +ruff_macros = { version = "0.0.17", path = "crates/ruff_macros" } +ruff_markdown = { version = "0.0.17", path = "crates/ruff_markdown" } +ruff_memory_usage = { version = "0.0.17", path = "crates/ruff_memory_usage" } +ruff_notebook = { version = "0.0.17", path = "crates/ruff_notebook" } +ruff_options_metadata = { version = "0.0.17", path = "crates/ruff_options_metadata" } +ruff_python_ast = { version = "0.0.17", path = "crates/ruff_python_ast" } +ruff_python_codegen = { version = "0.0.17", path = "crates/ruff_python_codegen" } +ruff_python_edits = { version = "0.0.17", path = "crates/ruff_python_edits" } +ruff_python_formatter = { version = "0.0.17", path = "crates/ruff_python_formatter" } +ruff_python_importer = { version = "0.0.17", path = "crates/ruff_python_importer" } +ruff_python_index = { version = "0.0.17", path = "crates/ruff_python_index" } +ruff_python_literal = { version = "0.0.17", path = "crates/ruff_python_literal" } +ruff_python_parser = { version = "0.0.17", path = "crates/ruff_python_parser" } +ruff_python_semantic = { version = "0.0.17", path = "crates/ruff_python_semantic" } +ruff_python_stdlib = { version = "0.0.17", path = "crates/ruff_python_stdlib" } +ruff_python_trivia = { version = "0.0.17", path = "crates/ruff_python_trivia" } +ruff_server = { version = "0.0.17", path = "crates/ruff_server" } +ruff_source_file = { version = "0.0.17", path = "crates/ruff_source_file" } ruff_mdtest = { path = "crates/ruff_mdtest" } -ruff_ranged_value = { version = "0.0.16", path = "crates/ruff_ranged_value" } -ruff_text_size = { version = "0.0.16", path = "crates/ruff_text_size" } -ruff_unicode_names2 = { version = "0.0.16", path = "crates/ruff_unicode_names2" } -ruff_unicode_names2_generator = { version = "0.0.16", path = "crates/ruff_unicode_names2_generator" } -ruff_workspace = { version = "0.0.16", path = "crates/ruff_workspace" } +ruff_ranged_value = { version = "0.0.17", path = "crates/ruff_ranged_value" } +ruff_text_size = { version = "0.0.17", path = "crates/ruff_text_size" } +ruff_unicode_names2 = { version = "0.0.17", path = "crates/ruff_unicode_names2" } +ruff_unicode_names2_generator = { version = "0.0.17", path = "crates/ruff_unicode_names2_generator" } +ruff_workspace = { version = "0.0.17", path = "crates/ruff_workspace" } ty = { path = "crates/ty" } -ty_combine = { version = "0.0.16", path = "crates/ty_combine" } +ty_combine = { version = "0.0.17", path = "crates/ty_combine" } ty_completion_bench = { path = "crates/ty_completion_bench" } ty_completion_eval = { path = "crates/ty_completion_eval" } ty_ide = { path = "crates/ty_ide" } -ty_module_resolver = { version = "0.0.16", path = "crates/ty_module_resolver" } +ty_module_resolver = { version = "0.0.17", path = "crates/ty_module_resolver" } ty_project = { path = "crates/ty_project", default-features = false } -ty_python_semantic = { version = "0.0.16", path = "crates/ty_python_semantic" } -ty_python_core = { version = "0.0.16", path = "crates/ty_python_core" } +ty_python_semantic = { version = "0.0.17", path = "crates/ty_python_semantic" } +ty_python_core = { version = "0.0.17", path = "crates/ty_python_core" } ty_server = { path = "crates/ty_server" } -ty_site_packages = { version = "0.0.16", path = "crates/ty_site_packages" } -ty_static = { version = "0.0.16", path = "crates/ty_static" } +ty_site_packages = { version = "0.0.17", path = "crates/ty_site_packages" } +ty_static = { version = "0.0.17", path = "crates/ty_static" } ty_test = { path = "crates/ty_test" } -ty_vendored = { version = "0.0.16", path = "crates/ty_vendored" } +ty_vendored = { version = "0.0.17", path = "crates/ty_vendored" } mdtest = { path = "crates/mdtest" } diff --git a/README.md b/README.md index 850858fe45..36f37563e0 100644 --- a/README.md +++ b/README.md @@ -122,8 +122,8 @@ Ruff is available as [`ruff`](https://pypi.org/project/ruff/) on PyPI. Invoke Ruff directly with [`uvx`](https://docs.astral.sh/uv/): ```shell -uvx ruff@0.16.10 check # Lint all files in the current directory. -uvx ruff@0.16.10 format # Format all files in the current directory. +uvx ruff@0.17.0 check # Lint all files in the current directory. +uvx ruff@0.17.0 format # Format all files in the current directory. ``` Or install Ruff with `uv` (recommended), `pip`, or `pipx`: @@ -150,8 +150,8 @@ curl -LsSf https://astral.sh/ruff/install.sh | sh powershell -c "irm https://astral.sh/ruff/install.ps1 | iex" # For a specific version. -curl -LsSf https://astral.sh/ruff/0.16.10/install.sh | sh -powershell -c "irm https://astral.sh/ruff/0.16.10/install.ps1 | iex" +curl -LsSf https://astral.sh/ruff/0.17.0/install.sh | sh +powershell -c "irm https://astral.sh/ruff/0.17.0/install.ps1 | iex" ``` You can also install Ruff via [Homebrew](https://formulae.brew.sh/formula/ruff), [Conda](https://anaconda.org/conda-forge/ruff), @@ -184,7 +184,7 @@ Ruff can also be used as a [pre-commit](https://pre-commit.com/) hook via [`ruff ```yaml - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.16.10 + rev: v0.17.0 hooks: # Run the linter. - id: ruff-check diff --git a/changelogs/0.16.x.md b/changelogs/0.16.x.md new file mode 100644 index 0000000000..b06cbb1357 --- /dev/null +++ b/changelogs/0.16.x.md @@ -0,0 +1,585 @@ +## 0.16.0 + +Released on 2026-07-23. + +Check out the [blog post](https://astral.sh/blog/ruff-v0.16.0) for a migration +guide and overview of the changes! + +### Breaking changes + +- Ruff now enables a much larger set of rules by default (413, up from 59). See the blog post for + more details and the new [Default Rules](https://docs.astral.sh/ruff/default-rules/) page for a + full listing of the enabled rules. Note that this is primarily an expansion, but 18 of the more + opinionated pycodestyle (`E`) and pyflakes (`F`) rules have been removed from the default set: + `E401`, `E402`, `E701`, `E702`, `E703`, `E711`, `E712`, `E713`, `E714`, `E721`, `E731`, `E741`, + `E742`, `E743`, `F403`, `F405`, `F406`, and `F722`. + +- Ruff can now format Python code blocks in Markdown files and will do this by default. See the + [documentation](https://docs.astral.sh/ruff/formatter/#markdown-code-formatting) for more details. + +- Ruff now supports `ruff: ignore` comments at the ends of lines, like `noqa` comments, or on the line preceding a diagnostic. For example, these both suppress an [`unused-import`](https://docs.astral.sh/ruff/rules/unused-import/) (`F401`) diagnostic: + + ```py + import math # ruff: ignore[F401] + + # ruff: ignore[F401] + import os + ``` + +- Fixes are now shown in `check` and `format --check` output: + + ````console + ❯ ruff format --check . + unformatted: File would be reformatted + --> try.md:1:1 + | + 1 | ```python + - import math + 2 + import math + 3 | ``` + | + + 1 file would be reformatted + ```` + + This example also shows off the Markdown formatting. + +- `format --check` now supports the same output formats as the linter, including the `github` and + `gitlab` outputs for rendering annotations in CI: + + ```console + ❯ ruff format --check --output-format github . + ::error title=ruff (unformatted),file=try.md,line=2,col=8,endLine=2,endColumn=10::try.md:2:8: unformatted: File would be reformatted + ``` + + See the CLI help or [documentation](https://docs.astral.sh/ruff/settings/#output-format) for the + full list of supported formats. + +- The `filename`, `location`, `end_location`, `fix.edits[].location`, and `fix.edits[].end_location` + fields in the JSON output format may now be `null` rather than defaulting to the empty string and + row 1, column 1, respectively. + +### Stabilization + +The following rules have been stabilized and are no longer in preview: + +- [`airflow3-incompatible-function-signature`](https://docs.astral.sh/ruff/rules/airflow3-incompatible-function-signature) + (`AIR303`) +- [`missing-copyright-notice`](https://docs.astral.sh/ruff/rules/missing-copyright-notice) + (`CPY001`) +- [`unnecessary-from-float`](https://docs.astral.sh/ruff/rules/unnecessary-from-float) (`FURB164`) +- [`sorted-min-max`](https://docs.astral.sh/ruff/rules/sorted-min-max) (`FURB192`) +- [`implicit-string-concatenation-in-collection-literal`](https://docs.astral.sh/ruff/rules/implicit-string-concatenation-in-collection-literal) + (`ISC004`) +- [`log-exception-outside-except-handler`](https://docs.astral.sh/ruff/rules/log-exception-outside-except-handler) + (`LOG004`) +- [`invalid-bool-return-type`](https://docs.astral.sh/ruff/rules/invalid-bool-return-type) + (`PLE0304`) +- [`too-many-positional-arguments`](https://docs.astral.sh/ruff/rules/too-many-positional-arguments) + (`PLR0917`) +- [`stop-iteration-return`](https://docs.astral.sh/ruff/rules/stop-iteration-return) (`PLR1708`) +- [`none-not-at-end-of-union`](https://docs.astral.sh/ruff/rules/none-not-at-end-of-union) + (`RUF036`) +- [`access-annotations-from-class-dict`](https://docs.astral.sh/ruff/rules/access-annotations-from-class-dict) + (`RUF063`) +- [`duplicate-entry-in-dunder-all`](https://docs.astral.sh/ruff/rules/duplicate-entry-in-dunder-all) + (`RUF068`) + +The following behaviors have been stabilized: + +- [`blind-except`](https://docs.astral.sh/ruff/rules/blind-except) (`BLE001`) is now suppressed when + the exception is logged via `logging` methods other than `critical`, `error` and `exception`. +- [`future-required-type-annotation`](https://docs.astral.sh/ruff/rules/future-required-type-annotation) + (`FA102`) now checks for additional [PEP 585](https://peps.python.org/pep-0585/)-compatible + APIs, such as those from `collections.abc`. +- [`f-string-in-get-text-func-call`](https://docs.astral.sh/ruff/rules/f-string-in-get-text-func-call) + (`INT001`), + [`format-in-get-text-func-call`](https://docs.astral.sh/ruff/rules/format-in-get-text-func-call) + (`INT002`), and + [`printf-in-get-text-func-call`](https://docs.astral.sh/ruff/rules/printf-in-get-text-func-call) + (`INT003`) now check for additional common ways of using the `gettext` module, such as assigning + it to `builtins._`. +- [`suspicious-url-open-usage`](https://docs.astral.sh/ruff/rules/suspicious-url-open-usage) + (`S310`) now resolves local string literal bindings to avoid more false positives. +- [`snmp-insecure-version`](https://docs.astral.sh/ruff/rules/snmp-insecure-version) (`S508`) and + [`snmp-weak-cryptography`](https://docs.astral.sh/ruff/rules/snmp-weak-cryptography) (`S509`) now + support the recommended API from newer versions of PySNMP. +- [`typing-text-str-alias`](https://docs.astral.sh/ruff/rules/typing-text-str-alias) (`UP019`) now + recognizes `typing_extensions.Text` in addition to `typing.Text`. + +### Preview features + +- \[`pyupgrade`\] Fix false positive with `TypeVar` default before Python 3.13 (`UP040`) ([#26888](https://github.com/astral-sh/ruff/pull/26888)) + +### Bug fixes + +- \[`ruff`\] Fix missing check on unrecognized early bound (`RUF016`) ([#26986](https://github.com/astral-sh/ruff/pull/26986)) + +### Rule changes + +- Insert a space after the colon in Ruff suppression comments ([#27123](https://github.com/astral-sh/ruff/pull/27123)) + +### Performance + +- \[`pyupgrade`\] Speed up `unnecessary-future-import` (`UP010`) ([#27047](https://github.com/astral-sh/ruff/pull/27047)) + +### Documentation + +- \[`ruff`\] Add missing period in "Why is this bad?" section (`RUF200`) ([#26930](https://github.com/astral-sh/ruff/pull/26930)) +- \[`flake8-simplify`\] Clarify `os.environ` behavior on Windows (`SIM112`) ([#26972](https://github.com/astral-sh/ruff/pull/26972)) +- \[`pydocstyle`\] Document fix safety (`D400`) ([#26971](https://github.com/astral-sh/ruff/pull/26971)) + +### Contributors + +- [@jonathandung](https://github.com/jonathandung) +- [@Joosboy](https://github.com/Joosboy) +- [@MichaReiser](https://github.com/MichaReiser) +- [@Andrej730](https://github.com/Andrej730) +- [@ntBre](https://github.com/ntBre) +- [@zaniebot](https://github.com/zaniebot) + +## 0.16.1 + +Released on 2026-07-30. + +### Preview features + +- Add an option to opt out of human-readable names ([#27160](https://github.com/astral-sh/ruff/pull/27160)) +- \[`flake8-pytest-style`\] Make fixes safe by default and unsafe only when comments are present (`PT018`) ([#27201](https://github.com/astral-sh/ruff/pull/27201)) +- \[`pyupgrade`\] Skip fix when a defaulted `TypeVar` precedes a non-defaulted one (`UP040`, `UP046`, `UP047`) ([#27133](https://github.com/astral-sh/ruff/pull/27133)) +- \[`ruff`\] Fix false positive with unpacked arguments (`RUF065`) ([#26959](https://github.com/astral-sh/ruff/pull/26959)) + +### Bug fixes + +- Bump `gen-lsp-types` to gracefully handle unknown enumeration values in LSP messages ([#27230](https://github.com/astral-sh/ruff/pull/27230)) +- \[`flake8-bugbear`\] Mark `range` as immutable (`B008`) ([#27247](https://github.com/astral-sh/ruff/pull/27247)) +- \[`flake8-comprehensions`\] NFKC-normalize keyword names in `C408` fix ([#26813](https://github.com/astral-sh/ruff/pull/26813)) +- \[`flake8-return`\] Fix false positive when variable is read in `finally` clause (`RET504`) ([#25441](https://github.com/astral-sh/ruff/pull/25441)) +- \[`pydocstyle`\] Skip section detection inside RST directive bodies (`D214`, `D405`, `D413`) ([#23635](https://github.com/astral-sh/ruff/pull/23635)) +- \[`refurb`\] Parenthesize `yield` arguments in the `FURB192` fix ([#27192](https://github.com/astral-sh/ruff/pull/27192)) + +### Rule changes + +- \[`flake8-pytest-style`\] Mark `PT022` fixes as unsafe ([#26440](https://github.com/astral-sh/ruff/pull/26440)) +- \[`refurb`\] Mark fixes that remove unknown separators as unsafe (`FURB105`) ([#27200](https://github.com/astral-sh/ruff/pull/27200)) + +### Server + +- Fix indexing of excluded nested Ruff workspaces ([#27303](https://github.com/astral-sh/ruff/pull/27303)) +- Lint TOML files in the LSP ([#26862](https://github.com/astral-sh/ruff/pull/26862)) + +### Documentation + +- Cover `pycon` Markdown formatting ([#27153](https://github.com/astral-sh/ruff/pull/27153)) +- \[`flake8-bandit`\] Document `TYPE_CHECKING` exception (`S101`) ([#27004](https://github.com/astral-sh/ruff/pull/27004)) +- \[`flake8-import-conventions`\] Document that `extend-aliases` can override default aliases ([#27191](https://github.com/astral-sh/ruff/pull/27191)) +- \[`pylint`\] Add missing fix safety gotchas for `non-augmented-assignment` (`PLR6104`) ([#27250](https://github.com/astral-sh/ruff/pull/27250)) + +### Other changes + +- Reduce syntax error noise by swallowing dedents like indents ([#27170](https://github.com/astral-sh/ruff/pull/27170)) +- Vendor latest annotate-snippets ([#27033](https://github.com/astral-sh/ruff/pull/27033)) + +### Contributors + +- [@bxff](https://github.com/bxff) +- [@anishgirianish](https://github.com/anishgirianish) +- [@Avasam](https://github.com/Avasam) +- [@epage](https://github.com/epage) +- [@LHMQ878](https://github.com/LHMQ878) +- [@MichaReiser](https://github.com/MichaReiser) +- [@ntBre](https://github.com/ntBre) +- [@HarshalPatel1972](https://github.com/HarshalPatel1972) +- [@mjpieters](https://github.com/mjpieters) +- [@joshuavetos](https://github.com/joshuavetos) +- [@jesco-absolute](https://github.com/jesco-absolut) +- [@vidigoat](https://github.com/vidigoat) +- [@baltasarblanco](https://github.com/baltasarblanco) +- [@ribru17](https://github.com/ribru17) +- [@oh-summy](https://github.com/oh-summy) +- [@Jayashanker-Padishala](https://github.com/Jayashanker-Padishala) + +## 0.16.2 + +Released on 2026-08-06. + +### Bug fixes + +- \[`flake8-pyi`\] Avoid false positives on `singledispatch` functions (`PYI041`) ([#27335](https://github.com/astral-sh/ruff/pull/27335)) + +### Server + +- Register formatting capabilities dynamically to exclude TOML files ([#27332](https://github.com/astral-sh/ruff/pull/27332)) + +### Contributors + +- [@MeGaGiGaGon](https://github.com/MeGaGiGaGon) +- [@charliermarsh](https://github.com/charliermarsh) +- [@epage](https://github.com/epage) +- [@sharkdp](https://github.com/sharkdp) +- [@ntBre](https://github.com/ntBre) + +## 0.16.3 + +Released on 2026-08-13. + +### Preview features + +- \[`pylint`\] Fix false negatives on negative numbers (`PLR6104`) ([#27251](https://github.com/astral-sh/ruff/pull/27251)) +- \[`pyupgrade`\] Add rule to replace `while 1` with `while True` (`UP048`) ([#27190](https://github.com/astral-sh/ruff/pull/27190)) + +### Bug fixes + +- \[`flake8-bandit`\] Also check keyword arguments (`S602`, `S603`, `S607`, `S609`) ([#27687](https://github.com/astral-sh/ruff/pull/27687)) +- \[`pylint`\] Allow `continue` in `finally` on Python 3.8 ([#27626](https://github.com/astral-sh/ruff/pull/27626)) +- \[`pylint`\] Fix `PLE1307` false positive with bools ([#27651](https://github.com/astral-sh/ruff/pull/27651)) +- \[`pylint`\] Fix false positives and negatives with `%b` format character (`PLE1300`, `PLE1307`) ([#27560](https://github.com/astral-sh/ruff/pull/27560)) +- \[`pylint`\] Improve handling of concatenated strings (`PLE1300`) ([#27659](https://github.com/astral-sh/ruff/pull/27659)) + +### Rule changes + +- \[`numpy`\] Make `np.chararray` autofix backwards-compatible (`NPY201`) ([#27527](https://github.com/astral-sh/ruff/pull/27527)) + +### Performance + +- Enable PGO for Linux x86-64 Ruff releases ([#27570](https://github.com/astral-sh/ruff/pull/27570)) +- Enable PGO for Linux ARM64 Ruff releases ([#27574](https://github.com/astral-sh/ruff/pull/27574)) +- Enable PGO for Windows x86-64 Ruff releases ([#27573](https://github.com/astral-sh/ruff/pull/27573)) +- Enable PGO for macOS ARM64 Ruff releases ([#27572](https://github.com/astral-sh/ruff/pull/27572)) +- Reduce `Expr` size to 64 bytes ([#27591](https://github.com/astral-sh/ruff/pull/27591)) + +### CLI + +- Hyperlink rule codes in `ruff check --statistics` output ([#27646](https://github.com/astral-sh/ruff/pull/27646)) + +### Documentation + +- \[`ruff`\] Also suggest `asyncio.TaskGroup` (`RUF006`) ([#27461](https://github.com/astral-sh/ruff/pull/27461)) + +### Other changes + +- Use mimalloc v3 ([#27586](https://github.com/astral-sh/ruff/pull/27586)) + +### Contributors + +- [@Andrej730](https://github.com/Andrej730) +- [@alonfaraj](https://github.com/alonfaraj) +- [@romero-deshaw](https://github.com/romero-deshaw) +- [@Avasam](https://github.com/Avasam) +- [@tjkuson](https://github.com/tjkuson) +- [@charliermarsh](https://github.com/charliermarsh) +- [@chirizxc](https://github.com/chirizxc) +- [@saberoueslati](https://github.com/saberoueslati) +- [@MichaReiser](https://github.com/MichaReiser) + +## 0.16.4 + +Released on 2026-08-20. + +### Preview features + +- \[`flake8-use-pathlib`\] Add autofix for `PTH116` ([#26460](https://github.com/astral-sh/ruff/pull/26460)) +- \[`refurb`\] Restrict `delete-full-slice` to lists (`FURB131`) ([#27711](https://github.com/astral-sh/ruff/pull/27711)) +- \[`refurb`\] Skip `FURB101` and `FURB103` when the `open` argument is a file descriptor ([#27643](https://github.com/astral-sh/ruff/pull/27643)) + +### Bug fixes + +- Fix `InvalidInstruction` on Windows CPUs that do not support `POPCNT` ([#27803](https://github.com/astral-sh/ruff/pull/27803)) +- \[`pyflakes`\] Emit semantic syntax errors in string type definitions as `F722` ([#27835](https://github.com/astral-sh/ruff/pull/27835)) +- \[`pylint`\] Allow `os._exit` imports in `import-private-name` (`PLC2701`) ([#27738](https://github.com/astral-sh/ruff/pull/27738)) + +### Rule changes + +- [syntax-errors] Align mixed t-string/bytes error message with CPython 3.14 ([#27766](https://github.com/astral-sh/ruff/pull/27766)) +- \[`ruff`\] Add `ctypes.LittleEndianStructure` and related types to existing exception (`RUF012`) ([#27753](https://github.com/astral-sh/ruff/pull/27753)) +- [syntax-errors] Detect duplicate keyword arguments ([#17804](https://github.com/astral-sh/ruff/pull/17804)) +- [syntax-errors] Detect parameters declared `nonlocal` ([#27628](https://github.com/astral-sh/ruff/pull/27628)) + +### Server + +- Offer display-only fixes and mark safe fixes preferred ([#27807](https://github.com/astral-sh/ruff/pull/27807)) +- Support pull diagnostics for notebook cells ([#27779](https://github.com/astral-sh/ruff/pull/27779)) + +### Documentation + +- Add default indicator to rules table ([#27724](https://github.com/astral-sh/ruff/pull/27724)) +- Fix broken link to Python docs ([#27757](https://github.com/astral-sh/ruff/pull/27757)) + +### Other changes + +- Fix s390x stacker assembly in release builds ([#27776](https://github.com/astral-sh/ruff/pull/27776)) +- Guarantee minimum stack size when parsing a module, standalone expression, and suites ([#25464](https://github.com/astral-sh/ruff/pull/25464)) +- Reduce configuration deserialization code size ([#27924](https://github.com/astral-sh/ruff/pull/27924)) +- Check packed AST index bounds ([#27849](https://github.com/astral-sh/ruff/pull/27849)) + +### Contributors + +- [@AbhinavMir](https://github.com/AbhinavMir) +- [@eduardorittner](https://github.com/eduardorittner) +- [@royb3](https://github.com/royb3) +- [@MichaReiser](https://github.com/MichaReiser) +- [@carljm](https://github.com/carljm) +- [@rosstitmarsh](https://github.com/rosstitmarsh) +- [@ntBre](https://github.com/ntBre) +- [@zaniebot](https://github.com/zaniebot) +- [@ewdurbin](https://github.com/ewdurbin) +- [@woodruffw](https://github.com/woodruffw) +- [@Sacrimento](https://github.com/Sacrimento) +- [@lakshayxi](https://github.com/lakshayxi) +- [@WhiteFox0-0](https://github.com/WhiteFox0-0) +- [@baltasarblanco](https://github.com/baltasarblanco) + +## 0.16.5 + +Released on 2026-08-27. + +### Preview features + +- Allow rules without codes ([#28049](https://github.com/astral-sh/ruff/pull/28049)) +- Introduce category selectors ([#27666](https://github.com/astral-sh/ruff/pull/27666)) +- Update preview default rules and categories ([#27877](https://github.com/astral-sh/ruff/pull/27877)) + +### Bug fixes + +- \[`flake8-async`\] Detect blocking generic HTTP requests (`ASYNC210`) ([#28024](https://github.com/astral-sh/ruff/pull/28024)) +- \[`flake8-datetimez`\] Allow timezone-safe `strptime` chains (`DTZ007`) ([#28023](https://github.com/astral-sh/ruff/pull/28023)) +- \[`flake8-simplify`\] Respect side effects in `lambda` defaults (`SIM401`) ([#28000](https://github.com/astral-sh/ruff/pull/28000)) + +### Server + +- Fix duplicated "of" in `ClientOptions` doc comment ([#27978](https://github.com/astral-sh/ruff/pull/27978)) + +### Documentation + +- Document rule acceptance guidelines ([#27910](https://github.com/astral-sh/ruff/pull/27910)) +- Document the new category selectors ([#27906](https://github.com/astral-sh/ruff/pull/27906)) + +### Contributors + +- [@AlexWaygood](https://github.com/AlexWaygood) +- [@sharkdp](https://github.com/sharkdp) +- [@jelle-openai](https://github.com/jelle-openai) +- [@charliermarsh](https://github.com/charliermarsh) +- [@ntBre](https://github.com/ntBre) +- [@aarushkandukoori](https://github.com/aarushkandukoori) + +## 0.16.6 + +Released on 2026-09-03. + +### Preview features + +- Move `pytest-fixture-autouse` to the `restriction` category ([#28219](https://github.com/astral-sh/ruff/pull/28219)) +- \[`flake8-pytest-style`\] Add an autofix for `PT020` ([#27993](https://github.com/astral-sh/ruff/pull/27993)) +- \[`flake8-tidy-imports`\] Prevent fix loop between `TID254` and `TID255` ([#28262](https://github.com/astral-sh/ruff/pull/28262)) +- \[`isort`\] Exclude pragma comments from line length calculation (`I001`) ([#27313](https://github.com/astral-sh/ruff/pull/27313)) + +### Bug fixes + +- Validate unary expressions when parsing ([#28233](https://github.com/astral-sh/ruff/pull/28233)) +- \[`flake8-async`, `pylint`\] Recognize `builtins.open` (`ASYNC230`, `PLW1514`) ([#28021](https://github.com/astral-sh/ruff/pull/28021)) +- \[`flake8-bugbear`\] Fix panic on `match` subjects (`B031`) ([#27781](https://github.com/astral-sh/ruff/pull/27781)) +- \[`flake8-datetimez`\] Reject `tzinfo=None` for `datetime` bounds (`DTZ901`) ([#28022](https://github.com/astral-sh/ruff/pull/28022)) +- \[`flake8-pytest-style`\] Avoid duplicate `PT017` diagnostics ([#27918](https://github.com/astral-sh/ruff/pull/27918)) +- \[`ruff`\] Remove `lint.external` hint for Ruff-specific suppressions (`RUF102`) ([#27923](https://github.com/astral-sh/ruff/pull/27923)) + +### Rule changes + +- \[`flake8-use-pathlib`\] Add display-only fix for `os.listdir` (`PTH208`) ([#28027](https://github.com/astral-sh/ruff/pull/28027)) + +### Documentation + +- Add another example and glob reference for `lint.per-file-ignores` ([#28106](https://github.com/astral-sh/ruff/pull/28106)) +- Add duplicate work guidance ([#28229](https://github.com/astral-sh/ruff/pull/28229)) +- \[`flake8-async`\] Document thread offloading (`ASYNC240`) ([#28008](https://github.com/astral-sh/ruff/pull/28008)) +- \[`pyupgrade`\] Clarify default `encoding` argument handling (`UP012`) ([#27315](https://github.com/astral-sh/ruff/pull/27315)) + +### Other changes + +- Allow unary plus in match patterns on Python 3.15 ([#28231](https://github.com/astral-sh/ruff/pull/28231)) + +### Contributors + +- [@flying-sheep](https://github.com/flying-sheep) +- [@pikammmmm](https://github.com/pikammmmm) +- [@fly1d](https://github.com/fly1d) +- [@waterWang](https://github.com/waterWang) +- [@Pierre-Sassoulas](https://github.com/Pierre-Sassoulas) +- [@ntBre](https://github.com/ntBre) +- [@jelle-openai](https://github.com/jelle-openai) +- [@ericbuehl](https://github.com/ericbuehl) +- [@tjkuson](https://github.com/tjkuson) +- [@AbhinavMir](https://github.com/AbhinavMir) +- [@Whning0513](https://github.com/Whning0513) +- [@chirizxc](https://github.com/chirizxc) + +## 0.16.7 + +Released on 2026-09-10. + +### Preview features + +- \[`ruff`\] Add rule for default values on method receivers (`RUF077`) ([#26700](https://github.com/astral-sh/ruff/pull/26700)) +- \[`ruff`\] Recognize `re.prefixmatch` (`RUF039`, `RUF055`) ([#28311](https://github.com/astral-sh/ruff/pull/28311)) + +### Bug fixes + +- Alternate nested quotes inside format spec interpolations ([#28259](https://github.com/astral-sh/ruff/pull/28259)) +- \[`flake8-implicit-str-concat`\] Mark fix unsafe when it creates a docstring (`ISC003`) ([#27981](https://github.com/astral-sh/ruff/pull/27981)) +- \[`flake8-tidy-imports`\] Skip fixes for multi-member imports (`TID254`) ([#26584](https://github.com/astral-sh/ruff/pull/26584)) +- \[`pylint`\] Gate `ImportCycleError` on Python 3.15 (`PLW0133`) ([#28310](https://github.com/astral-sh/ruff/pull/28310)) + +### Rule changes + +- Correct `D211` and `D203` rule conflict diagnostic ([#28444](https://github.com/astral-sh/ruff/pull/28444)) +- Recognize `slice` and `frozendict` generics ([#28477](https://github.com/astral-sh/ruff/pull/28477)) +- Stop defining `__cached__` for Python 3.15 ([#28476](https://github.com/astral-sh/ruff/pull/28476)) +- \[`pyupgrade`\] Stop recommending removed `typing.no_type_check_decorator` (`UP035`) ([#28475](https://github.com/astral-sh/ruff/pull/28475)) + +### Performance + +- Reuse parser name lookups when interning ([#28399](https://github.com/astral-sh/ruff/pull/28399)) +- Speed up inherited configuration resolution ([#28299](https://github.com/astral-sh/ruff/pull/28299)) + +### Documentation + +- Fix `line-length` path in `--config` example ([#28392](https://github.com/astral-sh/ruff/pull/28392)) +- Remove the "Who’s Using Ruff?" list ([#28455](https://github.com/astral-sh/ruff/pull/28455)) + +### Other changes + +- Embed archive checksums in the shell installer ([#28281](https://github.com/astral-sh/ruff/pull/28281)) + +### Contributors + +- [@The-Compiler](https://github.com/The-Compiler) +- [@mdiniz97](https://github.com/mdiniz97) +- [@zsol](https://github.com/zsol) +- [@gorewilliams](https://github.com/gorewilliams) +- [@RafaelJohn9](https://github.com/RafaelJohn9) +- [@qatcod](https://github.com/qatcod) +- [@zanieb](https://github.com/zanieb) +- [@MichaReiser](https://github.com/MichaReiser) +- [@ntBre](https://github.com/ntBre) +- [@charliermarsh](https://github.com/charliermarsh) +- [@nightt5879](https://github.com/nightt5879) +- [@jonathandung](https://github.com/jonathandung) +- [@jogo-openai](https://github.com/jogo-openai) + +## 0.16.8 + +Released on 2026-09-16. + +### Bug fixes + +- Visit functional `TypedDict` keyword arguments correctly ([#28584](https://github.com/astral-sh/ruff/pull/28584)) +- \[`flake8-simplify`\] Detect nested `async with` under sync parent (`SIM117`) ([#27821](https://github.com/astral-sh/ruff/pull/27821)) +- \[`flake8-simplify`\] Preserve operand order in `SIM109` fix ([#27824](https://github.com/astral-sh/ruff/pull/27824)) +- \[`pyupgrade`\] Preserve required parentheses in multiline `UP040` fixes ([#28164](https://github.com/astral-sh/ruff/pull/28164)) +- \[`pyupgrade`\] Skip `TypeVarTuple` and `ParamSpec` conversions with bounds or constraints (`UP040`, `UP046`, `UP047`) ([#28505](https://github.com/astral-sh/ruff/pull/28505)) + +### Rule changes + +- Add support for `__lazy_modules__` ([#28459](https://github.com/astral-sh/ruff/pull/28459)) +- Recognize PEP-728 `TypedDict` class keywords ([#28533](https://github.com/astral-sh/ruff/pull/28533)) +- Recognize quoted types in `typing.TypeForm` ([#28507](https://github.com/astral-sh/ruff/pull/28507)) +- Support conditional assignment to `__lazy_modules__` ([#28491](https://github.com/astral-sh/ruff/pull/28491)) +- \[`flake8-type-checking`\] Prefer lazy imports over `TYPE_CHECKING` on Python 3.15 and later (`TC001`, `TC002`, `TC003`) ([#28541](https://github.com/astral-sh/ruff/pull/28541)) +- \[`pyupgrade`\] Make the fix for `UP040` always unsafe ([#28526](https://github.com/astral-sh/ruff/pull/28526)) +- \[`pyupgrade`\] Stop recommending deprecated `ByteString` aliases (`UP035`) ([#28498](https://github.com/astral-sh/ruff/pull/28498)) +- \[`ruff`, `flake8-use-pathlib`\] Recognize the `parent_mode` argument (`RUF064`, `PTH103`) ([#28528](https://github.com/astral-sh/ruff/pull/28528)) +- \[`ruff`\] Detect `\Z` in `pytest.raises()` match patterns (`RUF043`) ([#28598](https://github.com/astral-sh/ruff/pull/28598)) + +### CLI + +- Use rule name and code in formatter incompatibility warnings ([#28571](https://github.com/astral-sh/ruff/pull/28571)) + +### Configuration + +- \[`flake8-tidy-imports`\] Add `extend-banned-api` ([#28644](https://github.com/astral-sh/ruff/pull/28644)) + +### Contributors + +- [@VedantMadane](https://github.com/VedantMadane) +- [@alzeph](https://github.com/alzeph) +- [@charliermarsh](https://github.com/charliermarsh) +- [@fredrikblau](https://github.com/fredrikblau) +- [@ntBre](https://github.com/ntBre) +- [@zsol](https://github.com/zsol) +- [@Aniket-a14](https://github.com/Aniket-a14) +- [@r-b-1](https://github.com/r-b-1) + +## 0.16.9 + +Released on 2026-09-24. + +### Preview features + +- \[`ruff`\] Avoid false positives for overloaded division (`RUF069`) ([#28309](https://github.com/astral-sh/ruff/pull/28309)) + +### Bug fixes + +- \[`flake8-bugbear`\] Avoid false positives for calls with keyword arguments (`B009`, `B010`, `B043`) ([#28776](https://github.com/astral-sh/ruff/pull/28776)) +- \[`flake8-tidy-imports`\] Allow lazy imports to be used in deferred annotations (`TID255`) ([#28767](https://github.com/astral-sh/ruff/pull/28767)) + +### Rule changes + +- Update LibCST-based fixes for Python 3.15 ([#28616](https://github.com/astral-sh/ruff/pull/28616)) +- \[`flake8-pyi`\] Mention stubs in the diagnostic message (`PYI002`) ([#28542](https://github.com/astral-sh/ruff/pull/28542)) + +### Documentation + +- Fix horizontal overflow on the rules documentation page ([#28699](https://github.com/astral-sh/ruff/pull/28699)) +- Update rules table with category information ([#28651](https://github.com/astral-sh/ruff/pull/28651)) +- \[`flake8-annotations`\] Clarify that `ANN401` checks return types in addition to arguments ([#28334](https://github.com/astral-sh/ruff/pull/28334)) +- \[`flake8-bugbear`\] Document type-checker interaction (`B010`) ([#28509](https://github.com/astral-sh/ruff/pull/28509)) +- \[`flake8-comprehensions`\] Document `map`/generator exception behavior (`C417`) ([#27794](https://github.com/astral-sh/ruff/pull/27794)) +- \[`ruff`\] Mention related isort settings (`RUF022`) ([#28719](https://github.com/astral-sh/ruff/pull/28719)) + +### Contributors + +- [@qinpei-dev](https://github.com/qinpei-dev) +- [@sanjayrohith](https://github.com/sanjayrohith) +- [@ntBre](https://github.com/ntBre) +- [@webdevsamran](https://github.com/webdevsamran) +- [@zaniebot](https://github.com/zaniebot) +- [@ewdurbin](https://github.com/ewdurbin) +- [@MichaReiser](https://github.com/MichaReiser) +- [@spaceone](https://github.com/spaceone) +- [@IbrahimKhan12](https://github.com/IbrahimKhan12) +- [@devtechedge](https://github.com/devtechedge) +- [@GruffElixir](https://github.com/GruffElixir) + +## 0.16.10 + +Released on 2026-10-01. + +### Preview features + +- Add a migration guide for categories ([#28087](https://github.com/astral-sh/ruff/pull/28087)) +- \[`pyupgrade`\] Add rule for context manager iterator annotations (`UP052`) ([#29000](https://github.com/astral-sh/ruff/pull/29000)) + +### Performance + +- Reduce memory used by diagnostics ([#28951](https://github.com/astral-sh/ruff/pull/28951)) + +### Server + +- Avoid running `uv format` in untrusted workspaces ([#28873](https://github.com/astral-sh/ruff/pull/28873)) + +### Documentation + +- Fix links to moved changelog sections and renamed mdtests ([#28941](https://github.com/astral-sh/ruff/pull/28941)) +- Add Python 3.15 as a supported version ([#28907](https://github.com/astral-sh/ruff/pull/28907)) +- Add ty as a type checker example ([#28906](https://github.com/astral-sh/ruff/pull/28906)) + +### Other changes + +- Update Rust toolchain to 1.99 and MSRV to 1.97 ([#29047](https://github.com/astral-sh/ruff/pull/29047)) + +### Contributors + +- [@ntBre](https://github.com/ntBre) +- [@spaceone](https://github.com/spaceone) +- [@HardMax71](https://github.com/HardMax71) +- [@charliermarsh](https://github.com/charliermarsh) diff --git a/crates/ruff/Cargo.toml b/crates/ruff/Cargo.toml index 99536c4fec..7087ce82ab 100644 --- a/crates/ruff/Cargo.toml +++ b/crates/ruff/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff" -version = "0.16.10" +version = "0.17.0" description = "An extremely fast Python linter and code formatter" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff/README.md b/crates/ruff/README.md index b5dadc6fc6..d8a1d1dc81 100644 --- a/crates/ruff/README.md +++ b/crates/ruff/README.md @@ -10,7 +10,7 @@ See the [documentation](https://docs.astral.sh/ruff/) or This crate is the entry point to the Ruff command-line interface. The Rust API exposed here is not considered public interface. -This is version 0.16.10. The source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff). +This is version 0.17.0. The source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff). The following Ruff workspace members are also available: @@ -43,6 +43,8 @@ The following Ruff workspace members are also available: - [ruff_server](https://crates.io/crates/ruff_server) - [ruff_source_file](https://crates.io/crates/ruff_source_file) - [ruff_text_size](https://crates.io/crates/ruff_text_size) +- [ruff_unicode_names2](https://crates.io/crates/ruff_unicode_names2) +- [ruff_unicode_names2_generator](https://crates.io/crates/ruff_unicode_names2_generator) - [ruff_wasm](https://crates.io/crates/ruff_wasm) - [ruff_workspace](https://crates.io/crates/ruff_workspace) - [ty_combine](https://crates.io/crates/ty_combine) diff --git a/crates/ruff_annotate_snippets/Cargo.toml b/crates/ruff_annotate_snippets/Cargo.toml index 2c0555a5fd..73b6fc9649 100644 --- a/crates/ruff_annotate_snippets/Cargo.toml +++ b/crates/ruff_annotate_snippets/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_annotate_snippets" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_cache/Cargo.toml b/crates/ruff_cache/Cargo.toml index 94566ea1d9..76b1ce7752 100644 --- a/crates/ruff_cache/Cargo.toml +++ b/crates/ruff_cache/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_cache" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_cache/README.md b/crates/ruff_cache/README.md index 121b18c877..6a828e3d8c 100644 --- a/crates/ruff_cache/README.md +++ b/crates/ruff_cache/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_cache). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_cache). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_command_line/Cargo.toml b/crates/ruff_command_line/Cargo.toml index a68406345c..3aefafcfa6 100644 --- a/crates/ruff_command_line/Cargo.toml +++ b/crates/ruff_command_line/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_command_line" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_command_line/README.md b/crates/ruff_command_line/README.md new file mode 100644 index 0000000000..558679991d --- /dev/null +++ b/crates/ruff_command_line/README.md @@ -0,0 +1,12 @@ + + +# ruff_command_line + +This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed +here is unstable and will have frequent breaking changes. + +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_command_line). + +See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for +details on versioning. diff --git a/crates/ruff_db/Cargo.toml b/crates/ruff_db/Cargo.toml index 267139bac6..0fdbf0d7ec 100644 --- a/crates/ruff_db/Cargo.toml +++ b/crates/ruff_db/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_db" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_db/README.md b/crates/ruff_db/README.md index 0dd22b083f..fcbcaefabc 100644 --- a/crates/ruff_db/README.md +++ b/crates/ruff_db/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_db). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_db). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_diagnostics/Cargo.toml b/crates/ruff_diagnostics/Cargo.toml index c0954314f6..d6934ff33b 100644 --- a/crates/ruff_diagnostics/Cargo.toml +++ b/crates/ruff_diagnostics/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_diagnostics" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_diagnostics/README.md b/crates/ruff_diagnostics/README.md index bd338fa3f7..155e191696 100644 --- a/crates/ruff_diagnostics/README.md +++ b/crates/ruff_diagnostics/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_diagnostics). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_diagnostics). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_formatter/Cargo.toml b/crates/ruff_formatter/Cargo.toml index 8549de12d6..c0560800cb 100644 --- a/crates/ruff_formatter/Cargo.toml +++ b/crates/ruff_formatter/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_formatter" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_formatter/README.md b/crates/ruff_formatter/README.md index 9409ffc2e1..9319590274 100644 --- a/crates/ruff_formatter/README.md +++ b/crates/ruff_formatter/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_formatter). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_formatter). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_graph/Cargo.toml b/crates/ruff_graph/Cargo.toml index 15a2a40906..da9ef6a086 100644 --- a/crates/ruff_graph/Cargo.toml +++ b/crates/ruff_graph/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_graph" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" edition.workspace = true rust-version.workspace = true diff --git a/crates/ruff_graph/README.md b/crates/ruff_graph/README.md index 4a69394ca6..d7c5df5f6a 100644 --- a/crates/ruff_graph/README.md +++ b/crates/ruff_graph/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_graph). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_graph). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_index/Cargo.toml b/crates/ruff_index/Cargo.toml index 45d426a81b..e0ca70222f 100644 --- a/crates/ruff_index/Cargo.toml +++ b/crates/ruff_index/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_index" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_index/README.md b/crates/ruff_index/README.md index 8aea3c5d14..a29ad5b977 100644 --- a/crates/ruff_index/README.md +++ b/crates/ruff_index/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_index). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_index). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_linter/Cargo.toml b/crates/ruff_linter/Cargo.toml index 77e4f05ccf..0c0761b6f0 100644 --- a/crates/ruff_linter/Cargo.toml +++ b/crates/ruff_linter/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_linter" -version = "0.16.10" +version = "0.17.0" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_linter/README.md b/crates/ruff_linter/README.md index 72621c3d05..9f9c98e6d3 100644 --- a/crates/ruff_linter/README.md +++ b/crates/ruff_linter/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.16.10) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_linter). +This version (0.17.0) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_linter). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_linter/src/rules/flake8_tidy_imports/rules/lazy_import_immediately_resolved.rs b/crates/ruff_linter/src/rules/flake8_tidy_imports/rules/lazy_import_immediately_resolved.rs index b1db149d27..e33e10b75d 100644 --- a/crates/ruff_linter/src/rules/flake8_tidy_imports/rules/lazy_import_immediately_resolved.rs +++ b/crates/ruff_linter/src/rules/flake8_tidy_imports/rules/lazy_import_immediately_resolved.rs @@ -67,7 +67,7 @@ use crate::{Edit, Fix, FixAvailability, Violation}; /// /// - [`lint.flake8-tidy-imports.require-lazy`] #[derive(ViolationMetadata)] -#[violation_metadata(stable_since = "NEXT_RUFF_VERSION", category = Category::Correctness)] +#[violation_metadata(stable_since = "0.17.0", category = Category::Correctness)] pub(crate) struct LazyImportImmediatelyResolved { name: String, fixable: bool, diff --git a/crates/ruff_linter/src/rules/flake8_tidy_imports/rules/lazy_import_mismatch.rs b/crates/ruff_linter/src/rules/flake8_tidy_imports/rules/lazy_import_mismatch.rs index 213e3b8de1..1c48c90d06 100644 --- a/crates/ruff_linter/src/rules/flake8_tidy_imports/rules/lazy_import_mismatch.rs +++ b/crates/ruff_linter/src/rules/flake8_tidy_imports/rules/lazy_import_mismatch.rs @@ -60,7 +60,7 @@ use crate::{Edit, Fix, FixAvailability, Violation}; /// - `lint.flake8-tidy-imports.require-lazy` /// - `lint.flake8-tidy-imports.ban-lazy` #[derive(ViolationMetadata)] -#[violation_metadata(stable_since = "NEXT_RUFF_VERSION", category = Category::Restriction)] +#[violation_metadata(stable_since = "0.17.0", category = Category::Restriction)] pub(crate) struct LazyImportMismatch { policy: LazyImportPolicy, name: Option, diff --git a/crates/ruff_linter/src/rules/ruff/rules/os_path_commonprefix.rs b/crates/ruff_linter/src/rules/ruff/rules/os_path_commonprefix.rs index da3626225f..8d4c739e9d 100644 --- a/crates/ruff_linter/src/rules/ruff/rules/os_path_commonprefix.rs +++ b/crates/ruff_linter/src/rules/ruff/rules/os_path_commonprefix.rs @@ -68,7 +68,7 @@ use crate::{Edit, Fix, FixAvailability, Violation}; /// - [Why `os.path.commonprefix` is deprecated](https://sethmlarson.dev/deprecate-confusing-apis-like-os-path-commonprefix) /// - [CPython deprecation issue](https://github.com/python/cpython/issues/144347) #[derive(ViolationMetadata)] -#[violation_metadata(stable_since = "NEXT_RUFF_VERSION", category = Category::Suspicious)] +#[violation_metadata(stable_since = "0.17.0", category = Category::Suspicious)] pub(crate) struct OsPathCommonprefix; impl Violation for OsPathCommonprefix { diff --git a/crates/ruff_macros/Cargo.toml b/crates/ruff_macros/Cargo.toml index 513ecfd058..2ec34fb91b 100644 --- a/crates/ruff_macros/Cargo.toml +++ b/crates/ruff_macros/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_macros" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_macros/README.md b/crates/ruff_macros/README.md index 5303017a26..6a4f0da414 100644 --- a/crates/ruff_macros/README.md +++ b/crates/ruff_macros/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_macros). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_macros). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_markdown/Cargo.toml b/crates/ruff_markdown/Cargo.toml index 4753baebd4..1c1538b8ba 100644 --- a/crates/ruff_markdown/Cargo.toml +++ b/crates/ruff_markdown/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_markdown" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" edition = { workspace = true } rust-version = { workspace = true } diff --git a/crates/ruff_markdown/README.md b/crates/ruff_markdown/README.md index 91d83e8fe9..68c6718497 100644 --- a/crates/ruff_markdown/README.md +++ b/crates/ruff_markdown/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_markdown). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_markdown). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_memory_usage/Cargo.toml b/crates/ruff_memory_usage/Cargo.toml index 783530b362..ad95da5470 100644 --- a/crates/ruff_memory_usage/Cargo.toml +++ b/crates/ruff_memory_usage/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_memory_usage" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_memory_usage/README.md b/crates/ruff_memory_usage/README.md index c8d6214079..ed6aa3b05a 100644 --- a/crates/ruff_memory_usage/README.md +++ b/crates/ruff_memory_usage/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_memory_usage). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_memory_usage). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_notebook/Cargo.toml b/crates/ruff_notebook/Cargo.toml index 983cea51af..00c274cfa2 100644 --- a/crates/ruff_notebook/Cargo.toml +++ b/crates/ruff_notebook/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_notebook" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_notebook/README.md b/crates/ruff_notebook/README.md index 5d0cb0e642..eec80b24f4 100644 --- a/crates/ruff_notebook/README.md +++ b/crates/ruff_notebook/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_notebook). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_notebook). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_options_metadata/Cargo.toml b/crates/ruff_options_metadata/Cargo.toml index 3d6fd5b56d..4ecae85fa6 100644 --- a/crates/ruff_options_metadata/Cargo.toml +++ b/crates/ruff_options_metadata/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_options_metadata" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_options_metadata/README.md b/crates/ruff_options_metadata/README.md index c60218a65e..2763b79dba 100644 --- a/crates/ruff_options_metadata/README.md +++ b/crates/ruff_options_metadata/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_options_metadata). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_options_metadata). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_python_ast/Cargo.toml b/crates/ruff_python_ast/Cargo.toml index 9b4ba3cc8a..4acd32a871 100644 --- a/crates/ruff_python_ast/Cargo.toml +++ b/crates/ruff_python_ast/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_python_ast" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_python_ast/README.md b/crates/ruff_python_ast/README.md index 8c744cdeb9..50009854c7 100644 --- a/crates/ruff_python_ast/README.md +++ b/crates/ruff_python_ast/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_python_ast). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_python_ast). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_python_codegen/Cargo.toml b/crates/ruff_python_codegen/Cargo.toml index 70467603ad..7205b37adb 100644 --- a/crates/ruff_python_codegen/Cargo.toml +++ b/crates/ruff_python_codegen/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_python_codegen" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_python_codegen/README.md b/crates/ruff_python_codegen/README.md index 5cb391eecd..db88175dd4 100644 --- a/crates/ruff_python_codegen/README.md +++ b/crates/ruff_python_codegen/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_python_codegen). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_python_codegen). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_python_edits/Cargo.toml b/crates/ruff_python_edits/Cargo.toml index ee7fe55d84..8139512c94 100644 --- a/crates/ruff_python_edits/Cargo.toml +++ b/crates/ruff_python_edits/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_python_edits" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_python_edits/README.md b/crates/ruff_python_edits/README.md index b29cfbac56..0fcb26eb4e 100644 --- a/crates/ruff_python_edits/README.md +++ b/crates/ruff_python_edits/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_python_edits). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_python_edits). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_python_formatter/Cargo.toml b/crates/ruff_python_formatter/Cargo.toml index bd83458001..d31ed03f6d 100644 --- a/crates/ruff_python_formatter/Cargo.toml +++ b/crates/ruff_python_formatter/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_python_formatter" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_python_formatter/README.md b/crates/ruff_python_formatter/README.md index 81d8315b97..3850a6cd33 100644 --- a/crates/ruff_python_formatter/README.md +++ b/crates/ruff_python_formatter/README.md @@ -32,8 +32,8 @@ Head to [The Ruff Formatter](https://docs.astral.sh/ruff/formatter/) for usage i This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_python_formatter). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_python_formatter). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_python_importer/Cargo.toml b/crates/ruff_python_importer/Cargo.toml index 75fd18b06e..34d4c75971 100644 --- a/crates/ruff_python_importer/Cargo.toml +++ b/crates/ruff_python_importer/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_python_importer" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_python_importer/README.md b/crates/ruff_python_importer/README.md index 53bd8a920f..aaec954670 100644 --- a/crates/ruff_python_importer/README.md +++ b/crates/ruff_python_importer/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_python_importer). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_python_importer). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_python_index/Cargo.toml b/crates/ruff_python_index/Cargo.toml index 09fa88037a..3d211a1c8c 100644 --- a/crates/ruff_python_index/Cargo.toml +++ b/crates/ruff_python_index/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_python_index" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_python_index/README.md b/crates/ruff_python_index/README.md index e070490c66..a3e15130b9 100644 --- a/crates/ruff_python_index/README.md +++ b/crates/ruff_python_index/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_python_index). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_python_index). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_python_literal/Cargo.toml b/crates/ruff_python_literal/Cargo.toml index 99dd9000d6..cd9247d685 100644 --- a/crates/ruff_python_literal/Cargo.toml +++ b/crates/ruff_python_literal/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_python_literal" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = ["Charlie Marsh ", "RustPython Team"] edition = { workspace = true } diff --git a/crates/ruff_python_literal/README.md b/crates/ruff_python_literal/README.md index d7da0ef72f..ee9111c1b3 100644 --- a/crates/ruff_python_literal/README.md +++ b/crates/ruff_python_literal/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_python_literal). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_python_literal). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_python_parser/Cargo.toml b/crates/ruff_python_parser/Cargo.toml index 74a6d5d2f8..c4a6a5e931 100644 --- a/crates/ruff_python_parser/Cargo.toml +++ b/crates/ruff_python_parser/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_python_parser" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = ["Charlie Marsh ", "RustPython Team"] edition = { workspace = true } diff --git a/crates/ruff_python_parser/README.md b/crates/ruff_python_parser/README.md index 8a18475093..8e6bd7fc20 100644 --- a/crates/ruff_python_parser/README.md +++ b/crates/ruff_python_parser/README.md @@ -19,8 +19,8 @@ Refer to the [contributing guidelines](./CONTRIBUTING.md) to get started and Git This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_python_parser). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_python_parser). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_python_semantic/Cargo.toml b/crates/ruff_python_semantic/Cargo.toml index 3fac83715e..ceaa86fc88 100644 --- a/crates/ruff_python_semantic/Cargo.toml +++ b/crates/ruff_python_semantic/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_python_semantic" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_python_semantic/README.md b/crates/ruff_python_semantic/README.md index 50f8376dc9..0eb6a402d8 100644 --- a/crates/ruff_python_semantic/README.md +++ b/crates/ruff_python_semantic/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_python_semantic). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_python_semantic). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_python_stdlib/Cargo.toml b/crates/ruff_python_stdlib/Cargo.toml index accf685567..ad69091d6b 100644 --- a/crates/ruff_python_stdlib/Cargo.toml +++ b/crates/ruff_python_stdlib/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_python_stdlib" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_python_stdlib/README.md b/crates/ruff_python_stdlib/README.md index 265a41c4ee..a576670375 100644 --- a/crates/ruff_python_stdlib/README.md +++ b/crates/ruff_python_stdlib/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_python_stdlib). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_python_stdlib). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_python_trivia/Cargo.toml b/crates/ruff_python_trivia/Cargo.toml index 97cc8eed2a..b5a4beee03 100644 --- a/crates/ruff_python_trivia/Cargo.toml +++ b/crates/ruff_python_trivia/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_python_trivia" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_python_trivia/README.md b/crates/ruff_python_trivia/README.md index 8e13fe37bf..74c263ee11 100644 --- a/crates/ruff_python_trivia/README.md +++ b/crates/ruff_python_trivia/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_python_trivia). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_python_trivia). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_ranged_value/Cargo.toml b/crates/ruff_ranged_value/Cargo.toml index a276c221d7..d57b3d4914 100644 --- a/crates/ruff_ranged_value/Cargo.toml +++ b/crates/ruff_ranged_value/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_ranged_value" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_ranged_value/README.md b/crates/ruff_ranged_value/README.md index d3f8c1672f..873052be83 100644 --- a/crates/ruff_ranged_value/README.md +++ b/crates/ruff_ranged_value/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_ranged_value). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_ranged_value). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_server/Cargo.toml b/crates/ruff_server/Cargo.toml index eb3300d315..52542a38ab 100644 --- a/crates/ruff_server/Cargo.toml +++ b/crates/ruff_server/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_server" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_server/README.md b/crates/ruff_server/README.md index fd0bdf1390..e524f33463 100644 --- a/crates/ruff_server/README.md +++ b/crates/ruff_server/README.md @@ -24,8 +24,8 @@ You can also join us on [**Discord**](https://discord.com/invite/astral-sh). This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_server). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_server). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_source_file/Cargo.toml b/crates/ruff_source_file/Cargo.toml index 67a3da5464..d2f80721cf 100644 --- a/crates/ruff_source_file/Cargo.toml +++ b/crates/ruff_source_file/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_source_file" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_source_file/README.md b/crates/ruff_source_file/README.md index e279f17074..b54c4fa6d2 100644 --- a/crates/ruff_source_file/README.md +++ b/crates/ruff_source_file/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_source_file). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_source_file). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_text_size/Cargo.toml b/crates/ruff_text_size/Cargo.toml index 14f73e9efa..4a60d1d6ed 100644 --- a/crates/ruff_text_size/Cargo.toml +++ b/crates/ruff_text_size/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_text_size" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_text_size/README.md b/crates/ruff_text_size/README.md index d005864945..2a822631a1 100644 --- a/crates/ruff_text_size/README.md +++ b/crates/ruff_text_size/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_text_size). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_text_size). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_unicode_names2/Cargo.toml b/crates/ruff_unicode_names2/Cargo.toml index 04246526a2..7984d35713 100644 --- a/crates/ruff_unicode_names2/Cargo.toml +++ b/crates/ruff_unicode_names2/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_unicode_names2" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_unicode_names2_generator/Cargo.toml b/crates/ruff_unicode_names2_generator/Cargo.toml index ba6f7c4901..ae4122cb4e 100644 --- a/crates/ruff_unicode_names2_generator/Cargo.toml +++ b/crates/ruff_unicode_names2_generator/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_unicode_names2_generator" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = "2018" diff --git a/crates/ruff_unicode_names2_generator/README.md b/crates/ruff_unicode_names2_generator/README.md new file mode 100644 index 0000000000..56d936f38e --- /dev/null +++ b/crates/ruff_unicode_names2_generator/README.md @@ -0,0 +1,12 @@ + + +# ruff_unicode_names2_generator + +This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed +here is unstable and will have frequent breaking changes. + +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_unicode_names2_generator). + +See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for +details on versioning. diff --git a/crates/ruff_wasm/Cargo.toml b/crates/ruff_wasm/Cargo.toml index 1a792b8f30..053bd0f5bf 100644 --- a/crates/ruff_wasm/Cargo.toml +++ b/crates/ruff_wasm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_wasm" -version = "0.16.10" +version = "0.17.0" description = "WebAssembly bindings for Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_wasm/README.md b/crates/ruff_wasm/README.md index 5fd607dd58..35afe7ee64 100644 --- a/crates/ruff_wasm/README.md +++ b/crates/ruff_wasm/README.md @@ -55,8 +55,8 @@ const formatted = workspace.format(exampleDocument); This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.16.10) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_wasm). +This version (0.17.0) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_wasm). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ruff_workspace/Cargo.toml b/crates/ruff_workspace/Cargo.toml index 4a06c491e6..b94c8dff9f 100644 --- a/crates/ruff_workspace/Cargo.toml +++ b/crates/ruff_workspace/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ruff_workspace" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ruff_workspace/README.md b/crates/ruff_workspace/README.md index bf0da62f62..52f33644e2 100644 --- a/crates/ruff_workspace/README.md +++ b/crates/ruff_workspace/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ruff_workspace). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ruff_workspace). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ty_combine/Cargo.toml b/crates/ty_combine/Cargo.toml index 58961b990d..8a8502d58c 100644 --- a/crates/ty_combine/Cargo.toml +++ b/crates/ty_combine/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ty_combine" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" edition.workspace = true rust-version.workspace = true diff --git a/crates/ty_combine/README.md b/crates/ty_combine/README.md index 7bcc5ff716..caf333ea2f 100644 --- a/crates/ty_combine/README.md +++ b/crates/ty_combine/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ty_combine). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ty_combine). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ty_module_resolver/Cargo.toml b/crates/ty_module_resolver/Cargo.toml index 0e8022416e..23a635881c 100644 --- a/crates/ty_module_resolver/Cargo.toml +++ b/crates/ty_module_resolver/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ty_module_resolver" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ty_module_resolver/README.md b/crates/ty_module_resolver/README.md index a2e3c7570b..95bbbb04fa 100644 --- a/crates/ty_module_resolver/README.md +++ b/crates/ty_module_resolver/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ty_module_resolver). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ty_module_resolver). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ty_python_core/Cargo.toml b/crates/ty_python_core/Cargo.toml index e14b9b9963..dd405ccc4e 100644 --- a/crates/ty_python_core/Cargo.toml +++ b/crates/ty_python_core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ty_python_core" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ty_python_core/README.md b/crates/ty_python_core/README.md index 6fe5e3a0f9..769d8216de 100644 --- a/crates/ty_python_core/README.md +++ b/crates/ty_python_core/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ty_python_core). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ty_python_core). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ty_python_semantic/Cargo.toml b/crates/ty_python_semantic/Cargo.toml index 65aa39e085..3c6ff23b2e 100644 --- a/crates/ty_python_semantic/Cargo.toml +++ b/crates/ty_python_semantic/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ty_python_semantic" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ty_python_semantic/README.md b/crates/ty_python_semantic/README.md index 81397d7339..60f39bfb1f 100644 --- a/crates/ty_python_semantic/README.md +++ b/crates/ty_python_semantic/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ty_python_semantic). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ty_python_semantic). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ty_site_packages/Cargo.toml b/crates/ty_site_packages/Cargo.toml index 0e091c9550..37477f9fd8 100644 --- a/crates/ty_site_packages/Cargo.toml +++ b/crates/ty_site_packages/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ty_site_packages" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/crates/ty_site_packages/README.md b/crates/ty_site_packages/README.md index af0cf70da3..98419365c1 100644 --- a/crates/ty_site_packages/README.md +++ b/crates/ty_site_packages/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ty_site_packages). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ty_site_packages). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ty_static/Cargo.toml b/crates/ty_static/Cargo.toml index 48bcd6c534..838284d771 100644 --- a/crates/ty_static/Cargo.toml +++ b/crates/ty_static/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ty_static" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" edition = { workspace = true } rust-version = { workspace = true } diff --git a/crates/ty_static/README.md b/crates/ty_static/README.md index 24b40afaf0..e99a924c03 100644 --- a/crates/ty_static/README.md +++ b/crates/ty_static/README.md @@ -5,8 +5,8 @@ This crate is an internal component of [Ruff](https://crates.io/crates/ruff). The Rust API exposed here is unstable and will have frequent breaking changes. -This version (0.0.16) is a component of [Ruff 0.16.10](https://crates.io/crates/ruff/0.16.10). The -source can be found [here](https://github.com/astral-sh/ruff/blob/0.16.10/crates/ty_static). +This version (0.0.17) is a component of [Ruff 0.17.0](https://crates.io/crates/ruff/0.17.0). The +source can be found [here](https://github.com/astral-sh/ruff/blob/0.17.0/crates/ty_static). See Ruff's [crate versioning policy](https://docs.astral.sh/ruff/versioning/#crate-versioning) for details on versioning. diff --git a/crates/ty_vendored/Cargo.toml b/crates/ty_vendored/Cargo.toml index db146f6bbc..2a5919545e 100644 --- a/crates/ty_vendored/Cargo.toml +++ b/crates/ty_vendored/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ty_vendored" -version = "0.0.16" +version = "0.0.17" description = "This is an internal component crate of Ruff" authors = { workspace = true } edition = { workspace = true } diff --git a/docs/formatter.md b/docs/formatter.md index 8886f0b669..cd707a00b2 100644 --- a/docs/formatter.md +++ b/docs/formatter.md @@ -303,7 +303,7 @@ support needs to be explicitly included by adding it to `types_or`: ```yaml title=".pre-commit-config.yaml" repos: - repo: https://github.com/astral-sh/ruff-pre-commit - rev: v0.16.10 + rev: v0.17.0 hooks: - id: ruff-format types_or: [python, pyi, jupyter, markdown] diff --git a/docs/installation.md b/docs/installation.md index c8e771dbfb..a91204762c 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -5,8 +5,8 @@ Ruff is available as [`ruff`](https://pypi.org/project/ruff/) on PyPI. Ruff can be invoked directly with [`uvx`](https://docs.astral.sh/uv/): ```shell -uvx ruff@0.16.10 check # Lint all files in the current directory. -uvx ruff@0.16.10 format # Format all files in the current directory. +uvx ruff@0.17.0 check # Lint all files in the current directory. +uvx ruff@0.17.0 format # Format all files in the current directory. ``` Or installed with `uv` (recommended), `pip`, or `pipx`: diff --git a/docs/integrations.md b/docs/integrations.md index 5508cc5de6..fad006a9ee 100644 --- a/docs/integrations.md +++ b/docs/integrations.md @@ -80,7 +80,7 @@ You can add the following configuration to `.gitlab-ci.yml` to run a `ruff forma stage: build interruptible: true image: - name: ghcr.io/astral-sh/ruff:0.16.10-alpine + name: ghcr.io/astral-sh/ruff:0.17.0-alpine before_script: - cd $CI_PROJECT_DIR - ruff --version @@ -106,7 +106,7 @@ Ruff can be used as a [pre-commit](https://pre-commit.com) hook via [`ruff-pre-c ```yaml - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.16.10 + rev: v0.17.0 hooks: # Run the linter. - id: ruff-check @@ -119,7 +119,7 @@ To enable lint fixes, add the `--fix` argument to the lint hook: ```yaml - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.16.10 + rev: v0.17.0 hooks: # Run the linter. - id: ruff-check @@ -133,7 +133,7 @@ To avoid running on Jupyter Notebooks, remove `jupyter` from the list of allowed ```yaml - repo: https://github.com/astral-sh/ruff-pre-commit # Ruff version. - rev: v0.16.10 + rev: v0.17.0 hooks: # Run the linter. - id: ruff-check diff --git a/docs/tutorial.md b/docs/tutorial.md index d021dad1a5..a6d009253d 100644 --- a/docs/tutorial.md +++ b/docs/tutorial.md @@ -372,7 +372,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.16.10 + rev: v0.17.0 hooks: # Run the linter. - id: ruff-check diff --git a/pyproject.toml b/pyproject.toml index 75554f9c3f..243a583b22 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "maturin" [project] name = "ruff" -version = "0.16.10" +version = "0.17.0" description = "An extremely fast Python linter and code formatter, written in Rust." authors = [{ name = "Astral Software Inc.", email = "hey@astral.sh" }] readme = "README.md" diff --git a/scripts/benchmarks/pyproject.toml b/scripts/benchmarks/pyproject.toml index 5f2cb200ea..b458e6bfbc 100644 --- a/scripts/benchmarks/pyproject.toml +++ b/scripts/benchmarks/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "scripts" -version = "0.16.10" +version = "0.17.0" description = "" authors = ["Charles Marsh "] diff --git a/uv.lock b/uv.lock index 8340a41c51..e278f7c8fe 100644 --- a/uv.lock +++ b/uv.lock @@ -1505,7 +1505,7 @@ wheels = [ [[package]] name = "ruff" -version = "0.16.10" +version = "0.17.0" source = { editable = "." } [package.dev-dependencies]