Skip to content

chore(build): pin the Rust toolchain to 1.98.1 - #75

Draft
runewright[bot] wants to merge 1 commit into
mainfrom
change/build-toolchain-pin
Draft

runewright[bot] wants to merge 1 commit into
mainfrom
change/build-toolchain-pin

Conversation

@runewright

@runewright runewright Bot commented Oct 5, 2026 •

Copy link
Copy Markdown

The Build workflow pins its Rust toolchain to one RUST_TOOLCHAIN value, so a new stable release cannot fail every pull request on its own.

Plan

Rust 1.99.0 reached stable on 2026-10-01 with clippy::assert_is_empty, which the crate's pedantic set turns into an error at 82 existing test asserts. Build installed stable through dtolnay/rust-toolchain and went red on every PR that day (#74 first). A pinned release moves on purpose, together with the clippy sweep that release needs.

Changes

  • Add env.RUST_TOOLCHAIN: "1.98.1" to .github/workflows/build.yaml and pass it as toolchain: to every dtolnay/rust-toolchain step, with a new one in the scaffold job, whose make validate runs clippy too. 1.98.1 is what the Quality workflow's runner image and the local gate run.
  • Add a CHANGELOG line under Changed.

Testing

  • actionlint and zizmor clean on the workflow.
  • Guarded push gate (fmt, clippy, rune validate, docs check, cargo test, semgrep, gitleaks, authorship) passed in the isolated clone.
  • Follow-up ready locally as change/rust-1-99-sweep: the 82 sites rewritten and RUST_TOOLCHAIN moved to 1.99.0, checked with clippy 1.99.0 in a rust:1.99.0-slim container; it pushes once this merges.

Release Notes

  • CI: the Build workflow runs on a pinned Rust release instead of floating stable.

ignore:spec: the change pins the CI toolchain version and adds no behavior; the clippy sweep that follows ships with its tests.

@github-actions github-actions Bot added size:small auto: changed-lines bucket area:docs auto: documentation and markdown area:workflows auto: CI and automation under .github labels Oct 5, 2026
@runeseer

runeseer Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

review/correctness round 1 started on 0402277d at ledger generation 1.

@runeseer

runeseer Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @Runewright[bot]'s task in 2m 12s —— View job


Review

  • Read the diff against origin/main
  • Check the lane findings and the ledger
  • Verify the pin against every Build job
  • Write the verdict

Request changes. The pin covers three of the four Build jobs: scaffold still runs the scaffolded project's cargo clippy -- -D warnings on the runner image's Rust, so a new stable can fail main anyway and the CHANGELOG claim overstates the coverage.

@runeseer

runeseer Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Runeseer review — clean

Looks good. The scaffold job now installs the pinned toolchain before make validate, so all four Build jobs read RUST_TOOLCHAIN and the earlier gap is fixed.

  • Minor: .github/workflows/build.yaml:15 says the Quality workflow uses the runner image's Rust, but quality.yaml runs no Rust at all; only the "does not read this value" half holds.
  • Minor: the # stable note beside each toolchain pin still reads as the floating channel.

No open findings · Reviewed ec4775ee · review run · $0.72 · 1m33s · 20 turns

@github-actions

github-actions Bot commented Oct 5, 2026

Copy link
Copy Markdown

review/correctness stood down on 0402277d: free lanes only: deterministic check quality is pending on this head. Apply review:runeseer to force a paid round.

@N4M3Z N4M3Z changed the title ci(build): pin the Rust toolchain to 1.98.1 chore(build): pin the Rust toolchain to 1.98.1 Oct 5, 2026
Rust 1.99.0 reached stable on 2026-10-01 with clippy::assert_is_empty,
which the crate's pedantic set turns into an error at about 80 existing
assert!(x.is_empty()) sites. The Build workflow installed stable through
dtolnay/rust-toolchain and started failing every pull request that day.

One RUST_TOOLCHAIN value in build.yaml now names the release that every
job installs, the scaffold job included, because its make validate runs
cargo clippy too. A Rust release moves the checks only when the bump and
its clippy sweep land together. The quality workflow uses the runner
image's Rust and is unchanged.

Co-Authored-By: Martin Zeman <N4M3Z@users.noreply.github.com>
@N4M3Z
N4M3Z force-pushed the change/build-toolchain-pin branch from 0402277 to ec4775e Compare October 5, 2026 22:42
@runeseer

runeseer Bot commented Oct 5, 2026

Copy link
Copy Markdown
Contributor

review/correctness round 2 started on ec4775ee at ledger generation 1.

@runeseer

runeseer Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Claude finished @N4M3Z's task in 1m 33s —— View job


Review

  • Read the range from the previous head to ec4775ee
  • Check the lane findings and the ledger
  • Verify the pin against every Build job
  • Write the verdict

Looks good. The scaffold job now installs the pinned toolchain before make validate, so all four Build jobs read RUST_TOOLCHAIN and the earlier gap is fixed.

  • .github/workflows/build.yaml:115 adds dtolnay/rust-toolchain with toolchain: ${{ env.RUST_TOOLCHAIN }} and components: rustfmt, clippy. No rust-toolchain.toml in templates/skeleton overrides the rustup default, so the generated project's cargo clippy --all-targets --all-features -- -D warnings runs on 1.98.1.
  • Minor: .github/workflows/build.yaml:15 says the Quality workflow uses the runner image's Rust, but quality.yaml runs no Rust at all; only the "does not read this value" half holds.
  • Minor: the # stable note beside each toolchain pin still reads as the floating channel.

· branch change/build-toolchain-pin ·

runeseer[bot]
runeseer Bot previously approved these changes Oct 5, 2026

@runeseer runeseer Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Earned approval: review/correctness returned a clean verdict for ec4775e at ledger generation 1. Dismissed automatically on any new push or generation.

@github-actions
github-actions Bot dismissed runeseer[bot]’s stale review October 5, 2026 22:48

The pull request body changed after the verdict; the approval is stale.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:docs auto: documentation and markdown area:workflows auto: CI and automation under .github size:small auto: changed-lines bucket

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants