uv/crates
Aria Desires ff9c2c35d7
Some checks failed
CI / Determine changes (push) Has been cancelled
CI / lint (push) Has been cancelled
CI / cargo shear (push) Has been cancelled
CI / typos (push) Has been cancelled
CI / mkdocs (push) Has been cancelled
CI / cargo clippy | ubuntu (push) Has been cancelled
CI / cargo clippy | windows (push) Has been cancelled
CI / cargo dev generate-all (push) Has been cancelled
CI / cargo test | ubuntu (push) Has been cancelled
CI / cargo test | macos (push) Has been cancelled
CI / cargo test | windows (push) Has been cancelled
CI / check windows trampoline | aarch64 (push) Has been cancelled
CI / check windows trampoline | i686 (push) Has been cancelled
CI / check windows trampoline | x86_64 (push) Has been cancelled
CI / test windows trampoline | i686 (push) Has been cancelled
CI / test windows trampoline | x86_64 (push) Has been cancelled
CI / build binary | windows aarch64 (push) Has been cancelled
CI / build binary | linux libc (push) Has been cancelled
CI / build binary | linux musl (push) Has been cancelled
CI / build binary | macos aarch64 (push) Has been cancelled
CI / build binary | macos x86_64 (push) Has been cancelled
CI / build binary | windows x86_64 (push) Has been cancelled
CI / cargo build (msrv) (push) Has been cancelled
CI / build binary | freebsd (push) Has been cancelled
CI / ecosystem test | pydantic/pydantic-core (push) Has been cancelled
CI / ecosystem test | prefecthq/prefect (push) Has been cancelled
CI / ecosystem test | pallets/flask (push) Has been cancelled
CI / smoke test | linux (push) Has been cancelled
CI / check system | alpine (push) Has been cancelled
CI / smoke test | macos (push) Has been cancelled
CI / smoke test | windows x86_64 (push) Has been cancelled
CI / smoke test | windows aarch64 (push) Has been cancelled
CI / integration test | conda on ubuntu (push) Has been cancelled
CI / integration test | deadsnakes python3.9 on ubuntu (push) Has been cancelled
CI / integration test | free-threaded on windows (push) Has been cancelled
CI / integration test | pypy on ubuntu (push) Has been cancelled
CI / integration test | pypy on windows (push) Has been cancelled
CI / integration test | graalpy on ubuntu (push) Has been cancelled
CI / integration test | graalpy on windows (push) Has been cancelled
CI / integration test | pyodide on ubuntu (push) Has been cancelled
CI / integration test | github actions (push) Has been cancelled
CI / integration test | free-threaded python on github actions (push) Has been cancelled
CI / integration test | determine publish changes (push) Has been cancelled
CI / integration test | uv publish (push) Has been cancelled
CI / integration test | uv_build (push) Has been cancelled
CI / check cache | ubuntu (push) Has been cancelled
CI / check cache | macos aarch64 (push) Has been cancelled
CI / check system | python on debian (push) Has been cancelled
CI / check system | python on fedora (push) Has been cancelled
CI / check system | python on ubuntu (push) Has been cancelled
CI / check system | python on rocky linux 8 (push) Has been cancelled
CI / check system | python on rocky linux 9 (push) Has been cancelled
CI / check system | graalpy on ubuntu (push) Has been cancelled
CI / check system | pypy on ubuntu (push) Has been cancelled
CI / check system | pyston (push) Has been cancelled
CI / check system | python on macos aarch64 (push) Has been cancelled
CI / check system | python3.10 on windows x86 (push) Has been cancelled
CI / check system | python3.13 on windows x86-64 (push) Has been cancelled
CI / check system | x86-64 python3.13 on windows aarch64 (push) Has been cancelled
CI / check system | windows registry (push) Has been cancelled
CI / check system | python3.12 via chocolatey (push) Has been cancelled
CI / check system | python3.9 via pyenv (push) Has been cancelled
CI / check system | python3.13 (push) Has been cancelled
CI / check system | homebrew python on macos aarch64 (push) Has been cancelled
CI / check system | python on macos x86-64 (push) Has been cancelled
CI / check system | python3.10 on windows x86-64 (push) Has been cancelled
CI / benchmarks | walltime aarch64 linux (push) Has been cancelled
CI / benchmarks | instrumented (push) Has been cancelled
CI / check system | conda3.11 on macos aarch64 (push) Has been cancelled
CI / check system | conda3.8 on macos aarch64 (push) Has been cancelled
CI / check system | conda3.11 on linux x86-64 (push) Has been cancelled
CI / check system | conda3.8 on linux x86-64 (push) Has been cancelled
CI / check system | conda3.11 on windows x86-64 (push) Has been cancelled
CI / check system | conda3.8 on windows x86-64 (push) Has been cancelled
CI / check system | amazonlinux (push) Has been cancelled
CI / check system | embedded python3.10 on windows x86-64 (push) Has been cancelled
Support reading dependency-groups from pyproject.tomls with no project (#13742)
(or legacy tool.uv.workspace).

This cleaves out a dedicated SourcedDependencyGroups type based on
RequiresDist but with only the DependencyGroup handling implemented.
This allows `uv pip` to read `dependency-groups` from pyproject.tomls
that only have that table defined, per PEP 735, and as implemented by
`pip`.

However we want our implementation to respect various uv features when
they're available:

* `tool.uv.sources`
* `tool.uv.index`
* `tool.uv.dependency-groups.mygroup.requires-python` (#13735)

As such we want to opportunistically detect "as much as possible" while
doing as little as possible when things are missing. The issue with the
old RequiresDist path was that it fundamentally wanted to build the
package, and if `[project]` was missing it would try to desperately run
setuptools on the pyproject.toml to try to find metadata and make a hash
of things.

At the same time, the old code also put in a lot of effort to try to
pretend that `uv pip` dependency-groups worked like `uv`
dependency-groups with defaults and non-only semantics, only to separate
them back out again. By explicitly separating them out, we confidently
get the expected behaviour.

Note that dependency-group support is still included in RequiresDist, as
some `uv` paths still use it. It's unclear to me if those paths want
this same treatment -- for now I conclude no.

Fixes #13138
2025-06-13 22:16:48 +00:00
..
uv Support reading dependency-groups from pyproject.tomls with no project (#13742) 2025-06-13 22:16:48 +00:00
uv-auth Use ref-cast for DisplaySafeUrl (#13696) 2025-05-28 11:28:28 +00:00
uv-bench Add [tool.uv.dependency-groups].mygroup.requires-python (#13735) 2025-06-13 22:04:13 +00:00
uv-build Bump version to 0.7.13 (#14002) 2025-06-12 14:33:31 -05:00
uv-build-backend Build backend: Support namespace packages (#13833) 2025-06-12 17:23:58 +00:00
uv-build-frontend Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
uv-cache Reduce number of reference-checks for uv cache clean (#13669) 2025-05-26 21:43:24 -04:00
uv-cache-info Avoid allocations for default cache keys (#12063) 2025-03-17 19:59:32 -04:00
uv-cache-key Add DisplaySafeUrl newtype to prevent leaking of credentials by default (#13560) 2025-05-27 00:05:30 +02:00
uv-cli Do not allow uv add --group ... --script (#13997) 2025-06-12 10:45:12 -04:00
uv-client Add zstd and deflate to Accept-Encoding (#13982) 2025-06-11 22:42:47 -04:00
uv-configuration Add [tool.uv.dependency-groups].mygroup.requires-python (#13735) 2025-06-13 22:04:13 +00:00
uv-console Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
uv-dev Sync latest Python releases (#13996) 2025-06-12 09:47:28 -05:00
uv-dirs Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
uv-dispatch Hint at tool.uv.environments on resolution error (#13455) 2025-06-06 14:17:52 +00:00
uv-distribution Support reading dependency-groups from pyproject.tomls with no project (#13742) 2025-06-13 22:16:48 +00:00
uv-distribution-filename Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
uv-distribution-types Support reading dependency-groups from pyproject.tomls with no project (#13742) 2025-06-13 22:16:48 +00:00
uv-extract Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
uv-fs Remove winsafe (#13779) 2025-06-02 17:53:03 +02:00
uv-git avoid fetching an exact, cached commit, even if it isn't locked 2025-06-09 23:50:36 +00:00
uv-git-types make GitOid strict about parsing exactly 40 hex characters 2025-06-09 23:50:36 +00:00
uv-globfilter Change GlobDirFilter fallback to true (#13882) 2025-06-06 14:07:34 +02:00
uv-install-wheel Add data locations to logging (#13797) 2025-06-03 09:22:18 -05:00
uv-installer Add DisplaySafeUrl newtype to prevent leaking of credentials by default (#13560) 2025-05-27 00:05:30 +02:00
uv-macros Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
uv-metadata only warn if CRC appears to be missing (#12722) 2025-04-07 12:49:05 -05:00
uv-normalize Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
uv-once-map Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-options-metadata Upgrade minimum Rust version to 1.83 (#9815) 2024-12-11 10:06:19 -06:00
uv-pep440 Minor internal README enhancement for Markdown list in PEP440 (#13880) 2025-06-06 08:45:37 -05:00
uv-pep508 Support reading dependency-groups from pyproject.tomls with no project (#13742) 2025-06-13 22:16:48 +00:00
uv-performance-memory-allocator Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
uv-platform-tags Add Pyodide support (#12731) 2025-06-03 12:01:26 -05:00
uv-publish Add DisplaySafeUrl newtype to prevent leaking of credentials by default (#13560) 2025-05-27 00:05:30 +02:00
uv-pypi-types Add DisplaySafeUrl newtype to prevent leaking of credentials by default (#13560) 2025-05-27 00:05:30 +02:00
uv-python Remove unreachable pub function (#14032) 2025-06-13 18:04:13 +00:00
uv-redacted Display ssh git username in Debug implementation (#13806) 2025-06-03 14:52:51 +00:00
uv-requirements Support reading dependency-groups from pyproject.tomls with no project (#13742) 2025-06-13 22:16:48 +00:00
uv-requirements-txt Make DisplaySafeUrlRef Copy and other minor PR follow-ups (#13683) 2025-05-28 06:36:18 -04:00
uv-resolver Add [tool.uv.dependency-groups].mygroup.requires-python (#13735) 2025-06-13 22:04:13 +00:00
uv-scripts Add DisplaySafeUrl newtype to prevent leaking of credentials by default (#13560) 2025-05-27 00:05:30 +02:00
uv-settings Add [tool.uv.dependency-groups].mygroup.requires-python (#13735) 2025-06-13 22:04:13 +00:00
uv-shell Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04: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 Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
uv-static add UV_NO_GITHUB_FAST_PATH 2025-06-09 23:50:36 +00:00
uv-tool Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
uv-torch Add Pyodide support (#12731) 2025-06-03 12:01:26 -05:00
uv-trampoline fix: format uv-trampoline for 2024 edition (#13519) 2025-05-18 20:19:27 -04:00
uv-trampoline-builder Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
uv-types Add DisplaySafeUrl newtype to prevent leaking of credentials by default (#13560) 2025-05-27 00:05:30 +02:00
uv-version Bump version to 0.7.13 (#14002) 2025-06-12 14:33:31 -05:00
uv-virtualenv Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
uv-warnings chore: Move all integration tests to a single binary (#8093) 2024-10-11 16:41:35 +02:00
uv-workspace Support reading dependency-groups from pyproject.tomls with no project (#13742) 2025-06-13 22:16:48 +00: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.