Release Notes
This is a follow-up to release 0.10.0. Because of a mistake in the release process, the requires-python
inference changes were not included in that release. Ruff 0.11.0 now includes this change as well as the stabilization of the preview behavior for PGH004
.
Breaking changes
-
Changes to how the Python version is inferred when a
target-version
is not specified (#16319)In previous versions of Ruff, you could specify your Python version with:
- The
target-version
option in aruff.toml
file or the[tool.ruff]
section of a pyproject.toml file. - The
project.requires-python
field in apyproject.toml
file with a[tool.ruff]
section.
These options worked well in most cases, and are still recommended for fine control of the Python version. However, because of the way Ruff discovers config files,
pyproject.toml
files without a[tool.ruff]
section would be ignored, including therequires-python
setting. Ruff would then use the default Python version (3.9 as of this writing) instead, which is surprising when you've attempted to request another version.In v0.10, config discovery has been updated to address this issue:
- If Ruff finds a
ruff.toml
file without atarget-version
, it will check
for apyproject.toml
file in the same directory and respect its
requires-python
version, even if it does not contain a[tool.ruff]
section. - If Ruff finds a user-level configuration, the
requires-python
field of the closestpyproject.toml
in a parent directory will take precedence. - If there is no config file (
ruff.toml
orpyproject.toml
with a
[tool.ruff]
section) in the directory of the file being checked, Ruff will
search for the closestpyproject.toml
in the parent directories and use its
requires-python
setting.
- The
Stabilization
The following behaviors have been stabilized:
blanket-noqa
(PGH004
): Also detect blanked file-level noqa comments (and not just line level comments).
Preview features
- [syntax-errors] Tuple unpacking in
for
statement iterator clause before Python 3.9 (#16558)
Install ruff 0.11.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.11.0/ruff-installer.sh | sh
Install prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/astral-sh/ruff/releases/download/0.11.0/ruff-installer.ps1 | iex"