uv/crates
Tim Felgentreff 40efe6119b
Fix GraalPy abi tag parsing and discovery (#12154)
<!--
Thank you for contributing to uv! To help us out with reviewing, please
consider the following:

- Does this pull request include a summary of the change? (See below.)
- Does this pull request include a descriptive title?
- Does this pull request include references to any relevant issues?
-->

## Summary

There were no GraalPy binary wheels were available when uv support was
added, and thus the abi tag was never tested against actual packages.
Now that GraalPy publishes binary wheels to
https://www.graalvm.org/python/wheels/ we noticed the abi tag was
incorrect and the version info incorrectly determined.

## Test Plan

I tested manually:

```
> target/debug/uv venv --python graalpy testvenv
Using GraalPy 3.11.7 interpreter at: /home/tim/.pyenv/versions/graalpy-24.1.1/bin/graalpy
Creating virtual environment at: testvenv
Activate with: source testvenv/bin/activate
> cat <<EOF> uv.toml
> [[index]]
> url = "https://www.graalvm.org/python/wheels/"
> EOF
> target/debug/uv -v pip install psutil
warning: Found both a `uv.toml` file and a `[tool.uv]` section in an adjacent `pyproject.toml`. The `[tool.uv]` section will be ignored in favor of the `uv.toml` file.
DEBUG uv 0.6.6+3 (be8725553 2025-03-13)
DEBUG Searching for default Python interpreter in virtual environments
DEBUG Found `graalpy-3.11.7-linux-x86_64-gnu` at `/home/tim/dev/uv/.venv/bin/python3` (virtual environment)
DEBUG Using Python 3.11.7 environment at: .venv
DEBUG Acquired lock for `.venv`
DEBUG At least one requirement is not satisfied: psutil
DEBUG Using request timeout of 30s
DEBUG Solving with installed Python version: 3.11.7
DEBUG Solving with target Python version: >=3.11.7
DEBUG Adding direct dependency: psutil*
DEBUG Found fresh response for: https://www.graalvm.org/python/wheels/psutil/
DEBUG Searching for a compatible version of psutil (*)
DEBUG Selecting: psutil==5.9.8 [compatible] (psutil-5.9.8-graalpy311-graalpy241_311_native-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_28_x86_64.whl)
DEBUG No cache entry for: https://gds.oracle.com/download/graalpy-wheels/psutil-5.9.8-graalpy311-graalpy241_311_native-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_28_x86_64.whl
DEBUG Tried 1 versions: psutil 1
DEBUG marker environment resolution took 0.968s
Resolved 1 package in 971ms
DEBUG Identified uncached distribution: psutil==5.9.8
DEBUG No cache entry for: https://gds.oracle.com/download/graalpy-wheels/psutil-5.9.8-graalpy311-graalpy241_311_native-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_28_x86_64.whl
Prepared 1 package in 268ms
Installed 1 package in 28ms
 + psutil==5.9.8
DEBUG Released lock at `/home/tim/dev/uv/.venv/.lock`
```

---------

Co-authored-by: Charlie Marsh <charlie.r.marsh@gmail.com>
2025-03-13 23:55:07 +00:00
..
uv Fix GraalPy abi tag parsing and discovery (#12154) 2025-03-13 23:55:07 +00:00
uv-auth Update the index.authenticate docs (#12102) 2025-03-11 15:01:42 -05:00
uv-bench Cache workspace discovery (#12096) 2025-03-10 22:03:30 +01:00
uv-build Bump version to 0.6.6 (#12125) 2025-03-12 00:02:48 +00:00
uv-build-backend Allow overriding module name for uv build backend (#11884) 2025-03-07 15:20:00 +01:00
uv-build-frontend Cache workspace discovery (#12096) 2025-03-10 22:03:30 +01:00
uv-cache Remove unused archive timestamp (#12064) 2025-03-08 09:10:27 -05:00
uv-cache-info Fix git-tag cache-key reader in case of slashes (#10467) (#10500) 2025-01-11 21:30:46 -05:00
uv-cache-key Use hash instead of full wheel name in wheels bucket (#11738) 2025-02-26 22:41:57 +00:00
uv-cli Add support for global uv python pin (#12115) 2025-03-13 13:48:37 +01:00
uv-client remove BaseClientBuild::client, expose ExtraMiddleware (#12133) 2025-03-12 10:43:21 +00:00
uv-configuration Replace outdated DevGroups* naming (#11921) 2025-03-03 16:39:44 +01:00
uv-console explicitly handle ctrl-c in confirmation prompt instead of signal handler (#11897) 2025-03-03 10:30:48 -05:00
uv-dev Migrate to zlib-rs (again) (#11894) 2025-03-03 17:29:31 +00:00
uv-dirs Add support for global uv python pin (#12115) 2025-03-13 13:48:37 +01:00
uv-dispatch Cache workspace discovery (#12096) 2025-03-10 22:03:30 +01:00
uv-distribution Cache workspace discovery (#12096) 2025-03-10 22:03:30 +01:00
uv-distribution-filename Fix version string truncation while generating cache_key (#11830) 2025-02-27 08:48:43 -05:00
uv-distribution-types Update the index.authenticate docs (#12102) 2025-03-11 15:01:42 -05:00
uv-extract Use SmallString on Hashes (#11756) 2025-02-24 10:32:00 -10:00
uv-fs Move config dir functions to public functions in uv_dirs (#12090) 2025-03-10 12:05:05 +01:00
uv-git Move GIT_TERMINAL_PROMPT to env vars (#11789) 2025-02-26 03:56:24 +00:00
uv-git-types Avoid using owned String in deserializers (#11764) 2025-02-25 14:28:16 +00:00
uv-globfilter Use consistent commas around i.e. and e.g. (#12157) 2025-03-13 23:42:10 +00:00
uv-install-wheel Remove unused thiserror variants (#11713) 2025-02-22 12:12:22 -10:00
uv-installer Allow overrides in all satisfies checks (#11995) 2025-03-05 21:54:19 -05:00
uv-macros Remove unnecessary prefixes (#10158) 2024-12-25 14:18:01 -05:00
uv-metadata chore: Move all integration tests to a single binary (#8093) 2024-10-11 16:41:35 +02:00
uv-normalize Avoid using owned String in deserializers (#11764) 2025-02-25 14:28:16 +00:00
uv-once-map Use shared resolver state between add and lock (#8146) 2024-10-12 14:58:07 +00:00
uv-options-metadata Upgrade minimum Rust version to 1.83 (#9815) 2024-12-11 10:06:19 -06:00
uv-pep440 Use consistent commas around i.e. and e.g. (#12157) 2025-03-13 23:42:10 +00:00
uv-pep508 Use consistent commas around i.e. and e.g. (#12157) 2025-03-13 23:42:10 +00:00
uv-performance-memory-allocator Run cargo update (#10173) 2024-12-26 12:00:58 -05:00
uv-platform-tags Fix GraalPy abi tag parsing and discovery (#12154) 2025-03-13 23:55:07 +00:00
uv-publish Render token claims on publish permission error (#12135) 2025-03-13 11:19:08 +01:00
uv-pypi-types Add support for global uv python pin (#12115) 2025-03-13 13:48:37 +01:00
uv-python Fix GraalPy abi tag parsing and discovery (#12154) 2025-03-13 23:55:07 +00:00
uv-requirements Replace outdated DevGroups* naming (#11921) 2025-03-03 16:39:44 +01:00
uv-requirements-txt Skip unquote allocation for non-quoted strings (#11813) 2025-02-26 21:56:31 +00:00
uv-resolver Discard insufficient fork markers (#10682) 2025-03-13 15:49:37 +01:00
uv-scripts Add tool.uv.build-constraint-dependencies to pyproject.toml (#11585) 2025-02-17 20:58:36 -05:00
uv-settings Move config dir functions to public functions in uv_dirs (#12090) 2025-03-10 12:05:05 +01:00
uv-shell Add support for Windows legacy scripts via uv tool run (#12079) 2025-03-11 09:02:17 -05:00
uv-small-str Edition 2024 prep: Escape r#gen and remove redundant ref (#11922) 2025-03-03 11:13:56 +00:00
uv-state Add uv-dirs to consolidate directory lookup methods (#8453) 2024-10-22 11:33:25 -05:00
uv-static Use consistent commas around i.e. and e.g. (#12157) 2025-03-13 23:42:10 +00:00
uv-tool Avoid string allocation when enumerating tool names (#11910) 2025-03-03 10:13:54 -05:00
uv-trampoline Upgrade Rust toolchain to 1.85 (#11720) 2025-02-23 16:52:34 +01:00
uv-trampoline-builder Upgrade Rust toolchain to 1.84.0 (#10533) 2025-01-11 22:19:33 -05:00
uv-types Cache workspace discovery (#12096) 2025-03-10 22:03:30 +01:00
uv-version Bump version to 0.6.6 (#12125) 2025-03-12 00:02:48 +00:00
uv-virtualenv Update code page to 65001 before setting environment variables, fix #11828 (#11831) 2025-02-27 16:14:34 -05:00
uv-warnings chore: Move all integration tests to a single binary (#8093) 2024-10-11 16:41:35 +02:00
uv-workspace Show ambiguous requirements when uv add failed (#12106) 2025-03-10 23:00:09 -04:00
README.md Link to Dependency specifiers instead of PEP 508 (#8411) 2024-10-21 14:43:38 -04:00

Crates

uv-bench

Functionality for benchmarking uv.

uv-cache-key

Generic functionality for caching paths, URLs, and other resources across platforms.

uv-distribution-filename

Parse built distribution (wheel) and source distribution (sdist) filenames to extract structured metadata.

uv-distribution-types

Abstractions for representing built distributions (wheels) and source distributions (sdists), and the sources from which they can be downloaded.

uv-install-wheel-rs

Install built distributions (wheels) into a virtual environment.

uv-once-map

A waitmap-like concurrent hash map for executing tasks exactly once.

uv-pep440-rs

Utilities for interacting with Python version numbers and specifiers.

uv-pep508-rs

Utilities for parsing and evaluating dependency specifiers, previously known as PEP 508.

uv-platform-tags

Functionality for parsing and inferring Python platform tags as per PEP 425.

uv-cli

Command-line interface for the uv package manager.

uv-build-frontend

A PEP 517-compatible build frontend for uv.

uv-cache

Functionality for caching Python packages and associated metadata.

uv-client

Client for interacting with PyPI-compatible HTTP APIs.

uv-dev

Development utilities for uv.

uv-dispatch

A centralized struct for resolving and building source distributions in isolated environments. Implements the traits defined in uv-types.

uv-distribution

Client for interacting with built distributions (wheels) and source distributions (sdists). Capable of fetching metadata, distribution contents, etc.

uv-extract

Utilities for extracting files from archives.

uv-fs

Utilities for interacting with the filesystem.

uv-git

Functionality for interacting with Git repositories.

uv-installer

Functionality for installing Python packages into a virtual environment.

uv-python

Functionality for detecting and leveraging the current Python interpreter.

uv-normalize

Normalize package and extra names as per Python specifications.

uv-requirements

Utilities for reading package requirements from pyproject.toml and requirements.txt files.

uv-resolver

Functionality for resolving Python packages and their dependencies.

uv-shell

Utilities for detecting and manipulating shell environments.

uv-types

Shared traits for uv, to avoid circular dependencies.

uv-pypi-types

General-purpose type definitions for types used in PyPI-compatible APIs.

uv-virtualenv

A venv replacement to create virtual environments in Rust.

uv-warnings

User-facing warnings for uv.

uv-workspace

Workspace abstractions for uv.

uv-requirements-txt

Functionality for parsing requirements.txt files.