diff --git a/README.md b/README.md index 01a6271..53b6246 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ # Ruff extension for Visual Studio Code [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) -[![image](https://img.shields.io/pypi/v/ruff/0.2.2.svg)](https://pypi.python.org/pypi/ruff) -[![image](https://img.shields.io/pypi/l/ruff/0.2.2.svg)](https://pypi.python.org/pypi/ruff) -[![image](https://img.shields.io/pypi/pyversions/ruff/0.2.2.svg)](https://pypi.python.org/pypi/ruff) +[![image](https://img.shields.io/pypi/v/ruff/0.3.0.svg)](https://pypi.python.org/pypi/ruff) +[![image](https://img.shields.io/pypi/l/ruff/0.3.0.svg)](https://pypi.python.org/pypi/ruff) +[![image](https://img.shields.io/pypi/pyversions/ruff/0.3.0.svg)](https://pypi.python.org/pypi/ruff) [![Actions status](https://github.com/astral-sh/ruff-vscode/workflows/CI/badge.svg)](https://github.com/astral-sh/ruff-vscode/actions) A Visual Studio Code extension for [Ruff](https://github.com/astral-sh/ruff), an extremely fast @@ -12,7 +12,7 @@ Python linter and code formatter, written in Rust. Available on the [Visual Stud Ruff can be used to replace Flake8 (plus dozens of plugins), Black, isort, pyupgrade, and more, all while executing tens or hundreds of times faster than any individual tool. -The extension ships with `ruff==0.2.2`. +The extension ships with `ruff==0.3.0`. (Interested in using [Ruff](https://github.com/astral-sh/ruff) with another editor? Check out [`ruff-lsp`](https://github.com/astral-sh/ruff-lsp).) @@ -71,14 +71,14 @@ This requires Ruff version `v0.1.3` or later. | codeAction.disableRuleComment.enable | `true` | Whether to display Quick Fix actions to disable rules via `noqa` suppression comments. | | codeAction.fixViolation.enable | `true` | Whether to display Quick Fix actions to autofix violations. | | enable | `true` | Whether to enable the Ruff extension. Modifying this setting requires restarting VS Code to take effect. | -| fixAll | `"explicit"` | Whether to register Ruff as capable of handling `source.fixAll` actions. | +| fixAll | `"explicit"` | Whether to register Ruff as capable of handling `source.fixAll` actions. | | ignoreStandardLibrary | `true` | Whether to ignore files that are inferred to be part of the Python standard library. | | importStrategy | `fromEnvironment` | Strategy for loading the `ruff` executable. `fromEnvironment` picks up Ruff from the environment, falling back to the bundled version if needed. `useBundled` uses the version bundled with the extension. | | interpreter | `[]` | Path to a Python interpreter to use to run the linter server. | | lint.args | `[]` | Additional command-line arguments to pass to `ruff check`, e.g., `"args": ["--config=/path/to/pyproject.toml"]`. Supports a subset of Ruff's command-line arguments, ignoring those that are required to operate the LSP, like `--force-exclude` and `--verbose`. | | lint.enable | `true` | Whether to enable linting. Set to `false` to use Ruff exclusively as a formatter. | | lint.run | `onType` | Run Ruff on every keystroke (`onType`) or on save (`onSave`). | -| organizeImports | `"explicit"` | Whether to register Ruff as capable of handling `source.organizeImports` actions. | +| organizeImports | `"explicit"` | Whether to register Ruff as capable of handling `source.organizeImports` actions. | | path | `[]` | Path to a custom `ruff` executable, e.g., `["/path/to/ruff"]`. | | showNotification | `off` | Setting to control when a notification is shown: `off`, `onError`, `onWarning`, `always`. | @@ -327,14 +327,18 @@ and Python log messages in the debug console under "Python Server". ## Release -- Bump the version in `package.json` (use even numbers for stable releases). +- Bump the version in `package.json` and `pyproject.toml` (use even numbers for stable releases). +- Bump the `ruff` and `ruff-lsp` versions in `pyproject.toml`. +- Update the `ruff` version in the README.md + - in the Bade URLs + - in "The extension ships with `ruff==...`" - Make sure you use Python 3.7 installed and as your default Python. - Run `python -m venv .venv` to create a venv and activate it. - Run `python -m pip install pip-tools` to install `pip-tools`. - Run `rm requirements.txt requirements-dev.txt` and then `just lock` to update `ruff` and `ruff-lsp`. - Create a new PR and merge it. - Update the Changelog -- [Create a new Release](https://github.com/astral-sh/ruff-vscode/releases/new), enter `x.x.x` (where `x.x.x` is the new version) into the *Choose a tag* selector. Click *Generate release notes*, curate the release notes and publish the release. +- [Create a new Release](https://github.com/astral-sh/ruff-vscode/releases/new), enter `x.x.x` (where `x.x.x` is the new version) into the _Choose a tag_ selector. Click _Generate release notes_, curate the release notes and publish the release. - The Release workflow publishes the extension to the VS Code marketplace. ## License diff --git a/pyproject.toml b/pyproject.toml index d3ce863..8f97022 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,13 +4,13 @@ build-backend = "hatchling.build" [project] name = "ruff-vscode" -version = "2024.12.0" +version = "2024.14.0" description = "A Visual Studio Code extension with support for the Ruff linter." authors = [{ name = "Charlie Marsh", email = "charlie.r.marsh@gmail.com" }] maintainers = [{ name = "Charlie Marsh", email = "charlie.r.marsh@gmail.com" }] requires-python = ">=3.7" license = "MIT" -dependencies = ["packaging>=23.1", "ruff-lsp==0.0.52", "ruff==0.2.2"] +dependencies = ["packaging>=23.1", "ruff-lsp==0.0.53", "ruff==0.3.0"] [project.optional-dependencies] dev = ["mypy==1.2.0", "python-lsp-jsonrpc==1.0.0"] diff --git a/requirements-dev.txt b/requirements-dev.txt index e33d941..c6068b1 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -74,30 +74,30 @@ python-lsp-jsonrpc==1.0.0 \ --hash=sha256:079b143be64b0a378bdb21dff5e28a8c1393fe7e8a654ef068322d754e545fc7 \ --hash=sha256:7bec170733db628d3506ea3a5288ff76aa33c70215ed223abdb0d95e957660bd # via ruff-vscode (./pyproject.toml) -ruff==0.2.2 \ - --hash=sha256:0a9efb032855ffb3c21f6405751d5e147b0c6b631e3ca3f6b20f917572b97eb6 \ - --hash=sha256:0c126da55c38dd917621552ab430213bdb3273bb10ddb67bc4b761989210eb6e \ - --hash=sha256:1695700d1e25a99d28f7a1636d85bafcc5030bba9d0578c0781ba1790dbcf51c \ - --hash=sha256:1ec49be4fe6ddac0503833f3ed8930528e26d1e60ad35c2446da372d16651ce9 \ - --hash=sha256:3b65494f7e4bed2e74110dac1f0d17dc8e1f42faaa784e7c58a98e335ec83d7e \ - --hash=sha256:5e1439c8f407e4f356470e54cdecdca1bd5439a0673792dbe34a2b0a551a2fe3 \ - --hash=sha256:5e22676a5b875bd72acd3d11d5fa9075d3a5f53b877fe7b4793e4673499318ba \ - --hash=sha256:6a61ea0ff048e06de273b2e45bd72629f470f5da8f71daf09fe481278b175001 \ - --hash=sha256:940de32dc8853eba0f67f7198b3e79bc6ba95c2edbfdfac2144c8235114d6726 \ - --hash=sha256:b0c232af3d0bd8f521806223723456ffebf8e323bd1e4e82b0befb20ba18388e \ - --hash=sha256:c9d15fc41e6054bfc7200478720570078f0b41c9ae4f010bcc16bd6f4d1aacdd \ - --hash=sha256:cc9a91ae137d687f43a44c900e5d95e9617cb37d4c989e462980ba27039d239d \ - --hash=sha256:d450b7fbff85913f866a5384d8912710936e2b96da74541c82c1b458472ddb39 \ - --hash=sha256:d920499b576f6c68295bc04e7b17b6544d9d05f196bb3aac4358792ef6f34325 \ - --hash=sha256:e62ed7f36b3068a30ba39193a14274cd706bc486fad521276458022f7bccb31d \ - --hash=sha256:ecd46e3106850a5c26aee114e562c329f9a1fbe9e4821b008c4404f64ff9ce73 \ - --hash=sha256:f63d96494eeec2fc70d909393bcd76c69f35334cdbd9e20d089fb3f0640216ca +ruff==0.3.0 \ + --hash=sha256:0886184ba2618d815067cf43e005388967b67ab9c80df52b32ec1152ab49f53a \ + --hash=sha256:128265876c1d703e5f5e5a4543bd8be47c73a9ba223fd3989d4aa87dd06f312f \ + --hash=sha256:19eacceb4c9406f6c41af806418a26fdb23120dfe53583df76d1401c92b7c14b \ + --hash=sha256:23dbb808e2f1d68eeadd5f655485e235c102ac6f12ad31505804edced2a5ae77 \ + --hash=sha256:2f7dbba46e2827dfcb0f0cc55fba8e96ba7c8700e0a866eb8cef7d1d66c25dcb \ + --hash=sha256:3ef655c51f41d5fa879f98e40c90072b567c666a7114fa2d9fe004dffba00932 \ + --hash=sha256:5da894a29ec018a8293d3d17c797e73b374773943e8369cfc50495573d396933 \ + --hash=sha256:755c22536d7f1889be25f2baf6fedd019d0c51d079e8417d4441159f3bcd30c2 \ + --hash=sha256:7deb528029bacf845bdbb3dbb2927d8ef9b4356a5e731b10eef171e3f0a85944 \ + --hash=sha256:9343690f95710f8cf251bee1013bf43030072b9f8d012fbed6ad702ef70d360a \ + --hash=sha256:a1f3ed501a42f60f4dedb7805fa8d4534e78b4e196f536bac926f805f0743d49 \ + --hash=sha256:b08b356d06a792e49a12074b62222f9d4ea2a11dca9da9f68163b28c71bf1dd4 \ + --hash=sha256:cc30a9053ff2f1ffb505a585797c23434d5f6c838bacfe206c0e6cf38c921a1e \ + --hash=sha256:d0d3d7ef3d4f06433d592e5f7d813314a34601e6c5be8481cccb7fa760aa243e \ + --hash=sha256:dd73fe7f4c28d317855da6a7bc4aa29a1500320818dd8f27df95f70a01b8171f \ + --hash=sha256:e1e0d4381ca88fb2b73ea0766008e703f33f460295de658f5467f6f229658c19 \ + --hash=sha256:e3a4a6d46aef0a84b74fcd201a4401ea9a6cd85614f6a9435f2d33dd8cefbf83 # via # ruff-lsp # ruff-vscode (./pyproject.toml) -ruff-lsp==0.0.52 \ - --hash=sha256:3861c8fb81db005d51c0c15939fae05a6488182847bad936e1cc95bad519d107 \ - --hash=sha256:b7a72a4f4defb9037f81100f079ed6be37beaf8d201b5c0798bf54a723b46e56 +ruff-lsp==0.0.53 \ + --hash=sha256:5ea39968510d046b3c62dc5a7e3b52e867c2de14af34a406883fe05d55bab2b0 \ + --hash=sha256:de38eccd06020350630ac3518fe04a9640c8f66908758d8a623b5ea021bf84b0 # via ruff-vscode (./pyproject.toml) tomli==2.0.1 \ --hash=sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc \ diff --git a/requirements.txt b/requirements.txt index 956319b..4004704 100644 --- a/requirements.txt +++ b/requirements.txt @@ -38,30 +38,30 @@ pygls==1.2.1 \ --hash=sha256:04f9b9c115b622dcc346fb390289066565343d60245a424eca77cb429b911ed8 \ --hash=sha256:7dcfcf12b6f15beb606afa46de2ed348b65a279c340ef2242a9a35c22eeafe94 # via ruff-lsp -ruff==0.2.2 \ - --hash=sha256:0a9efb032855ffb3c21f6405751d5e147b0c6b631e3ca3f6b20f917572b97eb6 \ - --hash=sha256:0c126da55c38dd917621552ab430213bdb3273bb10ddb67bc4b761989210eb6e \ - --hash=sha256:1695700d1e25a99d28f7a1636d85bafcc5030bba9d0578c0781ba1790dbcf51c \ - --hash=sha256:1ec49be4fe6ddac0503833f3ed8930528e26d1e60ad35c2446da372d16651ce9 \ - --hash=sha256:3b65494f7e4bed2e74110dac1f0d17dc8e1f42faaa784e7c58a98e335ec83d7e \ - --hash=sha256:5e1439c8f407e4f356470e54cdecdca1bd5439a0673792dbe34a2b0a551a2fe3 \ - --hash=sha256:5e22676a5b875bd72acd3d11d5fa9075d3a5f53b877fe7b4793e4673499318ba \ - --hash=sha256:6a61ea0ff048e06de273b2e45bd72629f470f5da8f71daf09fe481278b175001 \ - --hash=sha256:940de32dc8853eba0f67f7198b3e79bc6ba95c2edbfdfac2144c8235114d6726 \ - --hash=sha256:b0c232af3d0bd8f521806223723456ffebf8e323bd1e4e82b0befb20ba18388e \ - --hash=sha256:c9d15fc41e6054bfc7200478720570078f0b41c9ae4f010bcc16bd6f4d1aacdd \ - --hash=sha256:cc9a91ae137d687f43a44c900e5d95e9617cb37d4c989e462980ba27039d239d \ - --hash=sha256:d450b7fbff85913f866a5384d8912710936e2b96da74541c82c1b458472ddb39 \ - --hash=sha256:d920499b576f6c68295bc04e7b17b6544d9d05f196bb3aac4358792ef6f34325 \ - --hash=sha256:e62ed7f36b3068a30ba39193a14274cd706bc486fad521276458022f7bccb31d \ - --hash=sha256:ecd46e3106850a5c26aee114e562c329f9a1fbe9e4821b008c4404f64ff9ce73 \ - --hash=sha256:f63d96494eeec2fc70d909393bcd76c69f35334cdbd9e20d089fb3f0640216ca +ruff==0.3.0 \ + --hash=sha256:0886184ba2618d815067cf43e005388967b67ab9c80df52b32ec1152ab49f53a \ + --hash=sha256:128265876c1d703e5f5e5a4543bd8be47c73a9ba223fd3989d4aa87dd06f312f \ + --hash=sha256:19eacceb4c9406f6c41af806418a26fdb23120dfe53583df76d1401c92b7c14b \ + --hash=sha256:23dbb808e2f1d68eeadd5f655485e235c102ac6f12ad31505804edced2a5ae77 \ + --hash=sha256:2f7dbba46e2827dfcb0f0cc55fba8e96ba7c8700e0a866eb8cef7d1d66c25dcb \ + --hash=sha256:3ef655c51f41d5fa879f98e40c90072b567c666a7114fa2d9fe004dffba00932 \ + --hash=sha256:5da894a29ec018a8293d3d17c797e73b374773943e8369cfc50495573d396933 \ + --hash=sha256:755c22536d7f1889be25f2baf6fedd019d0c51d079e8417d4441159f3bcd30c2 \ + --hash=sha256:7deb528029bacf845bdbb3dbb2927d8ef9b4356a5e731b10eef171e3f0a85944 \ + --hash=sha256:9343690f95710f8cf251bee1013bf43030072b9f8d012fbed6ad702ef70d360a \ + --hash=sha256:a1f3ed501a42f60f4dedb7805fa8d4534e78b4e196f536bac926f805f0743d49 \ + --hash=sha256:b08b356d06a792e49a12074b62222f9d4ea2a11dca9da9f68163b28c71bf1dd4 \ + --hash=sha256:cc30a9053ff2f1ffb505a585797c23434d5f6c838bacfe206c0e6cf38c921a1e \ + --hash=sha256:d0d3d7ef3d4f06433d592e5f7d813314a34601e6c5be8481cccb7fa760aa243e \ + --hash=sha256:dd73fe7f4c28d317855da6a7bc4aa29a1500320818dd8f27df95f70a01b8171f \ + --hash=sha256:e1e0d4381ca88fb2b73ea0766008e703f33f460295de658f5467f6f229658c19 \ + --hash=sha256:e3a4a6d46aef0a84b74fcd201a4401ea9a6cd85614f6a9435f2d33dd8cefbf83 # via # ruff-lsp # ruff-vscode (./pyproject.toml) -ruff-lsp==0.0.52 \ - --hash=sha256:3861c8fb81db005d51c0c15939fae05a6488182847bad936e1cc95bad519d107 \ - --hash=sha256:b7a72a4f4defb9037f81100f079ed6be37beaf8d201b5c0798bf54a723b46e56 +ruff-lsp==0.0.53 \ + --hash=sha256:5ea39968510d046b3c62dc5a7e3b52e867c2de14af34a406883fe05d55bab2b0 \ + --hash=sha256:de38eccd06020350630ac3518fe04a9640c8f66908758d8a623b5ea021bf84b0 # via ruff-vscode (./pyproject.toml) typing-extensions==4.7.1 \ --hash=sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36 \ diff --git a/tests/client/constants.py b/tests/client/constants.py index 2931715..6d3657e 100644 --- a/tests/client/constants.py +++ b/tests/client/constants.py @@ -1,4 +1,5 @@ """Constants for use with tests.""" + from __future__ import annotations import pathlib diff --git a/tests/client/utils.py b/tests/client/utils.py index 47b0572..32c9e11 100644 --- a/tests/client/utils.py +++ b/tests/client/utils.py @@ -1,4 +1,5 @@ """Utility functions for use with tests.""" + from __future__ import annotations import pathlib diff --git a/tests/test_server.py b/tests/test_server.py index 4361776..223ea5b 100644 --- a/tests/test_server.py +++ b/tests/test_server.py @@ -1,4 +1,5 @@ """Test for linting over LSP.""" + from __future__ import annotations import os