uv/crates
Andrew Gallant 407f1e370b uv-resolver: filter dependencies that can't exist in a fork
This commit adds marker expressions to our `Fork` type, which are in
turn passed down into `PubGrubDependencies::from_requirements` to filter
our any dependencies with markers that are disjoint from the fork's
marker expression.

This is necessary to avoid visiting packages in the dependency graph
that can never actually be installed. This is because when a fork is
created in the resolver, it always happens when there are two sibling
dependency specifications on a package with the same name, but with
non-overlapping marker expressions. Each fork corresponds to each
such conflicting dependency specification, and each fork assumes the
the corresponding marker expression as a pre-condition for any future
dependencies considered by it. That is, since the fork represents an
installation path that can only be taken when the corresponding
dependency specification (and its marker expression) is actually used,
it also therefore follows that the marker expression is true. Therefore,
any dependency visited in that fork with a marker expression that cannot
possibly be true when the markers of the fork are true can and ought to
be completely ignored.
2024-06-17 09:30:37 -04:00
..
bench Add BuildOptions for centralized combination of NoBuild and NoBinary (#4284) 2024-06-12 21:33:33 +00:00
cache-key Remove some unused pub use exports (#3930) 2024-05-30 22:26:52 -04:00
distribution-filename Represent build tag as u64 (#4253) 2024-06-11 21:40:08 +00:00
distribution-types Use separate path types for directories and files (#4285) 2024-06-12 15:59:21 -04:00
install-wheel-rs Fix relative and absolute path handling in lockfiles (#4266) 2024-06-13 11:51:08 -04:00
once-map Avoid race condition in OnceMap (#3987) 2024-06-03 12:25:58 -04:00
pep440-rs Simplify marker expressions in lockfile (#4066) 2024-06-07 16:14:24 -04:00
pep508-rs Flatten ORs and ANDs in marker construction (#4260) 2024-06-11 21:44:49 -04:00
platform-tags fix: add missing ppc64le alias for powerpc64le (#3963) 2024-06-02 13:15:24 -04:00
pypi-types Support unnamed requirements in uv add (#4326) 2024-06-14 13:42:39 -04:00
requirements-txt Add --no-build, --no-build-package, and binary variants (#4322) 2024-06-14 04:05:00 +00:00
uv Isolate virtual environment tests from developer toolchains (#4342) 2024-06-17 05:40:11 -05:00
uv-auth Include non-standard ports in keyring host queries (#4061) 2024-06-06 19:02:47 -05:00
uv-build Create temporary environments in dedicated cache bucket (#4223) 2024-06-10 23:17:35 +00:00
uv-cache Represent build tag as u64 (#4253) 2024-06-11 21:40:08 +00:00
uv-client Make missing METADATA file a recoverable error (#4247) 2024-06-11 19:49:38 +00:00
uv-configuration Add --no-build, --no-build-package, and binary variants (#4322) 2024-06-14 04:05:00 +00:00
uv-dev Load configuration options from workspace root (#4295) 2024-06-14 01:26:20 +00:00
uv-dispatch Add BuildOptions for centralized combination of NoBuild and NoBinary (#4284) 2024-06-12 21:33:33 +00:00
uv-distribution Add support for adding/removing development dependencies (#4327) 2024-06-14 19:17:29 +00:00
uv-extract Fix nightly cfg checker warnings (#3932) 2024-05-31 09:35:52 +00:00
uv-fs Fix relative and absolute path handling in lockfiles (#4266) 2024-06-13 11:51:08 -04:00
uv-git Remove some anyhow usages (#3962) 2024-06-01 20:11:23 +00:00
uv-installer Add BuildOptions for centralized combination of NoBuild and NoBinary (#4284) 2024-06-12 21:33:33 +00:00
uv-macros Add a derive macro for Combine (#4325) 2024-06-14 04:53:27 +00:00
uv-normalize Add support for development dependencies (#4036) 2024-06-06 01:40:17 +00:00
uv-requirements Use separate path types for directories and files (#4285) 2024-06-12 15:59:21 -04:00
uv-resolver uv-resolver: filter dependencies that can't exist in a fork 2024-06-17 09:30:37 -04:00
uv-settings Add a derive macro for Combine (#4325) 2024-06-14 04:53:27 +00:00
uv-state Add persistent storage of installed toolchains (#3797) 2024-05-27 03:54:49 +00:00
uv-toolchain Add uv toolchain find (#4206) 2024-06-14 17:03:16 +00:00
uv-trampoline Support x86 windows (#3873) 2024-05-28 16:07:39 +00:00
uv-types Add BuildOptions for centralized combination of NoBuild and NoBinary (#4284) 2024-06-12 21:33:33 +00:00
uv-version Bump version to v0.2.11 (#4258) 2024-06-11 20:47:25 -04:00
uv-virtualenv Use relative path for lib64 symlink (#4268) 2024-06-12 09:36:27 -04:00
uv-warnings Fix a bug where no warning is output when parsing of workspace settings fails. (#4014) 2024-06-04 09:21:19 -04:00
README.md Rename uv-interpreter crate to uv-toolchain (#4120) 2024-06-07 13:59:14 -05:00

Crates

bench

Functionality for benchmarking uv.

cache-key

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

distribution-filename

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

distribution-types

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

install-wheel-rs

Install built distributions (wheels) into a virtual environment.]

once-map

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

pep440-rs

Utilities for interacting with Python version numbers and specifiers.

pep508-rs

Utilities for interacting with PEP 508 dependency specifiers.

platform-host

Functionality for detecting the current platform (operating system, architecture, etc.).

platform-tags

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

uv

Command-line interface for the uv package manager.

uv-build

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-toolchain

Functionality for detecting and leveraging the current Python interpreter.

uv-normalize

Normalize package and extra names as per Python specifications.

uv-package

Types and functionality for working with Python packages, e.g., parsing wheel files.

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-types

Shared traits for uv, to avoid circular dependencies.

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.

requirements-txt

Functionality for parsing requirements.txt files.