Skip to content

Pin nightly rustfmt version to avoid cross-platform formatting inconsistencies #1325

@danbugs

Description

@danbugs

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/infrastructureConcerns infrastructure rather than core functionalitylifecycle/confirmedBug is verified or proposal seems reasonablequestionFurther information is requested

    Type

    No type

    Projects

    Status

    No status

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions