uv/crates
justin 1ff7265e8a
Some checks are pending
CI / check system | embedded python3.10 on windows x86-64 (push) Blocked by required conditions
CI / benchmarks (push) Blocked by required conditions
CI / build binary | linux musl (push) Blocked by required conditions
CI / build binary | macos aarch64 (push) Blocked by required conditions
CI / build binary | macos x86_64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86 (push) Blocked by required conditions
CI / check system | python3.13 on windows x86-64 (push) Blocked by required conditions
CI / check system | x86-64 python3.13 on windows aarch64 (push) Blocked by required conditions
CI / check system | windows registry (push) Blocked by required conditions
CI / check system | python3.12 via chocolatey (push) Blocked by required conditions
CI / check system | python3.9 via pyenv (push) Blocked by required conditions
CI / check system | python3.13 (push) Blocked by required conditions
CI / check system | conda3.11 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.8 on macos aarch64 (push) Blocked by required conditions
CI / Determine changes (push) Waiting to run
CI / lint (push) Waiting to run
CI / check system | conda3.11 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.11 on windows x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on windows x86-64 (push) Blocked by required conditions
CI / cargo clippy | ubuntu (push) Blocked by required conditions
CI / check system | amazonlinux (push) Blocked by required conditions
CI / cargo clippy | windows (push) Blocked by required conditions
CI / cargo dev generate-all (push) Blocked by required conditions
CI / cargo shear (push) Waiting to run
CI / cargo test | ubuntu (push) Blocked by required conditions
CI / smoke test | windows x86_64 (push) Blocked by required conditions
CI / smoke test | windows aarch64 (push) Blocked by required conditions
CI / integration test | conda on ubuntu (push) Blocked by required conditions
CI / integration test | graalpy on ubuntu (push) Blocked by required conditions
CI / integration test | graalpy on windows (push) Blocked by required conditions
CI / integration test | github actions (push) Blocked by required conditions
CI / check system | python on debian (push) Blocked by required conditions
CI / check system | python on fedora (push) Blocked by required conditions
CI / check system | python on ubuntu (push) Blocked by required conditions
CI / check system | python on opensuse (push) Blocked by required conditions
CI / check system | python on rocky linux 8 (push) Blocked by required conditions
CI / check system | python on rocky linux 9 (push) Blocked by required conditions
CI / check system | pypy on ubuntu (push) Blocked by required conditions
CI / check system | pyston (push) Blocked by required conditions
CI / check system | alpine (push) Blocked by required conditions
CI / check system | python on macos aarch64 (push) Blocked by required conditions
CI / check system | homebrew python on macos aarch64 (push) Blocked by required conditions
CI / check system | python on macos x86-64 (push) Blocked by required conditions
CI / check windows trampoline | x86_64 (push) Blocked by required conditions
CI / test windows trampoline | i686 (push) Blocked by required conditions
CI / test windows trampoline | x86_64 (push) Blocked by required conditions
CI / typos (push) Waiting to run
CI / mkdocs (push) Waiting to run
CI / build binary | linux libc (push) Blocked by required conditions
CI / cargo test | macos (push) Blocked by required conditions
CI / cargo test | windows (push) Blocked by required conditions
CI / check windows trampoline | aarch64 (push) Blocked by required conditions
CI / check windows trampoline | i686 (push) Blocked by required conditions
CI / build binary | windows x86_64 (push) Blocked by required conditions
CI / build binary | windows aarch64 (push) Blocked by required conditions
CI / cargo build (msrv) (push) Blocked by required conditions
CI / build binary | freebsd (push) Blocked by required conditions
CI / ecosystem test | pydantic/pydantic-core (push) Blocked by required conditions
CI / ecosystem test | prefecthq/prefect (push) Blocked by required conditions
CI / ecosystem test | pallets/flask (push) Blocked by required conditions
CI / smoke test | linux (push) Blocked by required conditions
CI / smoke test | macos (push) Blocked by required conditions
CI / integration test | deadsnakes python3.9 on ubuntu (push) Blocked by required conditions
CI / integration test | free-threaded on linux (push) Blocked by required conditions
CI / integration test | free-threaded on windows (push) Blocked by required conditions
CI / integration test | pypy on ubuntu (push) Blocked by required conditions
CI / integration test | pypy on windows (push) Blocked by required conditions
CI / integration test | determine publish changes (push) Blocked by required conditions
CI / integration test | uv publish (push) Blocked by required conditions
CI / integration test | uv_build (push) Blocked by required conditions
CI / check cache | ubuntu (push) Blocked by required conditions
CI / check cache | macos aarch64 (push) Blocked by required conditions
respect --offline flag for git cli operations (#12619)
## Summary
closes #12234


[fetch_with_cli](e0f81f0d4a/crates/uv-git/src/git.rs (L573))
doesn't respect the registry client's [connectivity
setting](e0f81f0d4a/crates/uv-client/src/registry_client.rs (L1009))
- this pr updates `fetch_with_cli` to set `GIT_ALLOW_PROTOCOL=file` when
the client's connectivity setting is `Connectivity::Offline`

## Test Plan
E2E

```sh
cargo run add "pycurl @ git+https://github.com/pycurl/pycurl.git" --directory ~/src/offline-test/ --offline
```

```sh
   Compiling uv-cli v0.0.1 (/Users/justinchapman/src/uv/crates/uv-cli)
   Compiling uv v0.6.11 (/Users/justinchapman/src/uv/crates/uv)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 4.47s
     Running `target/debug/uv add 'pycurl @ git+https://github.com/pycurl/pycurl.git' --directory /Users/justinchapman/src/offline-test/ --offline`
   Updating https://github.com/pycurl/pycurl.git (HEAD)                                                                                                                                   × Failed to download and build `pycurl @ git+https://github.com/pycurl/pycurl.git`
  ├─▶ Git operation failed
  ├─▶ failed to fetch into: /Users/justinchapman/.cache/uv/git-v0/db/9a596e5213c3162d
  ╰─▶ process didn't exit successfully: `/usr/bin/git fetch --force --update-head-ok 'https://github.com/pycurl/pycurl.git' '+HEAD:refs/remotes/origin/HEAD'` (exit status: 128)
      --- stderr
      fatal: transport 'https' not allowed

  help: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing.
```

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-04-04 11:02:54 -05:00
..
uv respect --offline flag for git cli operations (#12619) 2025-04-04 11:02:54 -05:00
uv-auth Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-bench Omit wheels from lockfile based on --exclude-newer (#12299) 2025-03-22 12:27:11 -04:00
uv-build Bump to 0.6.12 (#12637) 2025-04-02 15:22:15 -05:00
uv-build-backend Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-build-frontend Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-cache Use Box<Path> in lieu of PathBuf for immutable structs (#12346) 2025-03-25 21:56:06 +00:00
uv-cache-info Avoid allocations for default cache keys (#12063) 2025-03-17 19:59:32 -04:00
uv-cache-key Use hash instead of full wheel name in wheels bucket (#11738) 2025-02-26 22:41:57 +00:00
uv-cli Add --show-version to uv python find (#12376) 2025-04-03 08:34:45 -05:00
uv-client Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-configuration fix parsing of python-platform in settings tomls (#12592) 2025-04-01 09:08:35 -04:00
uv-console Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-dev Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-dirs Add support for global uv python pin (#12115) 2025-03-13 13:48:37 +01:00
uv-dispatch Move lowered requirement source type out of uv-pypi-types (#12356) 2025-03-20 21:16:12 -04:00
uv-distribution respect --offline flag for git cli operations (#12619) 2025-04-04 11:02:54 -05:00
uv-distribution-filename Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-distribution-types Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-extract improve archive error messages (#12627) 2025-04-02 15:57:00 +00:00
uv-fs Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-git respect --offline flag for git cli operations (#12619) 2025-04-04 11:02:54 -05:00
uv-git-types Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-globfilter Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-install-wheel Remove unused thiserror variants (#11713) 2025-02-22 12:12:22 -10:00
uv-installer Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-macros Remove unnecessary prefixes (#10158) 2024-12-25 14:18:01 -05:00
uv-metadata Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-normalize add default-groups = "all" sugar to pyproject.toml (#12289) 2025-03-18 13:42:06 -05:00
uv-once-map Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-options-metadata Upgrade minimum Rust version to 1.83 (#9815) 2024-12-11 10:06:19 -06:00
uv-pep440 Use consistent commas around i.e. and e.g. (#12157) 2025-03-13 23:42:10 +00:00
uv-pep508 Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-performance-memory-allocator Update Rust crate mimalloc to v0.1.44 (#12416) 2025-03-24 09:18:26 -04:00
uv-platform-tags Fix GraalPy abi tag parsing and discovery (#12154) 2025-03-13 23:55:07 +00:00
uv-publish Support --find-links-style "flat" indexes in [[tool.uv.index]] (#12407) 2025-03-25 21:14:44 -04:00
uv-pypi-types Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-python Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-requirements Use a boxed slice for various requirement types (#12514) 2025-03-27 17:09:26 -04:00
uv-requirements-txt Move lowered requirement source type out of uv-pypi-types (#12356) 2025-03-20 21:16:12 -04:00
uv-resolver Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-scripts Avoid writing empty requires-python to script blocks (#12517) 2025-03-28 10:26:51 -04:00
uv-settings Enable necessary optional features in uv-settings (#12504) 2025-03-27 02:30:00 +00:00
uv-shell Add support for Windows legacy scripts via uv tool run (#12079) 2025-03-11 09:02:17 -05:00
uv-small-str Edition 2024 prep: Escape r#gen and remove redundant ref (#11922) 2025-03-03 11:13:56 +00:00
uv-state Add uv-dirs to consolidate directory lookup methods (#8453) 2024-10-22 11:33:25 -05:00
uv-static respect --offline flag for git cli operations (#12619) 2025-04-04 11:02:54 -05:00
uv-tool Move lowered requirement source type out of uv-pypi-types (#12356) 2025-03-20 21:16:12 -04:00
uv-torch Check all compatible torch indexes when --torch-backend is enabled (#12385) 2025-03-22 11:53:23 -04:00
uv-trampoline Upgrade Rust toolchain to 1.85 (#11720) 2025-02-23 16:52:34 +01:00
uv-trampoline-builder Upgrade zip crate to v2 (#12196) 2025-03-16 23:58:11 +00:00
uv-types Use a boxed slice for extras and groups (#12391) 2025-03-22 11:53:36 -04:00
uv-version Bump to 0.6.12 (#12637) 2025-04-02 15:22:15 -05:00
uv-virtualenv Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
uv-warnings chore: Move all integration tests to a single binary (#8093) 2024-10-11 16:41:35 +02:00
uv-workspace Bump MSRV to 1.84 (#12670) 2025-04-04 11:49:26 -04:00
README.md Link to Dependency specifiers instead of PEP 508 (#8411) 2024-10-21 14:43:38 -04:00

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.