uv/crates
Charlie Marsh ffd78d0821
Add an in-memory cache for Git references (#2682)
## Summary

Ensures that, even if we try to resolve the same Git reference twice
within an invocation, it always returns a (cached) consistent result.

Closes https://github.com/astral-sh/uv/issues/2673.

## Test Plan

```
❯ cargo run pip install git+https://github.com/pallets/flask.git --reinstall --no-cache
   Compiling uv-distribution v0.0.1 (/Users/crmarsh/workspace/uv/crates/uv-distribution)
   Compiling uv-resolver v0.0.1 (/Users/crmarsh/workspace/uv/crates/uv-resolver)
   Compiling uv-installer v0.0.1 (/Users/crmarsh/workspace/uv/crates/uv-installer)
   Compiling uv-dispatch v0.0.1 (/Users/crmarsh/workspace/uv/crates/uv-dispatch)
   Compiling uv-requirements v0.1.0 (/Users/crmarsh/workspace/uv/crates/uv-requirements)
   Compiling uv v0.1.24 (/Users/crmarsh/workspace/uv/crates/uv)
    Finished dev [unoptimized + debuginfo] target(s) in 3.95s
     Running `target/debug/uv pip install 'git+https://github.com/pallets/flask.git' --reinstall --no-cache`
 Updated https://github.com/pallets/flask.git (b90a4f1)
Resolved 7 packages in 280ms
   Built flask @ git+https://github.com/pallets/flask.git@b90a4f1f4a370e92054b9cc9db0efcb864f87ebe                                                                                                                                            Downloaded 7 packages in 212ms
Installed 7 packages in 9ms
```
2024-03-27 01:39:01 +00:00
..
bench Avoid repeating paths of workspace packages (#2573) 2024-03-20 16:16:02 -04:00
cache-key Avoid panicking on cannot-be-a-base URLs (#2461) 2024-03-14 17:47:16 +00:00
distribution-filename Update miette v7, pubgrub and small Cargo.toml cleanup (#2610) 2024-03-22 10:42:48 +00:00
distribution-types Support file://localhost/ schemes (#2657) 2024-03-25 19:23:26 +00:00
install-wheel-rs Avoid repeating paths of workspace packages (#2573) 2024-03-20 16:16:02 -04:00
once-map Remove unused deps (#1273) 2024-02-11 18:53:58 +00:00
pep440-rs Update pubgrub to use a dependency provider (#2648) 2024-03-25 15:51:31 +01:00
pep508-rs Use PEP 517 to extract non-static pyproject.toml metadata (#2633) 2024-03-25 20:27:41 +00:00
platform-tags Drop macosx_10_0 from compatible wheel tags on aarch64 (#2496) 2024-03-18 14:52:54 +00:00
pypi-types Update miette v7, pubgrub and small Cargo.toml cleanup (#2610) 2024-03-22 10:42:48 +00:00
requirements-txt Add --no-binary and --only-binary support to requirements.txt (#2680) 2024-03-27 01:12:29 +00:00
uv Add --no-binary and --only-binary support to requirements.txt (#2680) 2024-03-27 01:12:29 +00:00
uv-auth Fix authentication with JFrog artifactories (#2592) 2024-03-21 12:10:43 -05:00
uv-build Rename uv-traits and split into separate modules (#2674) 2024-03-26 15:39:43 -05:00
uv-cache Avoid ignore crate finding cache gitignore (#2615) 2024-03-22 14:36:07 -05:00
uv-client uv-client: fix linehaul test (#2647) 2024-03-25 10:12:00 -04:00
uv-dev Rename uv-traits and split into separate modules (#2674) 2024-03-26 15:39:43 -05:00
uv-dispatch Rename uv-traits and split into separate modules (#2674) 2024-03-26 15:39:43 -05:00
uv-distribution Add an in-memory cache for Git references (#2682) 2024-03-27 01:39:01 +00:00
uv-extract Remove unused dependencies (#2543) 2024-03-19 13:10:10 -04:00
uv-fs Avoid repeating paths of workspace packages (#2573) 2024-03-20 16:16:02 -04:00
uv-git Add an in-memory cache for Git references (#2682) 2024-03-27 01:39:01 +00:00
uv-installer Rename uv-traits and split into separate modules (#2674) 2024-03-26 15:39:43 -05:00
uv-interpreter fix: do not error when there are warnings on stderr (#2599) 2024-03-21 19:23:41 -04:00
uv-normalize Update miette v7, pubgrub and small Cargo.toml cleanup (#2610) 2024-03-22 10:42:48 +00:00
uv-requirements Add --no-binary and --only-binary support to requirements.txt (#2680) 2024-03-27 01:12:29 +00:00
uv-resolver Rename uv-traits and split into separate modules (#2674) 2024-03-26 15:39:43 -05:00
uv-trampoline Use c-string literals and update trampolines (#2590) 2024-03-21 15:36:00 +00:00
uv-types Add --no-binary and --only-binary support to requirements.txt (#2680) 2024-03-27 01:12:29 +00:00
uv-version Bump version to 0.1.24 (#2621) 2024-03-22 14:58:10 -05:00
uv-virtualenv Avoid repeating paths of workspace packages (#2573) 2024-03-20 16:16:02 -04:00
uv-warnings Rename to uv (#1302) 2024-02-15 11:19:46 -06:00
README.md Rename uv-traits and split into separate modules (#2674) 2024-03-26 15:39:43 -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-interpreter

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.