uv/crates
konsti ebc6d20d9d
Better build error messages (#9660)
Build failures are one of the most common user facing failures that
aren't "obivous" errors (such as typos) or resolver errors. Currently,
they show more technical details than being focussed on this being an
error in a subprocess that is either on the side of the package or -
more likely - in the build environment, e.g. the user needs to install a
dev package or their python version is incompatible.

The new error message clearly delineates the part that's important (this
is a build backend problem) from the internals (we called this hook) and
is consistent about which part of the dist building stage failed. We
have to calibrate the exact wording of the error message some more. Most
of the implementation is working around the orphan rule, (this)error
rules and trait rules, so it came out more of a refactoring than
intended.

Example:


![image](https://github.com/user-attachments/assets/2bc12992-db79-4362-a444-fd0d94594b77)
2024-12-17 09:44:32 -06:00
..
uv Better build error messages (#9660) 2024-12-17 09:44:32 -06:00
uv-auth Publish: Warn when keyring has no password (#8827) 2024-11-27 20:54:49 +01:00
uv-bench Avoid `liblzma-dev` system dep in uv-dev and uv-bench (#9933) 2024-12-17 16:12:33 +01:00
uv-build-backend Build backend: Fix pre-PEP 639 license files (#9965) 2024-12-17 14:19:59 +00:00
uv-build-frontend Better build error messages (#9660) 2024-12-17 09:44:32 -06:00
uv-cache Avoid reusing interpreter metadata when running under Rosetta (#9846) 2024-12-12 13:21:35 -05:00
uv-cache-info Improve error message for cache info serialization (#8500) 2024-10-23 13:17:31 +00:00
uv-cache-key Remove separate test files in favor of same-file `mod tests` (#9199) 2024-11-18 20:11:46 +00:00
uv-cli Document the `--fork-strategy` setting (#9887) 2024-12-13 21:35:20 +00:00
uv-client Upgrade minimum Rust version to 1.83 (#9815) 2024-12-11 10:06:19 -06:00
uv-configuration Upgrade minimum Rust version to 1.83 (#9815) 2024-12-11 10:06:19 -06:00
uv-console Support interactive input in `uv publish` (#8158) 2024-10-15 10:00:43 +02:00
uv-dev Avoid `liblzma-dev` system dep in uv-dev and uv-bench (#9933) 2024-12-17 16:12:33 +01:00
uv-dirs Eliminate dependencies on `directores` and `dirs-sys` (#8048) 2024-11-07 14:29:54 -06:00
uv-dispatch Better build error messages (#9660) 2024-12-17 09:44:32 -06:00
uv-distribution Better build error messages (#9660) 2024-12-17 09:44:32 -06:00
uv-distribution-filename Add test coverage for build tag prioritization (#9680) 2024-12-06 09:32:19 -05:00
uv-distribution-types Better build error messages (#9660) 2024-12-17 09:44:32 -06:00
uv-extract Upgrade minimum Rust version to 1.83 (#9815) 2024-12-11 10:06:19 -06:00
uv-fs Avoid `panic!()` when current directory does not exist (#9876) 2024-12-13 21:39:46 +00:00
uv-git Remove separate test files in favor of same-file `mod tests` (#9199) 2024-11-18 20:11:46 +00:00
uv-globfilter Build backend: Revamp include/exclude (#9525) 2024-12-01 11:32:35 +00:00
uv-install-wheel Upgrade minimum Rust version to 1.83 (#9815) 2024-12-11 10:06:19 -06:00
uv-installer Better build error messages (#9660) 2024-12-17 09:44:32 -06:00
uv-macros Generate environment variables doc from code (#8493) 2024-11-03 08:31:38 -06:00
uv-metadata chore: Move all integration tests to a single binary (#8093) 2024-10-11 16:41:35 +02:00
uv-normalize Remove separate test files in favor of same-file `mod tests` (#9199) 2024-11-18 20:11:46 +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 Omit trailing zeros on Python requirements inferred from versions (#9952) 2024-12-17 08:18:27 -06:00
uv-pep508 Upgrade minimum Rust version to 1.83 (#9815) 2024-12-11 10:06:19 -06:00
uv-performance-flate2-backend Use `zlib-rs` on all platforms (#9264) 2024-11-20 00:01:58 -05:00
uv-performance-memory-allocator Run `cargo update` (#8703) 2024-11-01 10:26:21 -04:00
uv-platform-tags Fix Python interpreter discovery on non-glibc hosts (#9005) 2024-11-21 12:35:02 +01:00
uv-publish Upload: All metadata incl. PEP 639 (#9442) 2024-11-27 00:25:08 +01:00
uv-pypi-types Show a concise error message for missing version field (#9912) 2024-12-15 10:27:43 -05:00
uv-python Support 32-bit OS on 64-bit host (#9970) 2024-12-17 14:35:19 +01:00
uv-requirements Better build error messages (#9660) 2024-12-17 09:44:32 -06:00
uv-requirements-txt Align `indoc` and `base64` workspace dependencies with root project (#9555) 2024-12-01 17:20:22 -05:00
uv-resolver Better build error messages (#9660) 2024-12-17 09:44:32 -06:00
uv-scripts Upgrade minimum Rust version to 1.83 (#9815) 2024-12-11 10:06:19 -06:00
uv-settings Correctly document default value of `fork-strategy` setting (#9931) 2024-12-16 18:41:22 +00:00
uv-shell Refactor shell quoting (#9055) 2024-11-15 09:06:54 +00:00
uv-state Add `uv-dirs` to consolidate directory lookup methods (#8453) 2024-10-22 11:33:25 -05:00
uv-static Introduce a `--fork-strategy` preference mode (#9868) 2024-12-13 16:05:07 -05:00
uv-tool Enable `uv tool uninstall uv` on Windows (#8963) 2024-12-10 13:13:22 -05:00
uv-trampoline Update Rust crate thiserror to v2.0.7 (#9926) 2024-12-15 20:12:08 -05:00
uv-trampoline-builder Add support for installing versioned Python executables on Windows (#8663) 2024-10-31 15:58:35 +00:00
uv-types Better build error messages (#9660) 2024-12-17 09:44:32 -06:00
uv-version Bump version to v0.5.9 (#9889) 2024-12-13 17:28:19 -05:00
uv-virtualenv Patch `sysconfig` data at install time (#9857) 2024-12-13 14:36:22 -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 a concise error message for missing version field (#9912) 2024-12-15 10:27:43 -05:00
README.md Link to Dependency specifiers instead of PEP 508 (#8411) 2024-10-21 14:43:38 -04:00

README.md

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.