uv/crates
Charlie Marsh c669542a9e
Respect overrides in all direct-dependency iterators (#2742)
## Summary

We iterate over the project "requirements" directly in a variety of
places. However, it's not always the case that an input "requirement" on
its own will _actually_ be part of the resolution, since we support
"overrides".

Historically, then, overrides haven't worked as expected for _direct_
dependencies (and we have some tests that demonstrate the current,
"wrong" behavior). This is just a bug, but it's not really one that
comes up in practice, since it's rare to apply an override to your _own_
dependency.

However, we're now considering expanding the lookahead concept to
include local transitive dependencies. In this case, it's more and more
important that overrides and constraints are handled consistently.

This PR modifies all the locations in which we iterate over requirements
directly, and modifies them to respect overrides (and constraints, where
necessary).
2024-03-31 14:03:49 -04: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 Consider installed packages during resolution (#2596) 2024-03-28 13:49:17 -05:00
install-wheel-rs Use Resolver in pip sync (#2696) 2024-03-27 17:36:38 -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 Allow prereleases, locals, and URLs in non-editable path requirements (#2671) 2024-03-27 22:17:09 +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 Read package metadata from pyproject.toml when statically defined (#2676) 2024-03-27 14:34:18 +00:00
requirements-txt Update Rust to v1.77 (#2591) 2024-03-27 14:41:27 +00:00
uv Respect overrides in all direct-dependency iterators (#2742) 2024-03-31 14:03:49 -04:00
uv-auth Fix authentication with JFrog artifactories (#2592) 2024-03-21 12:10:43 -05:00
uv-build Read package metadata from pyproject.toml when statically defined (#2676) 2024-03-27 14:34:18 +00:00
uv-cache uv-cache: bump built-wheels cache version (#2715) 2024-03-28 13:24:47 -05:00
uv-client Respect --no-index with --find-links in pip sync (#2692) 2024-03-27 16:15:14 +00:00
uv-dev Consider installed packages during resolution (#2596) 2024-03-28 13:49:17 -05:00
uv-dispatch Consider installed packages during resolution (#2596) 2024-03-28 13:49:17 -05:00
uv-distribution Respect subdirectories when reading static metadata (#2728) 2024-03-29 22:36:10 -04:00
uv-extract Remove unused dependencies (#2543) 2024-03-19 13:10:10 -04:00
uv-fs Bring harmony to the test snapshot filtering situation (#2678) 2024-03-27 14:10:12 +00:00
uv-git Add an in-memory cache for Git references (#2682) 2024-03-27 01:39:01 +00:00
uv-installer Consider installed packages during resolution (#2596) 2024-03-28 13:49:17 -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 Respect overrides in all direct-dependency iterators (#2742) 2024-03-31 14:03:49 -04:00
uv-resolver Respect overrides in all direct-dependency iterators (#2742) 2024-03-31 14:03:49 -04:00
uv-trampoline Use c-string literals and update trampolines (#2590) 2024-03-21 15:36:00 +00:00
uv-types Respect overrides in all direct-dependency iterators (#2742) 2024-03-31 14:03:49 -04:00
uv-version Bump version to 0.1.26 (#2713) 2024-03-28 12:55:36 -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.