Skip to content

fix(cargo): raise MSRV to 1.88 to match let-chain usage#1647

Merged
mergify[bot] merged 1 commit into
mainfrom
devs/JulianMaurin/feat/rust-cli-excellence/raise-msrv-1-88-match-let-chain-usage--c897620d
Jun 19, 2026
Merged

fix(cargo): raise MSRV to 1.88 to match let-chain usage#1647
mergify[bot] merged 1 commit into
mainfrom
devs/JulianMaurin/feat/rust-cli-excellence/raise-msrv-1-88-match-let-chain-usage--c897620d

Conversation

@JulianMaurin

Copy link
Copy Markdown
Contributor

The workspace declares rust-version = "1.85", but the code uses
let-chains (if let … && …) — stabilized in Rust 1.88 — in
revision_history.rs, notes_push.rs, and approvals.rs. Building on
1.85–1.87 fails deep in compilation with E0658, so the declared
floor was a misleading contract.

Raise the floor to the honest minimum. Cargo now rejects older
toolchains up front ("requires rustc 1.88") instead of failing
mid-build. Prebuilt wheels are unaffected — no rustc is involved.

Raising the floor unlocks two clippy suggestions previously gated
below 1.85, applied here so the bump lands clippy-clean: collapsing
nested if let { if … } into let-chains (clippy::collapsible_if),
and OsStr::display() (stable since 1.87) instead of {:?} on the
editor path in stack note (clippy::unnecessary_debug_formatting).

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com

The workspace declares rust-version = "1.85", but the code uses
let-chains (`if let … && …`) — stabilized in Rust 1.88 — in
revision_history.rs, notes_push.rs, and approvals.rs. Building on
1.85–1.87 fails deep in compilation with E0658, so the declared
floor was a misleading contract.

Raise the floor to the honest minimum. Cargo now rejects older
toolchains up front ("requires rustc 1.88") instead of failing
mid-build. Prebuilt wheels are unaffected — no rustc is involved.

Raising the floor unlocks two clippy suggestions previously gated
below 1.85, applied here so the bump lands clippy-clean: collapsing
nested `if let { if … }` into let-chains (clippy::collapsible_if),
and `OsStr::display()` (stable since 1.87) instead of `{:?}` on the
editor path in `stack note` (clippy::unnecessary_debug_formatting).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Change-Id: Ic897620d05dc0fc54e101f161b1a4b9ca2ea22be
Copilot AI review requested due to automatic review settings June 19, 2026 07:10
@mergify mergify Bot deployed to Mergify Merge Protections June 19, 2026 07:10 Active
@mergify

mergify Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Merge Protections

🟢 All 5 merge protections satisfied — ready to merge.

Show 5 satisfied protections

🟢 🤖 Continuous Integration

  • all of:
    • check-success=ci-gate

🟢 👀 Review Requirements

  • any of:
    • #approved-reviews-by>=2
    • author = dependabot[bot]
    • author = mergify-ci-bot
    • author = renovate[bot]

🟢 Enforce conventional commit

Make sure that we follow https://www.conventionalcommits.org/en/v1.0.0/

  • title ~= ^(fix|feat|docs|style|refactor|perf|test|build|ci|chore|revert|ui)(?:\(.+\))?:

🟢 🔎 Reviews

  • #changes-requested-reviews-by = 0
  • #review-requested = 0
  • #review-threads-unresolved = 0

🟢 📕 PR description

  • body ~= (?ms:.{48,})

@JulianMaurin

Copy link
Copy Markdown
Contributor Author

This pull request is part of a Mergify stack:

# Pull Request Link
1 fix(cargo): raise MSRV to 1.88 to match let-chain usage #1647 👈
2 ci: harden the PR pipeline with MSRV, supply-chain, and lint gates #1648
3 ci(release): pin action SHAs and add build/publish attestations #1649
4 chore(deps): centralize shared dependencies in [workspace.dependencies] #1650
5 fix(ci): resolve junit-process token via the shared auth helper #1651
6 refactor(cli): model stack as a native clap subcommand tree #1652
7 refactor(core): preserve error sources and print the cause chain #1653
8 fix(self-update): exit with the GitHub-API code and retry transients #1654
9 feat(http): honor GitHub rate limits and bound connect time #1655
10 feat(cli): add a global --color flag and fix queue-show glyphs #1656
11 feat(cli): add a -v/-vv verbosity ladder backed by tracing #1657
12 feat(cli): generate shell completions and a man page #1658
13 test: golden-snapshot the CLI surface and guard schema drift #1659
14 refactor: dedupe the GIT_SEQUENCE_EDITOR lookup and drop port cruft #1660
15 docs(agents): rewrite AGENTS.md for the Rust workspace #1661

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request updates the workspace MSRV to match Rust language features now used across the codebase (notably if/while let-chains), ensuring older toolchains fail fast via Cargo’s rust-version check rather than during compilation.

Changes:

  • Bump workspace rust-version from 1.85 to 1.88.
  • Refactor multiple nested if let { if ... } patterns into let-chains for clippy cleanliness and readability.
  • Improve stack note editor error output by using OsStr::display() instead of debug formatting.

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
Cargo.toml Raises workspace MSRV to 1.88 and documents the rationale.
crates/mergify-stack/src/stack_context.rs Converts env-var override logic to a let-chain.
crates/mergify-stack/src/rebase_todo.rs Converts optional exec injection check to a let-chain.
crates/mergify-stack/src/progress.rs Collapses detail-highlighting conditions into a let-chain.
crates/mergify-stack/src/git.rs Collapses merge-base fork-point fallback check into a let-chain.
crates/mergify-stack/src/commands/note.rs Uses display() for editor path in error message.
crates/mergify-core/src/auth.rs Collapses gh auth token fallback check into a let-chain.
crates/mergify-ci/src/scopes_detect/outputs.rs Uses let-chains to combine stdin take + write failure handling.
crates/mergify-ci/src/scopes_detect/mod.rs Uses let-chains for optional debug file listing.
crates/mergify-ci/src/junit_process/junit.rs Collapses nested testcase mutation + guard checks into let-chains.
crates/mergify-ci/src/junit_process/command.rs Collapses silent-failure detection condition into a let-chain.
crates/mergify-ci/src/git_refs.rs Collapses several nested event-structure checks into let-chains.
crates/mergify-ci/src/detector.rs Collapses GHA PR-head-SHA detection into a let-chain.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Cargo.toml
@mergify mergify Bot requested a review from a team June 19, 2026 07:17
@mergify mergify Bot requested a review from a team June 19, 2026 07:32
@mergify

mergify Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Queued — the merge queue status continues in this comment ↓.

@mergify

mergify Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Merge Queue Status

  • Entered queue2026-06-19 07:47 UTC · Rule: default
  • Checks skipped · PR is already up-to-date
  • Merged2026-06-19 07:47 UTC · at fc4d9a6c13418972212f615305422a4e8a58e662 · squash

This pull request spent 11 seconds in the queue, including 2 seconds running CI.

Required conditions to merge

@mergify mergify Bot added the queued label Jun 19, 2026
@mergify mergify Bot merged commit e92afee into main Jun 19, 2026
20 checks passed
@mergify mergify Bot deleted the devs/JulianMaurin/feat/rust-cli-excellence/raise-msrv-1-88-match-let-chain-usage--c897620d branch June 19, 2026 07:47
@mergify mergify Bot removed the queued label Jun 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

4 participants