uv/crates
Charlie Marsh cccb6820db
Avoid reusing incompatible distributions across lock and sync (#5845)
## Summary

We need to avoid using incompatible versions for build dependencies that
are also part of the resolved
environment. This is a very subtle issue, but: when locking, we don't
enforce platform
compatibility. So, if we reuse the resolver state to install, and the
install itself has to
preform a resolution (e.g., for the build dependencies of a source
distribution), that
resolution may choose incompatible versions.

The key property here is that there's a shared package between the build
dependencies and the
project dependencies.

Closes https://github.com/astral-sh/uv/issues/5836.
2024-08-07 00:54:51 +00:00
..
bench Add --no-sources to avoid reading from tool.uv.sources (#5801) 2024-08-06 14:14:19 +00:00
cache-key Use hasher to compute resolution hash (#5495) 2024-07-26 23:24:09 +00:00
distribution-filename Match wheel tags against Requires-Python major-minor (#5289) 2024-07-22 14:33:53 +00:00
distribution-types Strip URL fragments from lockfile (#5805) 2024-08-06 10:00:38 -04:00
install-wheel-rs Use prettier to format the documentation (#5708) 2024-08-02 08:58:31 -05:00
once-map Use lockfile to prefill resolver index (#4495) 2024-07-12 18:49:28 -04:00
pep440-rs Use prettier to format the documentation (#5708) 2024-08-02 08:58:31 -05:00
pep508-rs Use prettier to format the documentation (#5708) 2024-08-02 08:58:31 -05:00
platform-tags Process completed Python installs and uninstalls as a stream (#5203) 2024-07-19 12:50:38 +00:00
pypi-types Fix non-registry serialization for receipts (#5668) 2024-07-31 21:09:54 +00:00
requirements-txt Rename Error::IO to Error::Io (#5174) 2024-07-18 04:13:45 +00:00
uv Avoid reusing incompatible distributions across lock and sync (#5845) 2024-08-07 00:54:51 +00:00
uv-auth Upgrade to Rust 1.80.0 (#5472) 2024-07-27 01:49:47 +00:00
uv-build feat(venv): add relocatable flag (#5515) 2024-07-29 00:10:11 +00:00
uv-cache Grouping GlobalArgs to dedicated heading (#5665) 2024-08-01 10:01:22 -05:00
uv-cli Add help heading for --no-sources (#5833) 2024-08-06 21:29:56 +00:00
uv-client uv-client: switch heuristic freshness lifetime to hard-coded value 2024-07-31 08:12:11 -07:00
uv-configuration Add --no-sources to avoid reading from tool.uv.sources (#5801) 2024-08-06 14:14:19 +00:00
uv-dev Add --no-sources to avoid reading from tool.uv.sources (#5801) 2024-08-06 14:14:19 +00:00
uv-dispatch Allow downloading wheels for metadata with --no-binary (#5707) 2024-08-06 18:14:12 +00:00
uv-distribution Allow downloading wheels for metadata with --no-binary (#5707) 2024-08-06 18:14:12 +00:00
uv-extract Avoid monomorphization of untar (#5743) 2024-08-03 23:29:17 +00:00
uv-fs Capture portable path serialization in a struct (#5652) 2024-07-31 16:00:37 +00:00
uv-git Use full requirement when serializing receipt (#5494) 2024-07-31 16:16:39 +00:00
uv-installer Allow downloading wheels for metadata with --no-binary (#5707) 2024-08-06 18:14:12 +00:00
uv-macros Autogenerate possible values for enums in reference documentation (#5137) 2024-07-17 12:37:33 -04:00
uv-normalize Support dev dependencies in virtual workspace roots (#5709) 2024-08-01 21:04:30 +00:00
uv-options-metadata Autogenerate possible values for enums in reference documentation (#5137) 2024-07-17 12:37:33 -04:00
uv-python Use cache for Python install temporary directories (#5787) 2024-08-05 02:32:24 +00:00
uv-requirements Use cached current directory everywhere (#5574) 2024-07-29 17:03:45 -04:00
uv-resolver Support overlapping local and non-local requirements in forks (#5812) 2024-08-06 12:04:35 -04:00
uv-scripts Upgrade to Rust 1.80.0 (#5472) 2024-07-27 01:49:47 +00:00
uv-settings Reject pyproject.toml in --config-file (#5842) 2024-08-06 23:40:59 +00:00
uv-shell fix(venv): make relocatable activation scripts support ksh (#5640) 2024-07-31 12:18:11 -04:00
uv-state Cache tool environments in uv tool run (#4784) 2024-07-03 19:25:39 -04:00
uv-tool Respect malformed .dist-info directories in tool installs (#5756) 2024-08-03 19:43:03 -04:00
uv-trampoline Update Rust crate which to v6.0.2 (#5779) 2024-08-05 01:08:55 +00:00
uv-types Add --no-sources to avoid reading from tool.uv.sources (#5801) 2024-08-06 14:14:19 +00:00
uv-version Bump version to 0.2.33 (#5712) 2024-08-01 21:39:17 +00:00
uv-virtualenv fix(venv): make relocatable activation scripts support ksh (#5640) 2024-07-31 12:18:11 -04:00
uv-warnings Upgrade to Rust 1.80.0 (#5472) 2024-07-27 01:49:47 +00:00
uv-workspace Reject pyproject.toml in --config-file (#5842) 2024-08-06 23:40:59 +00:00
README.md Use prettier to format the documentation (#5708) 2024-08-02 08:58:31 -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-python

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

Utilities for detecting and manipulating shell environments.

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.

uv-workspace

Workspace abstractions for uv.

requirements-txt

Functionality for parsing requirements.txt files.