From d5d6c433de5edc6d44f7e815263b89e951426803 Mon Sep 17 00:00:00 2001 From: Michael Bolin Date: Tue, 10 Feb 2026 11:16:11 -0800 Subject: [PATCH] Use thin LTO for alpha Rust release builds Alpha release turnaround is currently limited by fat LTO in release builds. We want faster alpha publishing without changing optimization settings for stable artifacts. This change keeps `[profile.release] lto = "fat"` as the default in Cargo.toml, but overrides LTO in CI using `CARGO_PROFILE_RELEASE_LTO`: - `rust-release.yml`: use `thin` for `-alpha` tags, otherwise `fat` - `shell-tool-mcp.yml`: use `thin` for `-alpha` versions, otherwise `fat` Benefits: - Faster alpha build + publish latency - No release-prep churn from committing temporary Cargo.toml LTO flips - Stable/beta release behavior remains unchanged Tradeoffs: - Alpha binaries may be somewhat larger and/or slightly slower than fat-LTO builds - LTO policy now lives in workflow logic for two pipelines, so consistency must be maintained across both files --- .github/workflows/rust-release.yml | 1 + .github/workflows/shell-tool-mcp.yml | 2 ++ 2 files changed, 3 insertions(+) diff --git a/.github/workflows/rust-release.yml b/.github/workflows/rust-release.yml index 5a6da68b7f..c5b45071b0 100644 --- a/.github/workflows/rust-release.yml +++ b/.github/workflows/rust-release.yml @@ -58,6 +58,7 @@ jobs: working-directory: codex-rs env: CODEX_BWRAP_ENABLE_FFI: ${{ contains(matrix.target, 'unknown-linux') && '1' || '0' }} + CARGO_PROFILE_RELEASE_LTO: ${{ contains(github.ref_name, '-alpha') && 'thin' || 'fat' }} strategy: fail-fast: false diff --git a/.github/workflows/shell-tool-mcp.yml b/.github/workflows/shell-tool-mcp.yml index 6285754fb0..983a5b1517 100644 --- a/.github/workflows/shell-tool-mcp.yml +++ b/.github/workflows/shell-tool-mcp.yml @@ -72,6 +72,8 @@ jobs: needs: metadata runs-on: ${{ matrix.runner }} timeout-minutes: 30 + env: + CARGO_PROFILE_RELEASE_LTO: ${{ contains(needs.metadata.outputs.version, '-alpha') && 'thin' || 'fat' }} defaults: run: working-directory: codex-rs