Skip to content

Filter pylock.toml wheels by tags and requires-python#18081

Merged
konstin merged 1 commit intomainfrom
konsti/filter-pylock-toml-by-requires-python
Feb 18, 2026
Merged

Filter pylock.toml wheels by tags and requires-python#18081
konstin merged 1 commit intomainfrom
konsti/filter-pylock-toml-by-requires-python

Conversation

@konstin
Copy link
Member

@konstin konstin commented Feb 18, 2026

We are already doing this for uv.lock, but it was missing for pylock.toml.

We are already doing this for `uv.lock`, but it was missing for `pylock.toml`.
@konstin konstin added the enhancement New feature or improvement to existing functionality label Feb 18, 2026
@konstin konstin merged commit 8c697a4 into main Feb 18, 2026
53 checks passed
@konstin konstin deleted the konsti/filter-pylock-toml-by-requires-python branch February 18, 2026 16:31
konstin added a commit that referenced this pull request Feb 19, 2026
This came out of an experience on whether claude code can find missing updates in from changes in PRs.

#### #18096 — Propagate project-level conflicts to package extras (zanieb)
**Stale docstring on `filter_by_group`**: In `crates/uv-resolver/src/resolver/environment.rs`, the docstring still says "Include rules have no effect in `included_by_group`". After this PR, include rules DO affect `included_by_group` when a project-level exclusion exists for a package — an explicit inclusion for a specific extra overrides the exclusion.

#### #18081 — Filter `pylock.toml` wheels by tags and `requires-python` (konstin)
**Inverted docstring on `is_wheel_unreachable`**: At `crates/uv-resolver/src/lock/mod.rs:6088`, the docstring says "Returns `false` if the wheel is definitely unreachable" but the function actually returns `true` when unreachable. The `true`/`false` are swapped.

#### #18075 — make missing files warning debug (dead10ck)
**analogous `warn!` not changed in flat_index.rs**: `crates/uv-client/src/flat_index.rs:215` has a similar `warn!("Skipping file in {}: {err}", &url)` that exhibits the same noisy pattern. Arguable whether flat indexes warrant the same change since they're user-configured and less likely to trigger mass warnings.
konstin added a commit that referenced this pull request Feb 20, 2026
This came out of an experience on whether claude code can find missing
updates in from changes in PRs:

#18096 — Propagate project-level conflicts to package extras (zanieb)
**Stale docstring on `filter_by_group`**: In
`crates/uv-resolver/src/resolver/environment.rs`, the docstring still
says "Include rules have no effect in `included_by_group`". After this
PR, include rules DO affect `included_by_group` when a project-level
exclusion exists for a package — an explicit inclusion for a specific
extra overrides the exclusion.

#18081 — Filter `pylock.toml` wheels by tags and `requires-python`
(konstin)
**Inverted docstring on `is_wheel_unreachable`**: At
`crates/uv-resolver/src/lock/mod.rs:6088`, the docstring says "Returns
`false` if the wheel is definitely unreachable" but the function
actually returns `true` when unreachable. The `true`/`false` are
swapped.

