Skip to content

fix(ci): harden cargo-deny step (post-#106 cleanup)#107

Merged
avrabe merged 1 commit into
mainfrom
fix/cargo-deny-ci-toolchain
May 11, 2026
Merged

fix(ci): harden cargo-deny step (post-#106 cleanup)#107
avrabe merged 1 commit into
mainfrom
fix/cargo-deny-ci-toolchain

Conversation

@avrabe
Copy link
Copy Markdown
Contributor

@avrabe avrabe commented May 10, 2026

Cleans up two residual defects in the `Cargo Deny` step that PR #106 (smithy runner migration) replaced. Closes #103.

Context

Issue #103 reported that `Cargo Deny` was failing because `EmbarkStudios/cargo-deny-action@v2` ran in a musl container that couldn't install the toolchain pinned by `rust-toolchain.toml`. PR #106 already replaced the action with a direct rustup + `cargo install --locked` + `cargo deny check` flow on a regular runner. So the original symptom is gone.

But two minor defects remained in that direct flow:

  1. `cargo install --locked cargo-deny --version 0.16.4 || true` — the `|| true` swallows install failures, then the next step fails with a confusing "command not found". Removed.
  2. The install/check steps had no explicit `name:` label, so logs were harder to read. Added.
  3. The rationale comment didn't reference `rust-toolchain.toml` (the actual root cause). Updated.

Out of scope (follow-up)

The agent who reviewed this flagged that `thiserror` 1.x and 2.x are duplicated in the dep graph. cargo-deny will likely flag this on the first clean run after this lands. If so, that's a separate, smaller PR.

Test plan

  • yaml parses cleanly
  • CI's Cargo Deny step runs to completion (either green or with a real, useful error message)

Closes #103.

Issue #103 was largely closed in PR #106 (smithy runner migration), which
replaced EmbarkStudios/cargo-deny-action@v2 with rustup + direct
`cargo install --locked` + `cargo deny check`. This commit cleans up
two residual defects in that step:

  1. The install command was wrapped in `|| true`, so an install
     failure was silently swallowed and the next step would fail with
     a confusing "command not found". Drop the `|| true` so install
     failure fails the job loudly with a clear error.
  2. Add explicit `name:` labels to the install / check steps so CI
     logs are readable.
  3. Rewrite the rationale comment to reference the rust-toolchain.toml
     / musl interaction (the actual root cause of #103) with the
     smithy rootless-container note as secondary context.

The duplicate `thiserror` 1.x/2.x versions cargo-deny will likely
re-flag once it actually runs cleanly are out of scope here; will
file a follow-up if it surfaces.

Fixes: #103

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@avrabe avrabe merged commit eaa5c6a into main May 11, 2026
@avrabe avrabe deleted the fix/cargo-deny-ci-toolchain branch May 11, 2026 03:55
avrabe added a commit that referenced this pull request May 11, 2026
Patch release bundling four merged PRs:
  #107 — cargo-deny CI step hardening (closes #103)
  #108 — discharge lemma_le64_injective Verus admit (audit C-1 partial)
  #109 — repair fuzz_public_key target (audit follow-up from #98)
  #110 — clear 3 RUSTSEC advisories via dep bumps (fixes #102)

Companion work on 0.8.2+next:
  #111 — criterion benches for signature verification (#89)
  #112 — lift Kani wasm_module mask; document merkle + format

See CHANGELOG.md for the full release notes.

Trace: skip

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cargo Deny CI: rust 1.91.0-x86_64-unknown-linux-musl toolchain missing

1 participant