Skip to content

Conversation

@ntBre
Copy link
Contributor

@ntBre ntBre commented Jun 16, 2025

Summary

As @AlexWaygood noted on the 0.12 release blog post draft, the existing example is a bit confusing. Either **/*.py or just *.py, as I went with here, makes more sense, although the old version (scripts/**.py) also worked when I tested it. However, this probably shouldn't be relied upon since the globset docs say:

Using ** anywhere else is illegal

where "anywhere else" comes after the listing of the three valid positions:

  1. At the start of a pattern (**/)
  2. At the end of a pattern (/**)
  3. Or directly between two slashes (/**/)

I think the current version is luckily treated the same as a single *, and the default globbing settings allow it to match subdirectories such that the new example pattern will apply to the whole scripts tree in a project like this:

.
├── README.md
├── pyproject.toml
├── scripts
│   ├── matching.py
│   └── sub
│       └── nested.py
└── src
    └── main.py

Test Plan

Local testing of the new pattern, but the specifics of the pattern aren't as important as having a more intuitive-looking/correct example.

Summary
--

As @AlexWaygood noted on the 0.12 release blog post draft, the existing example
is a bit confusing. Either `**/*.py` or just `*.py`, as I went with here, makes
more sense, although the old version (`scripts/**.py`) also worked when I tested
it. However, this probably shouldn't be relied upon since the
[globset](https://docs.rs/globset/latest/globset/#syntax) docs say:

> Using ** anywhere else is illegal

where "anywhere else" comes after the listing of the three valid positions:
1. At the start of a pattern (`**/`)
2. At the end of a pattern (`/**`)
3. Or directly between two slashes (`/**/`)

I think the current version is luckily treated the same as a single `*`, and the
default globbing settings allow it to match subdirectories such that the new
example pattern will apply to the whole `scripts` tree in a project like this:

```
.
├── README.md
├── pyproject.toml
├── scripts
│   ├── matching.py
│   └── sub
│       └── nested.py
└── src
    └── main.py
```

Test Plan
--

Local testing of the new pattern, but the specifics of the pattern aren't as
important as having a more intuitive-looking/correct example.
@ntBre ntBre added the documentation Improvements or additions to documentation label Jun 16, 2025
@ntBre ntBre requested a review from MichaReiser June 16, 2025 14:09
@github-actions
Copy link
Contributor

ruff-ecosystem results

Linter (stable)

✅ ecosystem check detected no linter changes.

Linter (preview)

✅ ecosystem check detected no linter changes.

@ntBre ntBre merged commit ee3152d into main Jun 16, 2025
34 checks passed
@ntBre ntBre deleted the brent/fix-per-file-target-version-glob branch June 16, 2025 14:41
dcreager added a commit that referenced this pull request Jun 16, 2025
* main: (38 commits)
  [`pyupgrade`] Suppress `UP008` diagnostic if `super` symbol is not builtin (#18688)
  [pylint] Fix `PLW0128` to check assignment targets in square brackets and after asterisks (#18665)
  [`refurb`] Make the fix for `FURB163` unsafe for `log2`, `log10`, `*args`, and deleted comments (#18645)
  [ty] allow `T: Never` as subtype of `Never` (#18687)
  [ty] Use more parallelism when running corpus tests (#18711)
  [ty] Support `dataclasses.KW_ONLY` (#18677)
  [`ruff`] Check for non-context-manager use of `pytest.raises`, `pytest.warns`, and `pytest.deprecated_call` (`RUF061`) (#17368)
  Add syntax error when conversion flag does not immediately follow exclamation mark (#18706)
  [`flake8-pyi`] Fix `custom-typevar-for-self` with string annotations (`PYI019`) (#18311)
  Drop confusing second `*` from glob pattern example (#18709)
  [ty] Stabilize completions (#18650)
  [ty] Correctly label typeshed-sync PRs (#18702)
  Update Rust crate memchr to v2.7.5 (#18696)
  Update dependency react-resizable-panels to v3.0.3 (#18691)
  Update Rust crate clap to v4.5.40 (#18692)
  Update Rust crate libcst to v1.8.2 (#18695)
  Update Rust crate jiff to v0.2.15 (#18693)
  Update Rust crate libc to v0.2.173 (#18694)
  Update Rust crate syn to v2.0.103 (#18698)
  Update Rust crate toml to v0.8.23 (#18699)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants