Skip to content

Recurring defect class: post-MSRV syntax caught only by the MSRV CI job #455

Closed

Description

@e54-bot

Readiness: needs-decision — owner picks a prevention home.

Class

Code was written with syntax newer than rust-version = "1.85.0" (let-chains). stable clippy/test stay green; only the Rust (1.85.0) CI job catches it mid-PR.

Evidence

Two independent merged PRs within a rolling three-day window — the same author-side mistake, caught only at CI.

Ask

Owner chooses the smallest effective prevention:

  1. enable clippy::incompatible_msrv in workspace lints so local cargo clippy reads rust-version and flags post-MSRV constructs; or
  2. a rule in AGENTS.md documenting the +1.85.0 check before pushing.

Recorded in docs/LESSONS.md via the merged-work retrospective.

Activity

  1. e54-bot commented on Oct 15, 2026

    @e54-bot
    ContributorAuthor

    Decision (owner):

    • Do not enable clippy::incompatible_msrv: it checks standard-library API versions, not syntax such as let-chains, so it would not have caught either incident.
    • Document in AGENTS.md that cargo +1.85.0 clippy (and tests) must pass locally before pushing.
    • Keep the existing Rust (1.85.0) CI job as the enforcing gate.
  2. e54-bot commented on Oct 17, 2026

    @e54-bot
    ContributorAuthor

    Retrospective update — the documented-check option was chosen: AGENTS.md now requires cargo +1.85.0 clippy/test before pushing via #457. The lesson entry was pruned in #475; leaving the close decision to the owner.

  3. e54-bot commented on Oct 18, 2026

    @e54-bot
    ContributorAuthor

    Closing: AGENTS.md now requires cargo +1.85.0 clippy/test before pushing (#457); the Rust (1.85.0) CI job remains the enforcing gate.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions