You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(build): pin Rust via rust-toolchain.toml to keep Docker and CI in lockstep (#189)
* fix(build): pin Rust via rust-toolchain.toml to keep Docker and CI in lockstep
The release Docker build failed because the aws-smithy crates locked in
Cargo.lock (pulled in by the S3/object-store support, #171) require
rustc 1.94.1, while the Dockerfile builder image was pinned to
rust:1.94.0-slim. CI never caught it because workflows installed the
floating `stable` toolchain.
Make the Rust version a single source of truth:
- Add rust-toolchain.toml pinning 1.96.1. rustup resolves it for any
cargo invocation in the repo, including inside the Docker build
(COPY . . brings it in), so the image compiles with the pinned
version even if the base-image tag drifts.
- Bump the Dockerfile builder to rust:1.96.1-slim so the preinstalled
toolchain matches the pin (tag match only avoids a download).
- Replace dtolnay/rust-toolchain@stable and `rustup toolchain install
stable` across all workflows with a bare `rustup toolchain install`,
which installs the file-pinned version (rustup >= 1.28).
CI now fails loudly on future dependency MSRV bumps until the pin is
raised, instead of the drift surfacing only at release time.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(ci): install rustfmt component for the pinned toolchain
The old `rustup toolchain install stable` was a no-op because runners
preinstall stable with rustfmt included. The pinned 1.96.1 toolchain is
a fresh install under the runner's minimal rustup profile, which has no
rustfmt, so `cargo fmt --check` failed. Add it alongside
llvm-tools-preview in the test job's install step.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(ci): add components via rustup component add, not install flags
A bare `rustup toolchain install` (no toolchain argument) installs
exactly what rust-toolchain.toml specifies and silently ignores CLI
--component flags, so rustfmt was still missing and `cargo fmt --check`
failed again. Add rustfmt and llvm-tools-preview in a separate
`rustup component add` step, which targets the active file-pinned
toolchain and cannot be skipped.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
0 commit comments