#18075 — make missing files warning debug (dead10ck)
**Analogous `warn!` not changed in flat_index.rs**:
`crates/uv-client/src/flat_index.rs:215` has a similar `warn!("Skipping
file in {}: {err}", &url)` that exhibits the same noisy pattern.
Arguable whether flat indexes warrant the same change since they're
user-configured and less likely to trigger mass warnings.
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Feb 25, 2026
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [uv](https://github.com/astral-sh/uv) | patch | `0.10.4` → `0.10.6` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>astral-sh/uv (uv)</summary>

### [`v0.10.6`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0106)

[Compare Source](astral-sh/uv@0.10.5...0.10.6)

Released on 2026-02-24.

##### Bug fixes

- Apply lockfile marker normalization for fork markers ([#&#8203;18116](astral-sh/uv#18116))
- Fix Python version selection for scripts with a `requires-python` conflicting with `.python-version` ([#&#8203;18097](astral-sh/uv#18097))
- Preserve file permissions when using reflinks on Linux ([#&#8203;18187](astral-sh/uv#18187))

##### Documentation

- Remove verbose documentation from optional dependencies help text ([#&#8203;18180](astral-sh/uv#18180))

### [`v0.10.5`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0105)

[Compare Source](astral-sh/uv@0.10.4...0.10.5)

Released on 2026-02-23.

##### Enhancements

- Add hint when named index is found in a parent config file ([#&#8203;18087](astral-sh/uv#18087))
- Add warning for `uv lock --frozen` ([#&#8203;17859](astral-sh/uv#17859))
- Attempt to use reflinks by default on Linux ([#&#8203;18117](astral-sh/uv#18117))
- Fallback to hardlinks after reflink failure before copying ([#&#8203;18104](astral-sh/uv#18104))
- Filter `pylock.toml` wheels by tags and `requires-python` ([#&#8203;18081](astral-sh/uv#18081))
- Validate wheel filenames are normalized during `uv publish` ([#&#8203;17783](astral-sh/uv#17783))
- Fix message when `exclude-newer` invalidates the lock file ([#&#8203;18100](astral-sh/uv#18100))
- Change the missing files log level to debug ([#&#8203;18075](astral-sh/uv#18075))

##### Performance

- Improve performance of repeated conflicts with an extra ([#&#8203;18094](astral-sh/uv#18094))

##### Bug fixes

- Fix `--no-emit-workspace` with `--all-packages` on single-member workspaces ([#&#8203;18098](astral-sh/uv#18098))
- Fix `UV_NO_DEFAULT_GROUPS` rejecting truthy values like `1` ([#&#8203;18057](astral-sh/uv#18057))
- Fix iOS detection ([#&#8203;17973](astral-sh/uv#17973))
- Propagate project-level conflicts to package extras ([#&#8203;18096](astral-sh/uv#18096))
- Use a global build concurrency semaphore ([#&#8203;18054](astral-sh/uv#18054))

##### Documentation

- Update documentation heading for environment variable files ([#&#8203;18122](astral-sh/uv#18122))
- Fix comment about `uv export` formats ([#&#8203;17900](astral-sh/uv#17900))
- Make it clear that Windows is supported in user- and system- level configuration docs ([#&#8203;18106](astral-sh/uv#18106))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4zMS4xIiwidXBkYXRlZEluVmVyIjoiNDMuMzEuOSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90IiwiYXV0b21hdGlvbjpib3QtYXV0aG9yZWQiLCJkZXBlbmRlbmN5LXR5cGU6OnBhdGNoIl19-->
jiridanek added a commit to jiridanek/notebooks that referenced this pull request Feb 27, 2026
…generated-code failure

# Context

 The check-generated-code CI job is failing on main and all PRs because
 astral-sh/setup-uv@v7 installs version: "latest" (currently uv 0.10.6),
 which produces different pylock.toml output than the committed files.  The
 root cause is astral-sh/uv#18081
 (released in uv 0.10.5, 2026-02-23) which added wheel filtering to
 pylock.toml even in --universal mode.  See
 opendatahub-io#3032.

 Fix: pin uv version in uv.toml using required-version, remove
 version: "latest" from all workflows so setup-uv auto-detects the pin,
 and regenerate pylocks.

# Changes

 1. Create uv.toml at repo root

 required-version = "==0.10.6"

 setup-uv@v7 auto-detects this and installs the pinned version.
 Locally, uv errors if the running version doesn't match.

 2. Update .github/workflows/code-quality.yaml

 Two setup-uv blocks (lines 17-24 and 46-53):
 - Remove version: "latest" line
 - Rename step from "Install the latest version of uv" to "Install uv"

 3. Update .github/workflows/docs.yaml

 One setup-uv block (lines 21-28):
 - Remove version: "latest" line
 - Rename step

 4. Update .github/workflows/security.yaml

 One setup-uv block (lines 19-26):
 - Remove version: "latest" line
 - Rename step

 5. Update .github/workflows/build-notebooks-TEMPLATE.yaml

 One setup-uv block (lines 304-311):
 - Remove version: "latest" line
 - Rename step

 6. Update ci/generate_code.sh

 Line 4 has a fallback pip install "uv==0.9.6" — update to "uv==0.10.6"
 to match the pinned version.

 7. Regenerate pylocks

 bash ci/generate_code.sh

 This regenerates the 6 affected pylock.toml files with uv 0.10.6 filtering.

# Files modified

 - uv.toml (new)
 - .github/workflows/code-quality.yaml
 - .github/workflows/docs.yaml
 - .github/workflows/security.yaml
 - .github/workflows/build-notebooks-TEMPLATE.yaml
 - ci/generate_code.sh
 - 6 pylock.*.toml files (regenerated)

# Verification

 # Check that uv reads the required-version and doesn't error
 uv version

 # Regenerate and verify no diff
 bash ci/generate_code.sh
 git diff --stat  # should show no changes after regeneration
jiridanek added a commit to jiridanek/notebooks that referenced this pull request Feb 27, 2026
…generated-code failure

# Context

 The check-generated-code CI job is failing on main and all PRs because
 astral-sh/setup-uv@v7 installs version: "latest" (currently uv 0.10.6),
 which produces different pylock.toml output than the committed files.  The
 root cause is astral-sh/uv#18081
 (released in uv 0.10.5, 2026-02-23) which added wheel filtering to
 pylock.toml even in --universal mode.  See
 opendatahub-io#3032.

 Fix: pin uv version in uv.toml using required-version, remove
 version: "latest" from all workflows so setup-uv auto-detects the pin,
 and regenerate pylocks.

# Changes

 1. Create uv.toml at repo root

 required-version = "==0.10.6"

 setup-uv@v7 auto-detects this and installs the pinned version.
 Locally, uv errors if the running version doesn't match.

 2. Update .github/workflows/code-quality.yaml

 Two setup-uv blocks (lines 17-24 and 46-53):
 - Remove version: "latest" line
 - Rename step from "Install the latest version of uv" to "Install uv"

 3. Update .github/workflows/docs.yaml

 One setup-uv block (lines 21-28):
 - Remove version: "latest" line
 - Rename step

 4. Update .github/workflows/security.yaml

 One setup-uv block (lines 19-26):
 - Remove version: "latest" line
 - Rename step

 5. Update .github/workflows/build-notebooks-TEMPLATE.yaml

 One setup-uv block (lines 304-311):
 - Remove version: "latest" line
 - Rename step

 6. Update ci/generate_code.sh

 Line 4 has a fallback pip install "uv==0.9.6" — update to "uv==0.10.6"
 to match the pinned version.

 7. Regenerate pylocks

 bash ci/generate_code.sh

 This regenerates the 6 affected pylock.toml files with uv 0.10.6 filtering.

# Files modified

 - uv.toml (new)
 - .github/workflows/code-quality.yaml
 - .github/workflows/docs.yaml
 - .github/workflows/security.yaml
 - .github/workflows/build-notebooks-TEMPLATE.yaml
 - ci/generate_code.sh
 - 6 pylock.*.toml files (regenerated)

# Verification

 # Check that uv reads the required-version and doesn't error
 uv version

 # Regenerate and verify no diff
 bash ci/generate_code.sh
 git diff --stat  # should show no changes after regeneration
jiridanek added a commit to jiridanek/notebooks that referenced this pull request Feb 27, 2026
…generated-code failure

# Context

 The check-generated-code CI job is failing on main and all PRs because
 astral-sh/setup-uv@v7 installs version: "latest" (currently uv 0.10.6),
 which produces different pylock.toml output than the committed files.  The
 root cause is astral-sh/uv#18081
 (released in uv 0.10.5, 2026-02-23) which added wheel filtering to
 pylock.toml even in --universal mode.  See
 opendatahub-io#3032.

 Fix: pin uv version in uv.toml using required-version, remove
 version: "latest" from all workflows so setup-uv auto-detects the pin,
 and regenerate pylocks.

# Changes

 1. Create uv.toml at repo root

 required-version = "==0.10.6"

 setup-uv@v7 auto-detects this and installs the pinned version.
 Locally, uv errors if the running version doesn't match.

 2. Update .github/workflows/code-quality.yaml

 Two setup-uv blocks (lines 17-24 and 46-53):
 - Remove version: "latest" line
 - Rename step from "Install the latest version of uv" to "Install uv"

 3. Update .github/workflows/docs.yaml

 One setup-uv block (lines 21-28):
 - Remove version: "latest" line
 - Rename step

 4. Update .github/workflows/security.yaml

 One setup-uv block (lines 19-26):
 - Remove version: "latest" line
 - Rename step

 5. Update .github/workflows/build-notebooks-TEMPLATE.yaml

 One setup-uv block (lines 304-311):
 - Remove version: "latest" line
 - Rename step

 6. Update ci/generate_code.sh

 Line 4 has a fallback pip install "uv==0.9.6" — update to "uv==0.10.6"
 to match the pinned version.

 7. Regenerate pylocks

 bash ci/generate_code.sh

 This regenerates the 6 affected pylock.toml files with uv 0.10.6 filtering.

# Files modified

 - uv.toml (new)
 - .github/workflows/code-quality.yaml
 - .github/workflows/docs.yaml
 - .github/workflows/security.yaml
 - .github/workflows/build-notebooks-TEMPLATE.yaml
 - ci/generate_code.sh
 - 6 pylock.*.toml files (regenerated)

# Verification

 # Check that uv reads the required-version and doesn't error
 uv version

 # Regenerate and verify no diff
 bash ci/generate_code.sh
 git diff --stat  # should show no changes after regeneration
jiridanek added a commit to opendatahub-io/notebooks that referenced this pull request Feb 27, 2026
… failure

# Context

 The check-generated-code CI job is failing on main and all PRs because
 astral-sh/setup-uv@v7 installs version: "latest" (currently uv 0.10.6),
 which produces different pylock.toml output than the committed files.  The
 root cause is astral-sh/uv#18081
 (released in uv 0.10.5, 2026-02-23) which added wheel filtering to
 pylock.toml even in --universal mode.  See
 #3032.

 Fix: pin uv version in uv.toml using required-version, remove
 version: "latest" from all workflows so setup-uv auto-detects the pin,
 and regenerate pylocks.

# Changes

 1. Create uv.toml at repo root

 required-version = "==0.10.6"

 setup-uv@v7 auto-detects this and installs the pinned version.
 Locally, uv errors if the running version doesn't match.

 2. Update .github/workflows/code-quality.yaml

 Two setup-uv blocks (lines 17-24 and 46-53):
 - Remove version: "latest" line
 - Rename step from "Install the latest version of uv" to "Install uv"

 3. Update .github/workflows/docs.yaml

 One setup-uv block (lines 21-28):
 - Remove version: "latest" line
 - Rename step

 4. Update .github/workflows/security.yaml

 One setup-uv block (lines 19-26):
 - Remove version: "latest" line
 - Rename step

 5. Update .github/workflows/build-notebooks-TEMPLATE.yaml

 One setup-uv block (lines 304-311):
 - Remove version: "latest" line
 - Rename step

 6. Update ci/generate_code.sh

 Line 4 has a fallback pip install "uv==0.9.6" — update to "uv==0.10.6"
 to match the pinned version.

 7. Regenerate pylocks

 bash ci/generate_code.sh

 This regenerates the 6 affected pylock.toml files with uv 0.10.6 filtering.

# Files modified

 - uv.toml (new)
 - .github/workflows/code-quality.yaml
 - .github/workflows/docs.yaml
 - .github/workflows/security.yaml
 - .github/workflows/build-notebooks-TEMPLATE.yaml
 - ci/generate_code.sh
 - 6 pylock.*.toml files (regenerated)

# Verification

 # Check that uv reads the required-version and doesn't error
 uv version

 # Regenerate and verify no diff
 bash ci/generate_code.sh
 git diff --stat  # should show no changes after regeneration
jiridanek added a commit to opendatahub-io/notebooks that referenced this pull request Feb 27, 2026
… failure (#3034)

# Context

 The check-generated-code CI job is failing on main and all PRs because
 astral-sh/setup-uv@v7 installs version: "latest" (currently uv 0.10.6),
 which produces different pylock.toml output than the committed files.  The
 root cause is astral-sh/uv#18081
 (released in uv 0.10.5, 2026-02-23) which added wheel filtering to
 pylock.toml even in --universal mode.  See
 #3032.

 Fix: pin uv version in uv.toml using required-version, remove
 version: "latest" from all workflows so setup-uv auto-detects the pin,
 and regenerate pylocks.

# Changes

 1. Create uv.toml at repo root

 required-version = "==0.10.6"

 setup-uv@v7 auto-detects this and installs the pinned version.
 Locally, uv errors if the running version doesn't match.

 2. Update .github/workflows/code-quality.yaml

 Two setup-uv blocks (lines 17-24 and 46-53):
 - Remove version: "latest" line
 - Rename step from "Install the latest version of uv" to "Install uv"

 3. Update .github/workflows/docs.yaml

 One setup-uv block (lines 21-28):
 - Remove version: "latest" line
 - Rename step

 4. Update .github/workflows/security.yaml

 One setup-uv block (lines 19-26):
 - Remove version: "latest" line
 - Rename step

 5. Update .github/workflows/build-notebooks-TEMPLATE.yaml

 One setup-uv block (lines 304-311):
 - Remove version: "latest" line
 - Rename step

 6. Update ci/generate_code.sh

 Line 4 has a fallback pip install "uv==0.9.6" — update to "uv==0.10.6"
 to match the pinned version.

 7. Regenerate pylocks

 bash ci/generate_code.sh

 This regenerates the 6 affected pylock.toml files with uv 0.10.6 filtering.

# Files modified

 - uv.toml (new)
 - .github/workflows/code-quality.yaml
 - .github/workflows/docs.yaml
 - .github/workflows/security.yaml
 - .github/workflows/build-notebooks-TEMPLATE.yaml
 - ci/generate_code.sh
 - 6 pylock.*.toml files (regenerated)

# Verification

 # Check that uv reads the required-version and doesn't error
 uv version

 # Regenerate and verify no diff
 bash ci/generate_code.sh
 git diff --stat  # should show no changes after regeneration

* ISSUE #3032: chore(uv): create a ./uv wrapper to run the correct version of uv

  1. Pre-flight check (lines 93-100): Added explicit validation that $UV wrapper exists and is executable before the existing command -v uv check. This prevents a misleading version error if the wrapper
  is missing.
  2. Constraints flag (lines 291-316): Changed constraints_flag from a plain string to a bash array (local -a constraints_flag=()), and expanded it as "${constraints_flag[@]}" in the pip compile
  invocation. This avoids word-splitting on paths containing spaces.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or improvement to existing functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants