diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 347b413d7..3b9c76582 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -152,8 +152,6 @@ jobs: - uses: Swatinem/rust-cache@v2 with: save-if: ${{ github.ref == 'refs/heads/main' }} - - name: "Install system dependencies" - run: sudo apt-get install liblzma-dev - name: "Generate all" run: cargo dev generate-all --mode check @@ -1853,13 +1851,13 @@ jobs: - name: "Install requirements and prime cache" run: | sudo apt-get update - sudo apt-get install -y libsasl2-dev libldap2-dev libkrb5-dev liblzma-dev + sudo apt-get install -y libsasl2-dev libldap2-dev libkrb5-dev cargo run --bin uv -- venv --cache-dir .cache cargo run --bin uv -- pip compile scripts/requirements/jupyter.in --universal --exclude-newer 2024-08-08 --cache-dir .cache cargo run --bin uv -- pip compile scripts/requirements/airflow.in --universal --exclude-newer 2024-08-08 --cache-dir .cache - name: "Build benchmarks" - run: cargo codspeed build --profile profiling --features codspeed -p uv-bench + run: cargo codspeed build --profile profiling --features "codspeed,performance" -p uv-bench - name: "Run benchmarks" uses: CodSpeedHQ/action@v3 diff --git a/Cargo.lock b/Cargo.lock index ba9e89f41..6f84be9e7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4536,6 +4536,7 @@ dependencies = [ "uv-distribution", "uv-distribution-filename", "uv-distribution-types", + "uv-extract", "uv-install-wheel", "uv-pep440", "uv-pep508", @@ -4802,10 +4803,12 @@ dependencies = [ "uv-client", "uv-distribution-filename", "uv-distribution-types", + "uv-extract", "uv-installer", "uv-macros", "uv-options-metadata", "uv-pep508", + "uv-performance-flate2-backend", "uv-performance-memory-allocator", "uv-pypi-types", "uv-python", diff --git a/crates/uv-bench/Cargo.toml b/crates/uv-bench/Cargo.toml index 5bea76de2..81f6d973d 100644 --- a/crates/uv-bench/Cargo.toml +++ b/crates/uv-bench/Cargo.toml @@ -36,6 +36,7 @@ uv-dispatch = { workspace = true } uv-distribution = { workspace = true } uv-distribution-filename = { workspace = true } uv-distribution-types = { workspace = true } +uv-extract = { workspace = true, optional = true } uv-install-wheel = { workspace = true } uv-pep440 = { workspace = true } uv-pep508 = { workspace = true } @@ -51,5 +52,11 @@ criterion = { version = "0.5.1", default-features = false, features = ["async_to jiff = { workspace = true } tokio = { workspace = true } +[package.metadata.cargo-shear] +ignored = ["uv-extract"] + [features] codspeed = ["codspeed-criterion-compat"] +performance = [ + "uv-extract/performance" +] diff --git a/crates/uv-dev/Cargo.toml b/crates/uv-dev/Cargo.toml index 2a436267f..aa634af23 100644 --- a/crates/uv-dev/Cargo.toml +++ b/crates/uv-dev/Cargo.toml @@ -21,6 +21,7 @@ uv-cli = { workspace = true } uv-client = { workspace = true } uv-distribution-filename = { workspace = true } uv-distribution-types = { workspace = true } +uv-extract = { workspace = true, optional = true } uv-installer = { workspace = true } uv-macros = { workspace = true } uv-options-metadata = { workspace = true } @@ -52,8 +53,9 @@ tokio = { workspace = true } tracing = { workspace = true } tracing-durations-export = { workspace = true, features = ["plot"] } tracing-subscriber = { workspace = true } -walkdir = { workspace = true } +uv-performance-flate2-backend = { path = "../uv-performance-flate2-backend", optional = true } uv-performance-memory-allocator = { path = "../uv-performance-memory-allocator", optional = true } +walkdir = { workspace = true } [[bin]] name = "uv-dev" @@ -64,8 +66,14 @@ required-features = ["dev"] default = ["performance"] # Actually build the dev CLI. dev = [] -performance = ["dep:uv-performance-memory-allocator"] +performance = [ + "performance-memory-allocator", + "performance-flate2-backend", + "uv-extract/performance" +] +performance-memory-allocator = ["dep:uv-performance-memory-allocator"] +performance-flate2-backend = ["dep:uv-performance-flate2-backend"] render = ["poloto", "resvg", "tagu"] [package.metadata.cargo-shear] -ignored = ["flate2", "uv-performance-memory-allocator", "uv-performance-flate2-backend"] +ignored = ["flate2", "uv-extract", "uv-performance-memory-allocator", "uv-performance-flate2-backend"]