From e4d193a5f8153764efe7beea38ff5f145d8af135 Mon Sep 17 00:00:00 2001 From: Zanie Blue Date: Tue, 2 Dec 2025 07:50:39 -0600 Subject: [PATCH] Fix `uv-trampoline-builder` builds from crates.io by moving bundled executables (#16922) Closes https://github.com/astral-sh/uv/issues/16836 --- .github/workflows/ci.yml | 4 ++-- crates/uv-trampoline-builder/Cargo.toml | 1 + crates/uv-trampoline-builder/src/lib.rs | 15 ++++++--------- .../uv-trampoline-aarch64-console.exe | Bin .../trampolines/uv-trampoline-aarch64-gui.exe | Bin .../trampolines/uv-trampoline-i686-console.exe | Bin .../trampolines/uv-trampoline-i686-gui.exe | Bin .../trampolines/uv-trampoline-x86_64-console.exe | Bin .../trampolines/uv-trampoline-x86_64-gui.exe | Bin crates/uv-trampoline/README.md | 12 ++++++------ pyproject.toml | 2 +- 11 files changed, 16 insertions(+), 18 deletions(-) rename crates/{uv-trampoline => uv-trampoline-builder}/trampolines/uv-trampoline-aarch64-console.exe (100%) rename crates/{uv-trampoline => uv-trampoline-builder}/trampolines/uv-trampoline-aarch64-gui.exe (100%) rename crates/{uv-trampoline => uv-trampoline-builder}/trampolines/uv-trampoline-i686-console.exe (100%) rename crates/{uv-trampoline => uv-trampoline-builder}/trampolines/uv-trampoline-i686-gui.exe (100%) rename crates/{uv-trampoline => uv-trampoline-builder}/trampolines/uv-trampoline-x86_64-console.exe (100%) rename crates/{uv-trampoline => uv-trampoline-builder}/trampolines/uv-trampoline-x86_64-gui.exe (100%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ee37d6112..5b7d89ed8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -478,8 +478,8 @@ jobs: working-directory: ${{ env.UV_WORKSPACE }}/crates/uv-trampoline run: | cargo build --target ${{ matrix.target-arch }}-pc-windows-msvc - cp target/${{ matrix.target-arch }}-pc-windows-msvc/debug/uv-trampoline-console.exe trampolines/uv-trampoline-${{ matrix.target-arch }}-console.exe - cp target/${{ matrix.target-arch }}-pc-windows-msvc/debug/uv-trampoline-gui.exe trampolines/uv-trampoline-${{ matrix.target-arch }}-gui.exe + cp target/${{ matrix.target-arch }}-pc-windows-msvc/debug/uv-trampoline-console.exe ../uv-trampoline-builder/trampolines/uv-trampoline-${{ matrix.target-arch }}-console.exe + cp target/${{ matrix.target-arch }}-pc-windows-msvc/debug/uv-trampoline-gui.exe ../uv-trampoline-builder/trampolines/uv-trampoline-${{ matrix.target-arch }}-gui.exe - name: "Test new binaries" working-directory: ${{ env.UV_WORKSPACE }} run: | diff --git a/crates/uv-trampoline-builder/Cargo.toml b/crates/uv-trampoline-builder/Cargo.toml index 76b3a0e0c..d57c1f8cd 100644 --- a/crates/uv-trampoline-builder/Cargo.toml +++ b/crates/uv-trampoline-builder/Cargo.toml @@ -9,6 +9,7 @@ homepage = { workspace = true } repository = { workspace = true } authors = { workspace = true } license = { workspace = true } +include = ["src/**/*", "trampolines/*.exe", "Cargo.toml", "README.md"] [features] default = ["production"] diff --git a/crates/uv-trampoline-builder/src/lib.rs b/crates/uv-trampoline-builder/src/lib.rs index 3942c9058..7270b905b 100644 --- a/crates/uv-trampoline-builder/src/lib.rs +++ b/crates/uv-trampoline-builder/src/lib.rs @@ -6,28 +6,25 @@ use fs_err::File; use thiserror::Error; #[cfg(all(windows, target_arch = "x86"))] -const LAUNCHER_I686_GUI: &[u8] = - include_bytes!("../../uv-trampoline/trampolines/uv-trampoline-i686-gui.exe"); +const LAUNCHER_I686_GUI: &[u8] = include_bytes!("../trampolines/uv-trampoline-i686-gui.exe"); #[cfg(all(windows, target_arch = "x86"))] const LAUNCHER_I686_CONSOLE: &[u8] = - include_bytes!("../../uv-trampoline/trampolines/uv-trampoline-i686-console.exe"); + include_bytes!("../trampolines/uv-trampoline-i686-console.exe"); #[cfg(all(windows, target_arch = "x86_64"))] -const LAUNCHER_X86_64_GUI: &[u8] = - include_bytes!("../../uv-trampoline/trampolines/uv-trampoline-x86_64-gui.exe"); +const LAUNCHER_X86_64_GUI: &[u8] = include_bytes!("../trampolines/uv-trampoline-x86_64-gui.exe"); #[cfg(all(windows, target_arch = "x86_64"))] const LAUNCHER_X86_64_CONSOLE: &[u8] = - include_bytes!("../../uv-trampoline/trampolines/uv-trampoline-x86_64-console.exe"); + include_bytes!("../trampolines/uv-trampoline-x86_64-console.exe"); #[cfg(all(windows, target_arch = "aarch64"))] -const LAUNCHER_AARCH64_GUI: &[u8] = - include_bytes!("../../uv-trampoline/trampolines/uv-trampoline-aarch64-gui.exe"); +const LAUNCHER_AARCH64_GUI: &[u8] = include_bytes!("../trampolines/uv-trampoline-aarch64-gui.exe"); #[cfg(all(windows, target_arch = "aarch64"))] const LAUNCHER_AARCH64_CONSOLE: &[u8] = - include_bytes!("../../uv-trampoline/trampolines/uv-trampoline-aarch64-console.exe"); + include_bytes!("../trampolines/uv-trampoline-aarch64-console.exe"); // https://learn.microsoft.com/en-us/windows/win32/menurc/resource-types #[cfg(windows)] diff --git a/crates/uv-trampoline/trampolines/uv-trampoline-aarch64-console.exe b/crates/uv-trampoline-builder/trampolines/uv-trampoline-aarch64-console.exe similarity index 100% rename from crates/uv-trampoline/trampolines/uv-trampoline-aarch64-console.exe rename to crates/uv-trampoline-builder/trampolines/uv-trampoline-aarch64-console.exe diff --git a/crates/uv-trampoline/trampolines/uv-trampoline-aarch64-gui.exe b/crates/uv-trampoline-builder/trampolines/uv-trampoline-aarch64-gui.exe similarity index 100% rename from crates/uv-trampoline/trampolines/uv-trampoline-aarch64-gui.exe rename to crates/uv-trampoline-builder/trampolines/uv-trampoline-aarch64-gui.exe diff --git a/crates/uv-trampoline/trampolines/uv-trampoline-i686-console.exe b/crates/uv-trampoline-builder/trampolines/uv-trampoline-i686-console.exe similarity index 100% rename from crates/uv-trampoline/trampolines/uv-trampoline-i686-console.exe rename to crates/uv-trampoline-builder/trampolines/uv-trampoline-i686-console.exe diff --git a/crates/uv-trampoline/trampolines/uv-trampoline-i686-gui.exe b/crates/uv-trampoline-builder/trampolines/uv-trampoline-i686-gui.exe similarity index 100% rename from crates/uv-trampoline/trampolines/uv-trampoline-i686-gui.exe rename to crates/uv-trampoline-builder/trampolines/uv-trampoline-i686-gui.exe diff --git a/crates/uv-trampoline/trampolines/uv-trampoline-x86_64-console.exe b/crates/uv-trampoline-builder/trampolines/uv-trampoline-x86_64-console.exe similarity index 100% rename from crates/uv-trampoline/trampolines/uv-trampoline-x86_64-console.exe rename to crates/uv-trampoline-builder/trampolines/uv-trampoline-x86_64-console.exe diff --git a/crates/uv-trampoline/trampolines/uv-trampoline-x86_64-gui.exe b/crates/uv-trampoline-builder/trampolines/uv-trampoline-x86_64-gui.exe similarity index 100% rename from crates/uv-trampoline/trampolines/uv-trampoline-x86_64-gui.exe rename to crates/uv-trampoline-builder/trampolines/uv-trampoline-x86_64-gui.exe diff --git a/crates/uv-trampoline/README.md b/crates/uv-trampoline/README.md index c352fabd8..686d4de90 100644 --- a/crates/uv-trampoline/README.md +++ b/crates/uv-trampoline/README.md @@ -56,12 +56,12 @@ cargo +nightly-2025-06-23 xwin build --release --target aarch64-pc-windows-msvc After building the trampolines for all supported architectures: ```shell -cp target/aarch64-pc-windows-msvc/release/uv-trampoline-console.exe trampolines/uv-trampoline-aarch64-console.exe -cp target/aarch64-pc-windows-msvc/release/uv-trampoline-gui.exe trampolines/uv-trampoline-aarch64-gui.exe -cp target/x86_64-pc-windows-msvc/release/uv-trampoline-console.exe trampolines/uv-trampoline-x86_64-console.exe -cp target/x86_64-pc-windows-msvc/release/uv-trampoline-gui.exe trampolines/uv-trampoline-x86_64-gui.exe -cp target/i686-pc-windows-msvc/release/uv-trampoline-console.exe trampolines/uv-trampoline-i686-console.exe -cp target/i686-pc-windows-msvc/release/uv-trampoline-gui.exe trampolines/uv-trampoline-i686-gui.exe +cp target/aarch64-pc-windows-msvc/release/uv-trampoline-console.exe ../uv-trampoline-builder/trampolines/uv-trampoline-aarch64-console.exe +cp target/aarch64-pc-windows-msvc/release/uv-trampoline-gui.exe ../uv-trampoline-builder/trampolines/uv-trampoline-aarch64-gui.exe +cp target/x86_64-pc-windows-msvc/release/uv-trampoline-console.exe ../uv-trampoline-builder/trampolines/uv-trampoline-x86_64-console.exe +cp target/x86_64-pc-windows-msvc/release/uv-trampoline-gui.exe ../uv-trampoline-builder/trampolines/uv-trampoline-x86_64-gui.exe +cp target/i686-pc-windows-msvc/release/uv-trampoline-console.exe ../uv-trampoline-builder/trampolines/uv-trampoline-i686-console.exe +cp target/i686-pc-windows-msvc/release/uv-trampoline-gui.exe ../uv-trampoline-builder/trampolines/uv-trampoline-i686-gui.exe ``` ### Testing the trampolines diff --git a/pyproject.toml b/pyproject.toml index 9a87c6238..dba46f864 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -50,7 +50,7 @@ include = [ { path = "rust-toolchain.toml", format = ["sdist", "wheel"] }, # this one isn't discovered by maturin because it's behind a feature flag { path = "crates/uv-performance-memory-allocator/**/*", format = ["sdist", "wheel"] }, - { path = "crates/uv-trampoline/trampolines/*", format = "sdist" }, + { path = "crates/uv-trampoline-builder/trampolines/*", format = "sdist" }, { path = "LICENSE-APACHE", format = "sdist" }, { path = "LICENSE-MIT", format = "sdist" }, ]