Reject already-installed wheels that don't match the target platform#15484
Merged
charliermarsh merged 3 commits intomainfrom Aug 25, 2025
Merged
Reject already-installed wheels that don't match the target platform#15484charliermarsh merged 3 commits intomainfrom
charliermarsh merged 3 commits intomainfrom
Conversation
64050c2 to
7391c5a
Compare
a3e6e69 to
dc2c5fa
Compare
dc2c5fa to
a35fcc8
Compare
a35fcc8 to
b5a96a3
Compare
b5a96a3 to
ea6f3dc
Compare
konstin
reviewed
Aug 25, 2025
zanieb
reviewed
Aug 25, 2025
zanieb
reviewed
Aug 25, 2025
| // Verify that the package is compatible with the current tags. | ||
| if let Some(wheel_tags) = distribution.read_tags()? { | ||
| if !wheel_tags.is_compatible(tags) { | ||
| // TODO(charlie): Show the expanded tag hint, that explains _why_ it doesn't match. |
Member
There was a problem hiding this comment.
👍 this seems nice to have, might be worth opening an issue for it maybe someone can pick it up
zanieb
approved these changes
Aug 25, 2025
konstin
approved these changes
Aug 25, 2025
b775710 to
0c4e3a6
Compare
tmeijn
pushed a commit
to tmeijn/dotfiles
that referenced
this pull request
Sep 2, 2025
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [astral-sh/uv](https://github.com/astral-sh/uv) | patch | `0.8.13` -> `0.8.14` | 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 (astral-sh/uv)</summary> ### [`v0.8.14`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0814) [Compare Source](astral-sh/uv@0.8.13...0.8.14) ##### Python - Add managed CPython distributions for aarch64 musl ##### Enhancements - Add `--python-platform` to `uv pip check` ([#​15486](astral-sh/uv#15486)) - Add an environment variable for `UV_ISOLATED` ([#​15428](astral-sh/uv#15428)) - Add logging to the uv build backend ([#​15533](astral-sh/uv#15533)) - Allow more trailing null bytes in zip files ([#​15452](astral-sh/uv#15452)) - Allow pinning managed Python versions to specific build versions ([#​15314](astral-sh/uv#15314)) - Cache PyTorch wheels by default ([#​15481](astral-sh/uv#15481)) - Reject already-installed wheels that don't match the target platform ([#​15484](astral-sh/uv#15484)) - Add `--no-install-local` option to `uv sync`, `uv add` and `uv export` ([#​15328](astral-sh/uv#15328)) - Include cycle error message in `uv pip` CLI ([#​15453](astral-sh/uv#15453)) ##### Preview features - Fix format of `{version}` on `uv format` failure ([#​15527](astral-sh/uv#15527)) - Lock during installs in `uv format` to prevent races ([#​15551](astral-sh/uv#15551)) - Respect `--project` in `uv format` ([#​15438](astral-sh/uv#15438)) - Run `uv format` in the project root ([#​15440](astral-sh/uv#15440)) ##### Configuration - Add file-to-CLI overrides for build isolation configuration ([#​15437](astral-sh/uv#15437)) - Add file-to-CLI overrides for reinstall configuration ([#​15426](astral-sh/uv#15426)) ##### Performance - Cache `WHEEL` and `METADATA` reads in installed distributions ([#​15489](astral-sh/uv#15489)) ##### Bug fixes - Avoid erroring when creating `venv` in current working directory ([#​15537](astral-sh/uv#15537)) - Avoid introducing unnecessary system dependency on CUDA ([#​15449](astral-sh/uv#15449)) - Clear discovered site packages when creating virtual environment ([#​15522](astral-sh/uv#15522)) - Read index credentials from the environment during `uv publish` checks ([#​15545](astral-sh/uv#15545)) - Refuse to remove non-virtual environments in `uv venv` ([#​15538](astral-sh/uv#15538)) - Stop setting `CLICOLOR_FORCE=1` when calling build backends ([#​15472](astral-sh/uv#15472)) - Support file or directory removal for Windows symlinks ([#​15543](astral-sh/uv#15543)) ##### Documentation - Fix GitHub guide highlight lines ([#​15443](astral-sh/uv#15443)) - Move Resolver to new Internals section in the Reference ([#​15465](astral-sh/uv#15465)) - Split the "Authentication" page into sections ([#​15575](astral-sh/uv#15575)) - Update uninstall docs to mention `uvw.exe` needs to be removed ([#​15536](astral-sh/uv#15536)) </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:eyJjcmVhdGVkSW5WZXIiOiI0MS44OC4wIiwidXBkYXRlZEluVmVyIjoiNDEuODguMCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
We've received several requests to validate that installed wheels match the current Python platform. This isn't super common, since it requires that your platform changes in some meaningful way (e.g., you switch from x86 to ARM), though in practice, it sounds like it can happen in HPC environments. This seems like a good thing to do regardless, so we now validate that the tags (as recoded in
WHEEL) are consistent with the current platform during installs.Closes #15035.