Skip to content

Commit f14edd8

Browse files
authored
Bump 0.15.4 (#23595)
Just to be sure, I ran the example from #23587 again on this branch: ```console ~/astral/ruff on  brent/0.15.4 [$] is 📦 v0.15.4 via 🐍 v3.14.2 via 🦀 v1.93.0 ❯ echo 'x = id' | uvx ruff@latest --isolated check - --preview --select ANN003,PLR1712 error: Ruff crashed. If you could open an issue at: https://github.com/astral-sh/ruff/issues/new?title=%5BPanic%5D ...quoting the executed command, along with the relevant file contents and `pyproject.toml` settings, we'd be very appreciative! thread 'main' (1681253) panicked at crates/ruff_python_semantic/src/definition.rs:285:26: index out of bounds: the len is 0 but the index is 0 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace ~/astral/ruff on  brent/0.15.4 [$] is 📦 v0.15.4 via 🐍 v3.14.2 via 🦀 v1.93.0 ❯ echo 'x = id' | just run --isolated check - --preview --select ANN003,PLR1712 cargo run -p ruff -- --isolated check - --preview --select ANN003,PLR1712 Compiling ruff_python_semantic v0.0.0 (/home/brent/astral/ruff/crates/ruff_python_semantic) Compiling ruff v0.15.4 (/home/brent/astral/ruff/crates/ruff) Compiling ruff_linter v0.15.4 (/home/brent/astral/ruff/crates/ruff_linter) Compiling ruff_graph v0.1.0 (/home/brent/astral/ruff/crates/ruff_graph) Compiling ruff_workspace v0.0.0 (/home/brent/astral/ruff/crates/ruff_workspace) Compiling ruff_markdown v0.0.0 (/home/brent/astral/ruff/crates/ruff_markdown) Compiling ruff_server v0.2.2 (/home/brent/astral/ruff/crates/ruff_server) Finished `dev` profile [unoptimized + debuginfo] target(s) in 23.14s Running `target/debug/ruff --isolated check - --preview --select ANN003,PLR1712` warning: Detected debug build without --no-cache. All checks passed! ```
1 parent fd09d37 commit f14edd8

11 files changed

Lines changed: 40 additions & 17 deletions

File tree

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,28 @@
11
# Changelog
22

3+
## 0.15.4
4+
5+
Released on 2026-02-26.
6+
7+
This is a follow-up release to 0.15.3 that resolves a panic when the new rule `PLR1712` was enabled with any rule that analyzes definitions, such as many of the `ANN` or `D` rules.
8+
9+
### Bug fixes
10+
11+
- Fix panic on access to definitions after analyzing definitions ([#23588](https://github.com/astral-sh/ruff/pull/23588))
12+
- \[`pyflakes`\] Suppress false positive in `F821` for names used before `del` in stub files ([#23550](https://github.com/astral-sh/ruff/pull/23550))
13+
14+
### Documentation
15+
16+
- Clarify first-party import detection in Ruff ([#23591](https://github.com/astral-sh/ruff/pull/23591))
17+
- Fix incorrect `import-heading` example ([#23568](https://github.com/astral-sh/ruff/pull/23568))
18+
19+
### Contributors
20+
21+
- [@stakeswky](https://github.com/stakeswky)
22+
- [@ntBre](https://github.com/ntBre)
23+
- [@thejcannon](https://github.com/thejcannon)
24+
- [@GeObts](https://github.com/GeObts)
25+
326
## 0.15.3
427

528
Released on 2026-02-26.

Cargo.lock

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,8 @@ curl -LsSf https://astral.sh/ruff/install.sh | sh
152152
powershell -c "irm https://astral.sh/ruff/install.ps1 | iex"
153153

154154
# For a specific version.
155-
curl -LsSf https://astral.sh/ruff/0.15.3/install.sh | sh
156-
powershell -c "irm https://astral.sh/ruff/0.15.3/install.ps1 | iex"
155+
curl -LsSf https://astral.sh/ruff/0.15.4/install.sh | sh
156+
powershell -c "irm https://astral.sh/ruff/0.15.4/install.ps1 | iex"
157157
```
158158

159159
You can also install Ruff via [Homebrew](https://formulae.brew.sh/formula/ruff), [Conda](https://anaconda.org/conda-forge/ruff),
@@ -186,7 +186,7 @@ Ruff can also be used as a [pre-commit](https://pre-commit.com/) hook via [`ruff
186186
```yaml
187187
- repo: https://github.com/astral-sh/ruff-pre-commit
188188
# Ruff version.
189-
rev: v0.15.3
189+
rev: v0.15.4
190190
hooks:
191191
# Run the linter.
192192
- id: ruff-check

crates/ruff/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ruff"
3-
version = "0.15.3"
3+
version = "0.15.4"
44
publish = true
55
authors = { workspace = true }
66
edition = { workspace = true }

crates/ruff_linter/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ruff_linter"
3-
version = "0.15.3"
3+
version = "0.15.4"
44
publish = false
55
authors = { workspace = true }
66
edition = { workspace = true }

crates/ruff_wasm/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "ruff_wasm"
3-
version = "0.15.3"
3+
version = "0.15.4"
44
publish = false
55
authors = { workspace = true }
66
edition = { workspace = true }

docs/formatter.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ support needs to be explicitly included by adding it to `types_or`:
328328
```yaml title=".pre-commit-config.yaml"
329329
repos:
330330
- repo: https://github.com/astral-sh/ruff-pre-commit
331-
rev: v0.15.3
331+
rev: v0.15.4
332332
hooks:
333333
- id: ruff-format
334334
types_or: [python, pyi, jupyter, markdown]

docs/integrations.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ You can add the following configuration to `.gitlab-ci.yml` to run a `ruff forma
8080
stage: build
8181
interruptible: true
8282
image:
83-
name: ghcr.io/astral-sh/ruff:0.15.3-alpine
83+
name: ghcr.io/astral-sh/ruff:0.15.4-alpine
8484
before_script:
8585
- cd $CI_PROJECT_DIR
8686
- ruff --version
@@ -106,7 +106,7 @@ Ruff can be used as a [pre-commit](https://pre-commit.com) hook via [`ruff-pre-c
106106
```yaml
107107
- repo: https://github.com/astral-sh/ruff-pre-commit
108108
# Ruff version.
109-
rev: v0.15.3
109+
rev: v0.15.4
110110
hooks:
111111
# Run the linter.
112112
- id: ruff-check
@@ -119,7 +119,7 @@ To enable lint fixes, add the `--fix` argument to the lint hook:
119119
```yaml
120120
- repo: https://github.com/astral-sh/ruff-pre-commit
121121
# Ruff version.
122-
rev: v0.15.3
122+
rev: v0.15.4
123123
hooks:
124124
# Run the linter.
125125
- id: ruff-check
@@ -133,7 +133,7 @@ To avoid running on Jupyter Notebooks, remove `jupyter` from the list of allowed
133133
```yaml
134134
- repo: https://github.com/astral-sh/ruff-pre-commit
135135
# Ruff version.
136-
rev: v0.15.3
136+
rev: v0.15.4
137137
hooks:
138138
# Run the linter.
139139
- id: ruff-check

docs/tutorial.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ This tutorial has focused on Ruff's command-line interface, but Ruff can also be
369369
```yaml
370370
- repo: https://github.com/astral-sh/ruff-pre-commit
371371
# Ruff version.
372-
rev: v0.15.3
372+
rev: v0.15.4
373373
hooks:
374374
# Run the linter.
375375
- id: ruff-check

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "maturin"
44

55
[project]
66
name = "ruff"
7-
version = "0.15.3"
7+
version = "0.15.4"
88
description = "An extremely fast Python linter and code formatter, written in Rust."
99
authors = [{ name = "Astral Software Inc.", email = "[email protected]" }]
1010
readme = "README.md"

0 commit comments

Comments
 (0)