Skip to content

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

Open

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

Activity

  1. added
    questionFurther information is requested
    lifecycle/confirmedBug is verified or proposal seems reasonable
    area/infrastructureConcerns infrastructure rather than core functionality
    and removed on Mar 19, 2026
  2. added this to the v0.14.0 milestone on Mar 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions