uv/crates
Andrew Gallant 2352e745a6
Some checks are pending
CI / mkdocs (push) Waiting to run
CI / Determine changes (push) Waiting to run
CI / lint (push) Waiting to run
CI / cargo clippy | ubuntu (push) Blocked by required conditions
CI / cargo clippy | windows (push) Blocked by required conditions
CI / cargo dev generate-all (push) Blocked by required conditions
CI / cargo shear (push) Waiting to run
CI / cargo test | ubuntu (push) Blocked by required conditions
CI / cargo test | macos (push) Blocked by required conditions
CI / cargo test | windows (push) Blocked by required conditions
CI / check windows trampoline | aarch64 (push) Blocked by required conditions
CI / check windows trampoline | i686 (push) Blocked by required conditions
CI / check windows trampoline | x86_64 (push) Blocked by required conditions
CI / test windows trampoline | i686 (push) Blocked by required conditions
CI / test windows trampoline | x86_64 (push) Blocked by required conditions
CI / typos (push) Waiting to run
CI / build binary | linux libc (push) Blocked by required conditions
CI / build binary | linux musl (push) Blocked by required conditions
CI / build binary | macos aarch64 (push) Blocked by required conditions
CI / build binary | macos x86_64 (push) Blocked by required conditions
CI / check cache | ubuntu (push) Blocked by required conditions
CI / check cache | macos aarch64 (push) Blocked by required conditions
CI / check system | python on debian (push) Blocked by required conditions
CI / check system | python on fedora (push) Blocked by required conditions
CI / check system | python on ubuntu (push) Blocked by required conditions
CI / check system | python on opensuse (push) Blocked by required conditions
CI / check system | python on rocky linux 8 (push) Blocked by required conditions
CI / check system | python on rocky linux 9 (push) Blocked by required conditions
CI / check system | pypy on ubuntu (push) Blocked by required conditions
CI / check system | pyston (push) Blocked by required conditions
CI / check system | alpine (push) Blocked by required conditions
CI / check system | python on macos aarch64 (push) Blocked by required conditions
CI / check system | homebrew python on macos aarch64 (push) Blocked by required conditions
CI / check system | python on macos x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86 (push) Blocked by required conditions
CI / check system | python3.13 on windows x86-64 (push) Blocked by required conditions
CI / check system | windows registry (push) Blocked by required conditions
CI / check system | python3.12 via chocolatey (push) Blocked by required conditions
CI / check system | python3.9 via pyenv (push) Blocked by required conditions
CI / check system | python3.13 (push) Blocked by required conditions
CI / check system | conda3.11 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.8 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.11 on linux x86-64 (push) Blocked by required conditions
CI / build binary | windows x86_64 (push) Blocked by required conditions
CI / build binary | windows aarch64 (push) Blocked by required conditions
CI / cargo build (msrv) (push) Blocked by required conditions
CI / build binary | freebsd (push) Blocked by required conditions
CI / ecosystem test | pydantic/pydantic-core (push) Blocked by required conditions
CI / ecosystem test | prefecthq/prefect (push) Blocked by required conditions
CI / ecosystem test | pallets/flask (push) Blocked by required conditions
CI / smoke test | linux (push) Blocked by required conditions
CI / smoke test | macos (push) Blocked by required conditions
CI / smoke test | windows x86_64 (push) Blocked by required conditions
CI / smoke test | windows aarch64 (push) Blocked by required conditions
CI / integration test | conda on ubuntu (push) Blocked by required conditions
CI / integration test | deadsnakes python3.9 on ubuntu (push) Blocked by required conditions
CI / integration test | free-threaded on linux (push) Blocked by required conditions
CI / integration test | free-threaded on windows (push) Blocked by required conditions
CI / integration test | pypy on ubuntu (push) Blocked by required conditions
CI / integration test | pypy on windows (push) Blocked by required conditions
CI / integration test | graalpy on ubuntu (push) Blocked by required conditions
CI / integration test | graalpy on windows (push) Blocked by required conditions
CI / integration test | github actions (push) Blocked by required conditions
CI / integration test | determine publish changes (push) Blocked by required conditions
CI / integration test | uv publish (push) Blocked by required conditions
CI / check system | conda3.8 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.11 on windows x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on windows x86-64 (push) Blocked by required conditions
CI / check system | amazonlinux (push) Blocked by required conditions
CI / check system | embedded python3.10 on windows x86-64 (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
uv-resolver: fix conflict marker simplification bug
The underlying cause here, I believe, was that we weren't accounting
for the case where an edge could be visited *without* any extras
enabled. Because of that, we got into situations where we thought
there was only one path to an edge when there were actually more
paths. This in turn lead to us erroneously doing simplification where
it actually isn't justified. And in turn lead to duplicate versions
of the same package being installed in the same environment.

The fix for this ends up being really simple: in the case where we
don't add any conflict items for a package during graph traversal,
we materialize an empty set of conflicts to mark the case of no
extras being enabled when visiting the child edges. This is enough
to propagate the knowledge of multiple paths to the same edge and
causes us to avoid doing improper simplifications.

This does fix the problem in the snapshot, but it does also I think
lead to other cases where simplifications are no longer possible
(hence the changes to the airflow snapshot). But this seems
expected, since we are doing strictly less simplification than we
were before. It's unclear if all of those cases were actual bugs
or not though.
2025-02-10 09:17:31 -05:00
..
uv uv-resolver: fix conflict marker simplification bug 2025-02-10 09:17:31 -05:00
uv-auth Migrate from urlencoding to percent-encoding (#11144) 2025-01-31 16:29:46 -05:00
uv-bench Remove warnings for missing lower bounds (#11195) 2025-02-03 16:03:31 -06:00
uv-build-backend Don't expand self-referential extras in the build backend (#11142) 2025-01-31 20:58:51 -05:00
uv-build-frontend Remove warnings for missing lower bounds (#11195) 2025-02-03 16:03:31 -06:00
uv-cache Make metadata deserialization failures non-fatal in the cache (#11105) 2025-01-30 12:48:35 -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 Migrate from urlencoding to percent-encoding (#11144) 2025-01-31 16:29:46 -05:00
uv-cli Add docs for uv tool install --editable (#11280) 2025-02-07 22:56:54 +00:00
uv-client Ignore 'egg' fragment in HTML Simple API response (#11340) 2025-02-08 09:00:51 -05:00
uv-configuration Use a DryRun enum everywhere (#11303) 2025-02-07 00:42:49 +00:00
uv-console Support interactive input in uv publish (#8158) 2024-10-15 10:00:43 +02:00
uv-dev Shrink Dist from 352 to 288 bytes (#10389) 2025-01-08 09:33:19 -05:00
uv-dirs Eliminate dependencies on directores and dirs-sys (#8048) 2024-11-07 14:29:54 -06:00
uv-dispatch Add uv sync --dry-run (#11299) 2025-02-06 23:52:49 +00:00
uv-distribution Optimize flattening in apache airflow workspace (#11313) 2025-02-07 17:08:40 -05:00
uv-distribution-filename Store unsupported tags in wheel filename (#10665) 2025-01-17 04:41:53 +00:00
uv-distribution-types Fix credential caching for index roots when URL ends in simple/ (#11336) 2025-02-08 09:23:31 -06:00
uv-extract Migrate to published astral-tokio-tar crate (#11260) 2025-02-05 15:43:33 -05:00
uv-fs Set 777 permissions on locked files (#11328) 2025-02-07 21:36:09 +00:00
uv-git Show messages for builds and large downloads in non-interactive mode (#11165) 2025-02-05 17:38:02 -06:00
uv-globfilter Build backend: Revamp include/exclude (#9525) 2024-12-01 11:32:35 +00:00
uv-install-wheel Move wheel helper function to wheel module (#11212) 2025-02-04 12:03:38 +00:00
uv-installer Use consistent 'Registry' prefix for wheel and source distribution logs (#11270) 2025-02-06 01:35:11 +00: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 Add a shared uv-small-str crate (#10545) 2025-01-12 20:23:18 +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 Typo in release_specifiers_to_ranges docs (#11320) 2025-02-07 16:49:56 +00:00
uv-pep508 Optimize flattening in apache airflow workspace (#11313) 2025-02-07 17:08:40 -05:00
uv-performance-flate2-backend Re-enable zlib-ng on all platforms (except s390x, PowerPC, and FreeBSD) (#10370) 2025-01-07 13:04:34 -05:00
uv-performance-memory-allocator Run cargo update (#10173) 2024-12-26 12:00:58 -05:00
uv-platform-tags Allow installation of manylinux wheels on loongarch64 (#10927) 2025-01-24 14:36:03 +01:00
uv-publish Use Astral-maintained tokio-tar fork (#11174) 2025-02-03 17:51:35 +00:00
uv-pypi-types Use wire JSON schema for conflict items (#11196) 2025-02-03 21:22:13 +00:00
uv-python Patch pkg-config files to be relocatable (#11291) 2025-02-07 17:03:55 -06:00
uv-requirements fix handling of --all-groups and --no-default-groups flags (#11224) 2025-02-05 15:31:23 -05:00
uv-requirements-txt Allow optional = for editables in requirements.txt (#10954) 2025-01-24 21:55:51 -05:00
uv-resolver uv-resolver: fix conflict marker simplification bug 2025-02-10 09:17:31 -05:00
uv-scripts Error when --script is passing a non-PEP 723 script (#11118) 2025-01-30 20:49:59 +00:00
uv-settings uv-install-wheel: Split installation logic and link logic (#11166) 2025-02-02 15:02:13 +00:00
uv-shell Refactor shell quoting (#9055) 2024-11-15 09:06:54 +00:00
uv-small-str Add a shared uv-small-str crate (#10545) 2025-01-12 20:23:18 +00:00
uv-state Add uv-dirs to consolidate directory lookup methods (#8453) 2024-10-22 11:33:25 -05:00
uv-static Show messages for builds and large downloads in non-interactive mode (#11165) 2025-02-05 17:38:02 -06:00
uv-tool Guard against self-deletion in uv venv and uv tool (#10206) 2024-12-29 10:46:45 -05:00
uv-trampoline don't use the Cool popup-generating eprintln in trampoline for warnings (#11295) 2025-02-07 13:33:12 -05:00
uv-trampoline-builder Upgrade Rust toolchain to 1.84.0 (#10533) 2025-01-11 22:19:33 -05:00
uv-types Remove warnings for missing lower bounds (#11195) 2025-02-03 16:03:31 -06:00
uv-version Bump version to 0.5.29 (#11267) 2025-02-05 19:59:29 -05:00
uv-virtualenv Always use base Python discovery logic for cached environments (#11254) 2025-02-05 15:47:56 -05:00
uv-warnings chore: Move all integration tests to a single binary (#8093) 2024-10-11 16:41:35 +02:00
uv-workspace Fix walkdir error message (#11310) 2025-02-07 10:24:05 +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.