ci: build the packaging tools with stable, not the pinned toolchain

1c38f56 · Gabriel Morell · 2026-09-14 05:29

3 files +17 -12
Message
{commit_body(@commit)}

Files changed

modified .github/workflows/rust-ci.yml
+17 −12
@@ -78,19 +78,24 @@ jobs:
78 78 - name: Strip binary
79 79 run: strip target/release/markprompter
80 80
81 − # `--locked` uses each tool's own published Cargo.lock instead of
82 − # resolving its dependencies fresh. Without it, `cargo install`
83 − # picks whatever a transitive dependency published this week, and
84 − # a crate that raised its MSRV breaks the install against this
85 − # project's pinned toolchain — a failure with nothing to do with
86 − # either this repository or the tool's own release.
81 + # Built with `stable`, not with this project's pinned toolchain.
87 82 #
88 − # It also means two runs a month apart install the same bytes.
89 − - name: Install cargo-deb
90 − run: cargo install cargo-deb --locked
91 −
92 − - name: Install cargo-generate-rpm
93 − run: cargo install cargo-generate-rpm --locked
83 + # cargo-deb 3.8.0 uses let-chains, which need rustc 1.88 — and it
84 + # declares `rust-version = 1.85`, so the MSRV field can't be
85 + # trusted to tell you that. Pinning the tool backwards doesn't
86 + # help either: 3.7.0 fails on 1.86 the same way.
87 + #
88 + # The pin exists to say what this crate compiles with. These are
89 + # build-time utilities that never link into the binary, so
90 + # constraining them by the project's MSRV buys nothing and breaks
91 + # every time the ecosystem moves. `--locked` keeps two runs a
92 + # month apart installing the same bytes.
93 + - name: Install the packaging tools
94 + run: |
95 + set -euo pipefail
96 + rustup toolchain install stable --profile minimal
97 + cargo +stable install cargo-deb --locked
98 + cargo +stable install cargo-generate-rpm --locked
94 99
95 100 # Every CI build has to carry a distinct version, or the second
96 101 # one publishes the same filename with different bytes and the

Parents: 68b87d1