In #1324, we discovered that Linux and Windows CI runners had different nightly rustfmt versions installed, causing just fmt-check to fail with conflicting formatting expectations. Specifically, nightly-2026-02-28 introduced a breaking change to how use {crate1, crate2}; grouped imports are formatted (splitting them into separate use statements).
As a temporary fix, we pinned nightly-2026-02-27 in the Justfile via a nightly-toolchain variable. This works but means we'll need to manually bump the pin when we want to pick up newer rustfmt features or when the pinned version becomes unavailable.
We should investigate a more permanent solution, such as:
- Pinning a nightly date in
rust-toolchain.toml with a dedicated nightly profile for fmt
- Switching to stable rustfmt (if it covers our needs)
- Adding a
rustfmt.toml option to explicitly control the import grouping behavior so it's resilient to upstream changes
- Setting up a recurring process/bot to bump the nightly pin intentionally
In #1324, we discovered that Linux and Windows CI runners had different
nightlyrustfmt versions installed, causingjust fmt-checkto fail with conflicting formatting expectations. Specifically,nightly-2026-02-28introduced a breaking change to howuse {crate1, crate2};grouped imports are formatted (splitting them into separateusestatements).As a temporary fix, we pinned
nightly-2026-02-27in the Justfile via anightly-toolchainvariable. This works but means we'll need to manually bump the pin when we want to pick up newer rustfmt features or when the pinned version becomes unavailable.We should investigate a more permanent solution, such as:
rust-toolchain.tomlwith a dedicatednightlyprofile for fmtrustfmt.tomloption to explicitly control the import grouping behavior so it's resilient to upstream changes