From dfe0a7668f0d75ca3a26fc097772f61546838f56 Mon Sep 17 00:00:00 2001 From: James Ross Date: Mon, 12 Oct 2026 22:19:15 -0700 Subject: [PATCH 1/3] ci: install the pinned toolchain components in the retried step rust-toolchain.toml pins 1.96.0 with rustfmt and clippy. Most jobs installed 1.96.0 through dtolnay/rust-toolchain with a narrower component set, so the first cargo command in a later run step made rustup fetch the channel manifest and the missing components. That implicit download has no retry, and a transient failure of static.rust-lang.org failed the job (for example "could not download file from .../channel-rust-1.96.0.toml.sha256" in the Edict provider verifier job). Every 1.96.0 install step now names both components, so the download happens in the action, which retries, and run steps need no network for the toolchain. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/ci.yml | 39 +++++++++++++++++--- .github/workflows/determinism.yml | 2 + .github/workflows/dind-cross-platform.yml | 2 + .github/workflows/echo-keep-experimental.yml | 1 + .github/workflows/macos-local.yml | 2 + .github/workflows/security-audit.yml | 2 + 6 files changed, 42 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6bc9a67c..ebbbf437 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,6 +20,8 @@ jobs: with: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 + with: + components: rustfmt, clippy - uses: Swatinem/rust-cache@v2 with: workspaces: | @@ -58,7 +60,7 @@ jobs: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 with: - components: clippy + components: clippy, rustfmt - uses: Swatinem/rust-cache@v2 with: workspaces: | @@ -86,7 +88,7 @@ jobs: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 with: - components: clippy + components: clippy, rustfmt - uses: Swatinem/rust-cache@v2 with: workspaces: | @@ -112,7 +114,7 @@ jobs: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 with: - components: clippy + components: clippy, rustfmt - uses: Swatinem/rust-cache@v2 with: workspaces: | @@ -134,7 +136,7 @@ jobs: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 with: - components: clippy + components: clippy, rustfmt - uses: Swatinem/rust-cache@v2 with: workspaces: | @@ -166,7 +168,7 @@ jobs: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 with: - components: clippy + components: clippy, rustfmt - uses: Swatinem/rust-cache@v2 with: workspaces: | @@ -184,6 +186,8 @@ jobs: with: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 + with: + components: rustfmt, clippy - uses: Swatinem/rust-cache@v2 with: workspaces: | @@ -210,6 +214,8 @@ jobs: # Outer xtask uses Bunny through warp-core; the inner producer # still authenticates the exact Rust/Cargo 1.90 identities. - uses: dtolnay/rust-toolchain@1.96.0 + with: + components: rustfmt, clippy - uses: dtolnay/rust-toolchain@1.90.0 with: components: clippy @@ -240,6 +246,8 @@ jobs: # Outer xtask uses Bunny through warp-core; the inner producer # still authenticates the exact Rust/Cargo 1.90 identities. - uses: dtolnay/rust-toolchain@1.96.0 + with: + components: rustfmt, clippy - uses: dtolnay/rust-toolchain@1.90.0 with: components: clippy @@ -268,7 +276,7 @@ jobs: targets: wasm32-unknown-unknown - uses: dtolnay/rust-toolchain@1.96.0 with: - components: clippy + components: clippy, rustfmt - uses: Swatinem/rust-cache@v2 with: workspaces: | @@ -286,6 +294,7 @@ jobs: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 with: + components: rustfmt, clippy targets: wasm32-unknown-unknown - uses: Swatinem/rust-cache@v2 with: @@ -302,6 +311,8 @@ jobs: with: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 + with: + components: rustfmt, clippy - uses: Swatinem/rust-cache@v2 with: workspaces: | @@ -370,6 +381,7 @@ jobs: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 with: + components: rustfmt, clippy targets: x86_64-unknown-linux-musl - name: Install musl tools run: sudo apt-get update && sudo apt-get install -y musl-tools @@ -390,6 +402,8 @@ jobs: with: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 + with: + components: rustfmt, clippy - uses: Swatinem/rust-cache@v2 with: workspaces: | @@ -408,6 +422,7 @@ jobs: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 with: + components: rustfmt, clippy targets: x86_64-unknown-linux-musl - name: Install musl tools run: sudo apt-get update && sudo apt-get install -y musl-tools @@ -426,6 +441,8 @@ jobs: with: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 + with: + components: rustfmt, clippy - name: Check workspace rust-version declarations shell: bash run: | @@ -451,6 +468,8 @@ jobs: with: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 + with: + components: rustfmt, clippy - uses: Swatinem/rust-cache@v2 with: workspaces: | @@ -476,6 +495,8 @@ jobs: with: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 + with: + components: rustfmt, clippy - uses: Swatinem/rust-cache@v2 with: workspaces: | @@ -545,6 +566,8 @@ jobs: steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@1.96.0 + with: + components: rustfmt, clippy - uses: actions/setup-node@v4 with: node-version: "20" @@ -559,6 +582,8 @@ jobs: with: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 + with: + components: rustfmt, clippy - uses: Swatinem/rust-cache@v2 with: workspaces: | @@ -576,6 +601,8 @@ jobs: with: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 + with: + components: rustfmt, clippy - uses: Swatinem/rust-cache@v2 - name: rustdoc warnings gate (warp-core) run: RUSTDOCFLAGS="-D warnings" cargo doc -p warp-core --no-deps diff --git a/.github/workflows/determinism.yml b/.github/workflows/determinism.yml index 824629c2..73b639aa 100644 --- a/.github/workflows/determinism.yml +++ b/.github/workflows/determinism.yml @@ -20,6 +20,8 @@ jobs: with: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 + with: + components: rustfmt, clippy - uses: Swatinem/rust-cache@v2 with: workspaces: | diff --git a/.github/workflows/dind-cross-platform.yml b/.github/workflows/dind-cross-platform.yml index 5bca73fc..4e8bbbda 100644 --- a/.github/workflows/dind-cross-platform.yml +++ b/.github/workflows/dind-cross-platform.yml @@ -30,6 +30,8 @@ jobs: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 + with: + components: rustfmt, clippy - uses: Swatinem/rust-cache@v2 with: diff --git a/.github/workflows/echo-keep-experimental.yml b/.github/workflows/echo-keep-experimental.yml index 6b3fab33..9312fc88 100644 --- a/.github/workflows/echo-keep-experimental.yml +++ b/.github/workflows/echo-keep-experimental.yml @@ -21,6 +21,7 @@ jobs: persist-credentials: false - uses: dtolnay/rust-toolchain@1.96.0 with: + components: rustfmt, clippy components: rustfmt, clippy - run: cargo test --manifest-path experiments/echo-keep/Cargo.toml --locked - run: cargo test --manifest-path experiments/echo-keep/Cargo.toml --locked --features reference-adapter diff --git a/.github/workflows/macos-local.yml b/.github/workflows/macos-local.yml index 5343f3df..4875f7ca 100644 --- a/.github/workflows/macos-local.yml +++ b/.github/workflows/macos-local.yml @@ -14,6 +14,8 @@ jobs: with: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 + with: + components: rustfmt, clippy - uses: Swatinem/rust-cache@v2 with: workspaces: | diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml index 207a0b4b..725e2743 100644 --- a/.github/workflows/security-audit.yml +++ b/.github/workflows/security-audit.yml @@ -19,6 +19,8 @@ jobs: with: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 + with: + components: rustfmt, clippy - uses: actions/cache@v4 with: path: | From ececc2a12defbd047e8867ae6599ab06ce835ab5 Mon Sep 17 00:00:00 2001 From: James Ross Date: Mon, 12 Oct 2026 22:19:34 -0700 Subject: [PATCH 2/3] ci: fix workflow indentation from the previous commit The previous commit duplicated a components key in echo-keep-experimental.yml, which already named both components, and indented the new keys inconsistently in the two-space workflow files. Restore the first and correct the others. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/determinism.yml | 2 +- .github/workflows/dind-cross-platform.yml | 2 +- .github/workflows/echo-keep-experimental.yml | 1 - .github/workflows/macos-local.yml | 2 +- .github/workflows/security-audit.yml | 2 +- 5 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/determinism.yml b/.github/workflows/determinism.yml index 73b639aa..58c08fd3 100644 --- a/.github/workflows/determinism.yml +++ b/.github/workflows/determinism.yml @@ -21,7 +21,7 @@ jobs: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 with: - components: rustfmt, clippy + components: rustfmt, clippy - uses: Swatinem/rust-cache@v2 with: workspaces: | diff --git a/.github/workflows/dind-cross-platform.yml b/.github/workflows/dind-cross-platform.yml index 4e8bbbda..9c4f997f 100644 --- a/.github/workflows/dind-cross-platform.yml +++ b/.github/workflows/dind-cross-platform.yml @@ -31,7 +31,7 @@ jobs: - uses: dtolnay/rust-toolchain@1.96.0 with: - components: rustfmt, clippy + components: rustfmt, clippy - uses: Swatinem/rust-cache@v2 with: diff --git a/.github/workflows/echo-keep-experimental.yml b/.github/workflows/echo-keep-experimental.yml index 9312fc88..6b3fab33 100644 --- a/.github/workflows/echo-keep-experimental.yml +++ b/.github/workflows/echo-keep-experimental.yml @@ -21,7 +21,6 @@ jobs: persist-credentials: false - uses: dtolnay/rust-toolchain@1.96.0 with: - components: rustfmt, clippy components: rustfmt, clippy - run: cargo test --manifest-path experiments/echo-keep/Cargo.toml --locked - run: cargo test --manifest-path experiments/echo-keep/Cargo.toml --locked --features reference-adapter diff --git a/.github/workflows/macos-local.yml b/.github/workflows/macos-local.yml index 4875f7ca..5f8532f7 100644 --- a/.github/workflows/macos-local.yml +++ b/.github/workflows/macos-local.yml @@ -15,7 +15,7 @@ jobs: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 with: - components: rustfmt, clippy + components: rustfmt, clippy - uses: Swatinem/rust-cache@v2 with: workspaces: | diff --git a/.github/workflows/security-audit.yml b/.github/workflows/security-audit.yml index 725e2743..3a83ed81 100644 --- a/.github/workflows/security-audit.yml +++ b/.github/workflows/security-audit.yml @@ -20,7 +20,7 @@ jobs: submodules: false - uses: dtolnay/rust-toolchain@1.96.0 with: - components: rustfmt, clippy + components: rustfmt, clippy - uses: actions/cache@v4 with: path: | From 301c2aa25ca5e3b88c6d7e0286ca0952a1cc4017 Mon Sep 17 00:00:00 2001 From: James Ross Date: Mon, 12 Oct 2026 22:30:58 -0700 Subject: [PATCH 3/3] ci: install pinned toolchain components in det-gates too Address review: the first pass matched only steps written as a list item and missed the six named steps in det-gates.yml. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/det-gates.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/det-gates.yml b/.github/workflows/det-gates.yml index 3064a78e..b3f47662 100644 --- a/.github/workflows/det-gates.yml +++ b/.github/workflows/det-gates.yml @@ -69,6 +69,8 @@ jobs: - uses: actions/checkout@v4 - name: Setup Rust uses: dtolnay/rust-toolchain@1.96.0 + with: + components: rustfmt, clippy - name: Run parity tests (linux) run: | cargo test -p echo-scene-port test_float_parity_with_js -- --nocapture 2>&1 | tee det-linux.log @@ -110,6 +112,8 @@ jobs: - uses: actions/checkout@v4 - name: Setup Rust uses: dtolnay/rust-toolchain@1.96.0 + with: + components: rustfmt, clippy - name: Run parity tests (macos) run: | cargo test -p echo-scene-port test_float_parity_with_js -- --nocapture 2>&1 | tee det-macos.log @@ -183,6 +187,8 @@ jobs: - uses: actions/checkout@v4 - name: Setup Rust uses: dtolnay/rust-toolchain@1.96.0 + with: + components: rustfmt, clippy - name: Run codec tests run: | cargo test -p echo-scene-codec --lib cbor::tests -- --nocapture 2>&1 | tee sec-tests.log @@ -205,6 +211,8 @@ jobs: - uses: actions/checkout@v4 - name: Setup Rust uses: dtolnay/rust-toolchain@1.96.0 + with: + components: rustfmt, clippy - name: Run benchmarks run: | cargo bench -p warp-benches --bench materialization_hotpath -- --output-format bencher | tee perf.log @@ -241,6 +249,7 @@ jobs: - name: Install runtime and outer build-driver toolchain uses: dtolnay/rust-toolchain@1.96.0 with: + components: rustfmt, clippy targets: wasm32-unknown-unknown - name: Install authenticated provider target run: rustup target add wasm32-unknown-unknown --toolchain 1.90.0 @@ -294,6 +303,8 @@ jobs: ref: ${{ github.event.pull_request.head.sha || github.sha }} - name: Setup Rust for portable promotion uses: dtolnay/rust-toolchain@1.96.0 + with: + components: rustfmt, clippy - name: Download candidate 1 uses: actions/download-artifact@v4 with: