Skip to content

chore: bump toolchain 1.85 → 1.90 to unblock cargo-deny#28

Merged
singchia merged 2 commits into
mainfrom
chore/cargo-deny-cvss40
May 2, 2026
Merged

chore: bump toolchain 1.85 → 1.90 to unblock cargo-deny#28
singchia merged 2 commits into
mainfrom
chore/cargo-deny-cvss40

Conversation

@singchia

@singchia singchia commented May 2, 2026

Copy link
Copy Markdown
Owner

Summary

The cargo-deny audit job started failing on every PR (latest example: D4 #27). Root cause is not a real advisory hit on our dep graph — it's a tooling version mismatch:

  1. RustSec database started shipping entries with CVSS:4.0 metadata in 2026 (e.g. RUSTSEC-2026-0073 for libcrux-poly1305 — not a dep of ours, but cargo-deny parses the whole database before checking our project).
  2. cargo-deny only learned to parse CVSS 4.0 in 0.19.4.
  3. cargo-deny 0.19.4 requires rustc 1.88+.
  4. Our toolchain was pinned at 1.85, so the cargo-deny-action installed 0.18.3, which panics on the new format and fails the audit job before any actual check runs.

Bumping the pin to 1.90 lifts every constraint in the chain.

Changes

File Change
rust-toolchain.toml channel = "1.85""1.90" (with comment explaining why)
Cargo.toml rust-version = "1.85""1.90"
.github/workflows/ci.yml all 6 dtolnay/rust-toolchain@1.85@1.90
crates/conn/src/heartbeat.rs fix 1.90 clippy's new doc-overindented-list-items warning on one continuation line

No protocol, API, or test-shape change.

Test plan

  • cargo test --workspace --all-targets (all 145 pass on 1.90)
  • cargo clippy --workspace --all-targets -- -D warnings (clean on 1.90)
  • cargo doc --workspace --no-deps --document-private-items (clean on 1.90)
  • cargo test -p geminio --features interop --test interop (3/3 still pass on 1.90)
  • CI green, including the cargo-deny audit job

🤖 Generated with Claude Code

singchia and others added 2 commits May 2, 2026 15:04
The audit job (cargo-deny) started failing on every PR because the
RustSec advisory database now ships entries with CVSS:4.0 metadata
(e.g. RUSTSEC-2026-0073 for libcrux-poly1305). cargo-deny only
gained CVSS 4.0 support in 0.19.4, which itself requires Rust 1.88+.
Our toolchain was pinned at 1.85, so the cargo-deny-action installed
0.18.3 which panics on the new advisory format before reaching any
of our project's actual dependencies — it was a pure parser failure
in the toolchain, not a real advisory hit on our crate graph (we do
not depend on libcrux-poly1305).

Changes:

  rust-toolchain.toml  channel = "1.85" → "1.90"
  Cargo.toml           rust-version = "1.85" → "1.90"
  .github/workflows/ci.yml
                       all six dtolnay/rust-toolchain@1.85 → @1.90

  crates/conn/src/heartbeat.rs
                       fix one doc-overindented-list-items lint that
                       1.90's clippy adds (a continuation line was
                       indented under "—" instead of two spaces).

`cargo test --workspace --all-targets`, `cargo clippy --all-targets
-- -D warnings`, `cargo doc`, and `cargo test -p geminio --features
interop --test interop` all pass on 1.90.

This is purely an infrastructure bump — no protocol or API change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…lint

The cargo-deny audit was failing on RUSTSEC-2024-0375 (`atty`
unmaintained). `atty` only entered our tree as a transitive dep of
criterion 0.4; criterion 0.5+ removed it. Bumping criterion drops the
advisory hit at the source instead of papering over it with an
ignore.

While in here:

- clippy.toml MSRV synced to 1.90 (matches workspace Cargo.toml,
  silences the 'MSRV in clippy.toml differs' warning that 1.90
  clippy emits).
- chaos.rs: switch `global_pos % n == 0` to
  `global_pos.is_multiple_of(n)` — the new manual_is_multiple_of
  lint that 1.90 clippy adds.

Tests / clippy / interop all green on 1.90.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@singchia
singchia merged commit 71832d8 into main May 2, 2026
9 checks passed
@singchia
singchia deleted the chore/cargo-deny-cvss40 branch May 2, 2026 07:13
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.

1 participant