Skip to content

Commit a2f11d2

Browse files
amyreesentBre
andauthored
Prepare for 0.15.1 (#23253)
- **Changelog** - **Everything else** --------- Co-authored-by: Brent Westbrook <36778786+ntBre@users.noreply.github.com>
1 parent d29628e commit a2f11d2

13 files changed

Lines changed: 105 additions & 19 deletions

File tree

CHANGELOG.md

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

3+
## 0.15.1
4+
5+
Released on 2026-02-12.
6+
7+
### Preview features
8+
9+
- \[`airflow`\] Add ruff rules to catch deprecated Airflow imports for Airflow 3.1 (`AIR321`) ([#22376](https://github.com/astral-sh/ruff/pull/22376))
10+
- \[`airflow`\] Third positional parameter not named `ti_key` should be flagged for `BaseOperatorLink.get_link` (`AIR303`) ([#22828](https://github.com/astral-sh/ruff/pull/22828))
11+
- \[`flake8-gettext`\] Fix false negatives for plural argument of `ngettext` (`INT001`, `INT002`, `INT003`) ([#21078](https://github.com/astral-sh/ruff/pull/21078))
12+
- \[`pyflakes`\] Fix infinite loop in preview fix for `unused-import` (`F401`) ([#23038](https://github.com/astral-sh/ruff/pull/23038))
13+
- \[`pygrep-hooks`\] Detect non-existent mock methods in standalone expressions (`PGH005`) ([#22830](https://github.com/astral-sh/ruff/pull/22830))
14+
- \[`pylint`\] Allow dunder submodules and improve diagnostic range (`PLC2701`) ([#22804](https://github.com/astral-sh/ruff/pull/22804))
15+
- \[`pyupgrade`\] Improve diagnostic range for tuples (`UP024`) ([#23013](https://github.com/astral-sh/ruff/pull/23013))
16+
- \[`refurb`\] Check subscripts in tuple do not use lambda parameters in `reimplemented-operator` (`FURB118`) ([#23079](https://github.com/astral-sh/ruff/pull/23079))
17+
- \[`ruff`\] Detect mutable defaults in `field` calls (`RUF008`) ([#23046](https://github.com/astral-sh/ruff/pull/23046))
18+
- \[`ruff`\] Ignore std `cmath.inf` (`RUF069`) ([#23120](https://github.com/astral-sh/ruff/pull/23120))
19+
- \[`ruff`\] New rule `float-equality-comparison` (`RUF069`) ([#20585](https://github.com/astral-sh/ruff/pull/20585))
20+
- Don't format unlabeled Markdown code blocks ([#23106](https://github.com/astral-sh/ruff/pull/23106))
21+
- Markdown formatting support in LSP ([#23063](https://github.com/astral-sh/ruff/pull/23063))
22+
- Support Quarto Markdown language markers ([#22947](https://github.com/astral-sh/ruff/pull/22947))
23+
- Support formatting `pycon` Markdown code blocks ([#23112](https://github.com/astral-sh/ruff/pull/23112))
24+
- Use extension mapping to select Markdown code block language ([#22934](https://github.com/astral-sh/ruff/pull/22934))
25+
26+
### Bug fixes
27+
28+
- Avoid false positive for undefined variables in `FAST001` ([#23224](https://github.com/astral-sh/ruff/pull/23224))
29+
- Avoid introducing syntax errors for `FAST003` autofix ([#23227](https://github.com/astral-sh/ruff/pull/23227))
30+
- Avoid suggesting `InitVar` for `__post_init__` that references PEP 695 type parameters ([#23226](https://github.com/astral-sh/ruff/pull/23226))
31+
- Deduplicate type variables in generic functions ([#23225](https://github.com/astral-sh/ruff/pull/23225))
32+
- Fix exception handler parenthesis removal for Python 3.14+ ([#23126](https://github.com/astral-sh/ruff/pull/23126))
33+
- Fix f-string middle panic when parsing t-strings ([#23232](https://github.com/astral-sh/ruff/pull/23232))
34+
- Wrap `RUF020` target for multiline fixes ([#23210](https://github.com/astral-sh/ruff/pull/23210))
35+
- Wrap `UP007` target for multiline fixes ([#23208](https://github.com/astral-sh/ruff/pull/23208))
36+
- Fix missing diagnostics for last range suppression in file ([#23242](https://github.com/astral-sh/ruff/pull/23242))
37+
- \[`pyupgrade`\] Fix syntax error on string with newline escape and comment (`UP037`) ([#22968](https://github.com/astral-sh/ruff/pull/22968))
38+
39+
### Rule changes
40+
41+
- Use `ruff` instead of `Ruff` as the program name in GitHub output format ([#23240](https://github.com/astral-sh/ruff/pull/23240))
42+
- \[`PT006`\] Fix syntax error when unpacking nested tuples in `parametrize` fixes (#22441) ([#22464](https://github.com/astral-sh/ruff/pull/22464))
43+
- \[`airflow`\] Catch deprecated attribute access from context key for Airflow 3.0 (`AIR301`) ([#22850](https://github.com/astral-sh/ruff/pull/22850))
44+
- \[`airflow`\] Capture deprecated arguments and a decorator (`AIR301`) ([#23170](https://github.com/astral-sh/ruff/pull/23170))
45+
- \[`flake8-boolean-trap`\] Add `multiprocessing.Value` to excluded functions for `FBT003` ([#23010](https://github.com/astral-sh/ruff/pull/23010))
46+
- \[`flake8-bugbear`\] Add a secondary annotation showing the previous occurrence (`B033`) ([#22634](https://github.com/astral-sh/ruff/pull/22634))
47+
- \[`flake8-type-checking`\] Add sub-diagnostic showing the runtime use of an annotation (`TC004`) ([#23091](https://github.com/astral-sh/ruff/pull/23091))
48+
- \[`isort`\] Support configurable import section heading comments ([#23151](https://github.com/astral-sh/ruff/pull/23151))
49+
- \[`ruff`\] Improve the diagnostic for `RUF012` ([#23202](https://github.com/astral-sh/ruff/pull/23202))
50+
51+
### Formatter
52+
53+
- Suppress diagnostic output for `format --check --silent` ([#17736](https://github.com/astral-sh/ruff/pull/17736))
54+
55+
### Documentation
56+
57+
- Add tabbed shell completion documentation ([#23169](https://github.com/astral-sh/ruff/pull/23169))
58+
- Explain how to enable Markdown formatting for pre-commit hook ([#23077](https://github.com/astral-sh/ruff/pull/23077))
59+
- Fixed import in `runtime-evaluated-decorators` example ([#23187](https://github.com/astral-sh/ruff/pull/23187))
60+
- Update ruff server contributing guide ([#23060](https://github.com/astral-sh/ruff/pull/23060))
61+
62+
### Other changes
63+
64+
- Exclude WASM artifacts from GitHub releases ([#23221](https://github.com/astral-sh/ruff/pull/23221))
65+
66+
### Contributors
67+
68+
- [@mkniewallner](https://github.com/mkniewallner)
69+
- [@bxff](https://github.com/bxff)
70+
- [@dylwil3](https://github.com/dylwil3)
71+
- [@Avasam](https://github.com/Avasam)
72+
- [@amyreese](https://github.com/amyreese)
73+
- [@charliermarsh](https://github.com/charliermarsh)
74+
- [@Alex-ley-scrub](https://github.com/Alex-ley-scrub)
75+
- [@Kalmaegi](https://github.com/Kalmaegi)
76+
- [@danparizher](https://github.com/danparizher)
77+
- [@AiyionPrime](https://github.com/AiyionPrime)
78+
- [@eureka928](https://github.com/eureka928)
79+
- [@11happy](https://github.com/11happy)
80+
- [@Jkhall81](https://github.com/Jkhall81)
81+
- [@chirizxc](https://github.com/chirizxc)
82+
- [@leandrobbraga](https://github.com/leandrobbraga)
83+
- [@tvatter](https://github.com/tvatter)
84+
- [@anishgirianish](https://github.com/anishgirianish)
85+
- [@shaanmajid](https://github.com/shaanmajid)
86+
- [@ntBre](https://github.com/ntBre)
87+
- [@sjyangkevin](https://github.com/sjyangkevin)
88+
389
## 0.15.0
490

591
Released on 2026-02-03.

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.0/install.sh | sh
156-
powershell -c "irm https://astral.sh/ruff/0.15.0/install.ps1 | iex"
155+
curl -LsSf https://astral.sh/ruff/0.15.1/install.sh | sh
156+
powershell -c "irm https://astral.sh/ruff/0.15.1/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.0
189+
rev: v0.15.1
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.0"
3+
version = "0.15.1"
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.0"
3+
version = "0.15.1"
44
publish = false
55
authors = { workspace = true }
66
edition = { workspace = true }

crates/ruff_linter/src/rules/airflow/rules/moved_in_3_1.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ use ruff_text_size::TextRange;
3131
/// convert_to_utc(datetime.now())
3232
/// ```
3333
#[derive(ViolationMetadata)]
34-
#[violation_metadata(preview_since = "NEXT_RUFF_VERSION")]
34+
#[violation_metadata(preview_since = "0.15.1")]
3535
pub(crate) struct Airflow31Moved {
3636
deprecated: String,
3737
replacement: Replacement,

crates/ruff_linter/src/rules/ruff/rules/float_equality_comparison.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ use crate::linter::float::is_infinity_string_literal;
101101
/// - [NumPy documentation: `numpy.allclose`](https://numpy.org/doc/stable/reference/generated/numpy.allclose.html#numpy-allclose)
102102
/// - [PyTorch documentation: `torch.isclose`](https://docs.pytorch.org/docs/stable/generated/torch.isclose.html#torch-isclose)
103103
#[derive(ViolationMetadata)]
104-
#[violation_metadata(preview_since = "NEXT_RUFF_VERSION")]
104+
#[violation_metadata(preview_since = "0.15.1")]
105105
pub(crate) struct FloatEqualityComparison<'a> {
106106
left: &'a str,
107107
right: &'a str,

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.0"
3+
version = "0.15.1"
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.0
331+
rev: v0.15.1
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.0-alpine
83+
name: ghcr.io/astral-sh/ruff:0.15.1-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.0
109+
rev: v0.15.1
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.0
122+
rev: v0.15.1
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.0
136+
rev: v0.15.1
137137
hooks:
138138
# Run the linter.
139139
- id: ruff-check

0 commit comments

Comments
 (0)