uv/crates
Charlie Marsh 3d10f344f3
Only include visited packages in error message derivation (#1144)
## Summary

This is my guess as to the source of the resolver flake, based on
information and extensive debugging from @zanieb. In short, if we rely
on `self.index.packages` as a source of truth during error reporting, we
open ourselves up to a source of non-determinism, because we fetch
package metadata asynchronously in the background while we solve -- so
packages _could_ be included in or excluded from the index depending on
the order in which those requests are returned.

So, instead, we now track the set of packages that _were_ visited by the
solver. Visiting a package _requires_ that we wait for its metadata to
be available. By limiting analysis to those packages that were visited
during solving, we are faithfully representing the state of the solver
at the time of failure.

Closes #863
2024-01-28 09:27:22 -05:00
..
bench Use Clippy lint table over Cargo config (#490) 2023-11-22 15:10:27 +00:00
cache-key Avoid storing absolute URLs for files (#944) 2024-01-17 09:15:21 -05:00
distribution-filename Implement --find-links as flat indexes (directories in pip-compile) (#912) 2024-01-15 02:04:10 +00:00
distribution-types Support relative file: paths for --find-links (#1147) 2024-01-27 03:48:25 +00:00
gourgeist Windows launchers using posy trampolines (#1092) 2024-01-26 13:54:11 +00:00
install-wheel-rs Avoid unnecessary permissions changes for copy paths (#1152) 2024-01-27 22:11:55 -05:00
once-map Propagate cancellation errors in OnceMap (#1032) 2024-01-22 09:00:21 -05:00
pep440-rs Rename pep440-rs to Readme.md (#1014) 2024-01-19 15:16:12 -05:00
pep508-rs Support relative file: paths for --find-links (#1147) 2024-01-27 03:48:25 +00:00
platform-host Remove some unused dependencies (#1077) 2024-01-24 11:58:21 -05:00
platform-tags Add support for PyPy wheels (#1028) 2024-01-22 14:22:27 +00:00
puffin Only include visited packages in error message derivation (#1144) 2024-01-28 09:27:22 -05:00
puffin-build Fix venv PATH on windows (#1095) 2024-01-25 15:40:52 +00:00
puffin-cache Remove refresh checks from the install plan (#1119) 2024-01-25 22:48:16 -05:00
puffin-client puffin-client: rejigger error type (#1102) 2024-01-25 13:13:21 -05:00
puffin-dev Add support for emitting index URLs and --find-links (#1142) 2024-01-27 01:37:55 +00:00
puffin-dispatch Add support for disabling installation from pre-built wheels (#956) 2024-01-19 11:24:27 -06:00
puffin-distribution Add support for emitting index URLs and --find-links (#1142) 2024-01-27 01:37:55 +00:00
puffin-extract Avoid re-creating directories during unzip (#1154) 2024-01-28 00:07:54 -05:00
puffin-fs Make puffin-fs tokio dependency opt-in (#1100) 2024-01-25 12:47:46 -05:00
puffin-git Re-add Cargo's known hosts checking (#1118) 2024-01-25 22:29:36 -05:00
puffin-installer Remove refresh checks from the install plan (#1119) 2024-01-25 22:48:16 -05:00
puffin-interpreter Add bootstrapping and isolation of development Python versions (#1105) 2024-01-26 12:12:48 -06:00
puffin-normalize Avoid some additional clones for PackageName (#896) 2024-01-12 17:54:40 +00:00
puffin-resolver Only include visited packages in error message derivation (#1144) 2024-01-28 09:27:22 -05:00
puffin-traits Add support for disabling installation from pre-built wheels (#956) 2024-01-19 11:24:27 -06:00
puffin-trampoline Windows launchers using posy trampolines (#1092) 2024-01-26 13:54:11 +00:00
puffin-warnings Migrate back to owo-colors (#824) 2024-01-08 08:54:57 +00:00
puffin-workspace Use Clippy lint table over Cargo config (#490) 2023-11-22 15:10:27 +00:00
pypi-types Use parse_headers rather than parsing body (#1090) 2024-01-25 09:41:21 +01:00
requirements-txt Accept long form of pip arguments in requirements.txt (#1145) 2024-01-26 21:56:10 -05:00
README.md Rename puffin-cli crate to puffin (#976) 2024-01-18 19:02:52 -05:00

Crates

bench

Functionality for benchmarking Puffin.

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.

gourgeist

A venv replacement to create virtual environments in Rust.

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.

puffin

Command-line interface for the Puffin package manager.

puffin-build

A PEP 517-compatible build frontend for Puffin.

puffin-cache

Functionality for caching Python packages and associated metadata.

puffin-client

Client for interacting with PyPI-compatible HTTP APIs.

puffin-dev

Development utilities for Puffin.

puffin-dispatch

A centralized struct for resolving and building source distributions in isolated environments. Implements the traits defined in puffin-traits.

puffin-distribution

Client for interacting with built distributions (wheels) and source distributions (sdists). Capable of fetching metadata, distribution contents, etc.

puffin-extract

Utilities for extracting files from archives.

puffin-fs

Utilities for interacting with the filesystem.

puffin-git

Functionality for interacting with Git repositories.

puffin-installer

Functionality for installing Python packages into a virtual environment.

puffin-interpreter

Functionality for detecting and leveraging the current Python interpreter.

puffin-normalize

Normalize package and extra names as per Python specifications.

puffin-package

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

puffin-resolver

Functionality for resolving Python packages and their dependencies.

puffin-traits

Shared traits for Puffin, to avoid circular dependencies.

pypi-types

General-purpose type definitions for types used in PyPI-compatible APIs.

puffin-warnings

User-facing warnings for Puffin.

requirements-txt

Functionality for parsing requirements.txt files.