Skip to content

Upgrade the pinned Rust toolchain to 1.98 #123

Description

@hyperb1iss

rust-toolchain.toml pins 1.95.0 (2026-04-14). Stable is 1.97.1, and
1.98.0-beta is already out, so 1.98 stable is roughly two weeks away.

Nothing is currently blocked by 1.95 — this is hygiene, not a fix.

Go straight to 1.98

Bumping to 1.97.1 now means paying the upgrade cost twice in a month. The
version bump itself is a one-line change; everything expensive rides along with
it, and none of it is worth repeating:

  • Clippy churn. The workspace runs clippy::pedantic with -D warnings.
    Every release adds or retunes lints, so the real work is a cleanup sweep
    across the tree. That wants to be its own reviewable diff, not a passenger on
    an unrelated branch.
  • Full Servo rebuild. A toolchain change invalidates the whole dependency
    tree, Servo included. Warm the Servo cache (servo-cache-warm.yml) before
    the first CI run on the new pin, or expect the lane to time out.
  • Everyone's caches. rust-toolchain.toml is the single source of truth for
    both CI and contributors, so the rebuild lands on every machine at once.

Checklist

  • Wait for 1.98.0 stable
  • Warm the Servo cache on the new toolchain first
  • Bump channel in rust-toolchain.toml
  • Sweep new clippy::pedantic findings in a dedicated commit
  • Confirm just verify is green on Linux and Windows
  • Leave rust-version = "1.94" alone unless the upgrade actually uses a
    newer language or stdlib feature — MSRV is a promise, not a mirror of the
    pin

Note for Windows contributors

scripts/cargo-cache-build.ps1 now asserts the resolved rustc host is
x86_64-pc-windows-msvc before building. If a second Rust is ahead of rustup on
PATH (a GNU-host install is the usual case), the build stops with an
explanatory error instead of failing later inside a dependency's build script
with a mingw linker error or an E0514 rustc mismatch. Worth knowing when the
pin moves, since a stale shadowing toolchain looks exactly like a broken bump.

Metadata

Metadata

Assignees

No one assigned

    Labels

    rustPull requests that update rust code

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions