Skip to content

merge queue: embarking main (0d5d389) and #1263 together#1289

Closed
mergify[bot] wants to merge 2 commits intomainfrom
mergify/merge-queue/a50037bde1
Closed

merge queue: embarking main (0d5d389) and #1263 together#1289
mergify[bot] wants to merge 2 commits intomainfrom
mergify/merge-queue/a50037bde1

Conversation

@mergify
Copy link
Copy Markdown
Contributor

@mergify mergify Bot commented Apr 22, 2026

🎉 This pull request has been checked successfully and will be merged soon. 🎉

Branch main (0d5d389) and #1263 are embarked together for merge.

This pull request has been created by Mergify to speculatively check the mergeability of #1263.
You don't need to do anything. Mergify will close this pull request automatically when it is complete.

Required conditions of queue rule default for merge:

Required conditions to stay in the queue:

---
checking_base_sha: 0d5d38958a74081c98780e6009a8fb3b94b6285a
previous_failed_batches: []
pull_requests:
  - number: 1263
    scopes: []
scopes: []
...

jd and others added 2 commits April 22, 2026 15:35
Introduces the Rust toolchain skeleton for the upcoming port. Ships
nothing functional — the binary prints an identification line and
exits 0. The value of this commit is the groundwork: a reviewable
workspace layout, lint/test/release pipeline wired into CI, and a
clear toolchain policy so subsequent phases have a stable foundation.

## Layout

```
Cargo.toml              # workspace root
rust-toolchain.toml     # tracks latest stable + rustfmt/clippy
crates/
  mergify-cli/          # [[bin]] name = "mergify"; Phase 1.0 stub
  mergify-core/         # shared foundations (empty today; filled in 1.2)
```

Per the design, more crates (`mergify-py-shim`, one per command group)
land in later phases. The 2-crate start is deliberate: the workspace
exists, the lints and profile are set workspace-wide, but there is
nothing for a reviewer to miss.

## Conventions

- Edition 2024, MSRV `rust-version = 1.85` (edition-2024 minimum).
- ``rust-toolchain.toml`` uses ``channel = "stable"`` — tracks the
  current stable toolchain, not a specific pinned version. Renovate
  can bump it later if we want a narrower contract.
- Workspace-level lints: `unsafe_code = "forbid"`, `clippy::all`,
  `clippy::pedantic`. A small allow-list (`module_name_repetitions`,
  `missing_errors_doc`, `missing_panics_doc`) kills noise that would
  otherwise dominate a CLI with many small modules. Revisit per-PR.
- Release profile: thin LTO, single codegen unit, symbols stripped —
  reduces binary size for `cargo-dist` output in Phase 1.5.

## CI

New `rust` job on ubuntu-24.04: ``rustup toolchain install stable``
explicitly (so the build is deterministic against whatever the
runner image has cached), then ``cargo fmt --check``, ``cargo clippy
-D warnings``, ``cargo test``, ``cargo build --release``. Added to
``ci-gate`` so a red Rust job blocks merge just like linters and
tests.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Change-Id: I4b278cf7800294f4f01758618fe5c125b7bb082d
@mergify mergify Bot deployed to Mergify Merge Protections April 22, 2026 15:20 Active
@mergify mergify Bot closed this Apr 22, 2026
@mergify mergify Bot deleted the mergify/merge-queue/a50037bde1 branch April 22, 2026 15:27
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.

1 participant