ci(mergify): implement Phase 1 — serial merge queue (require-up-to-date KEPT ON) #409

Closed
opened 2026-07-07 03:09:48 +00:00 by JMR-dev · 1 comment
JMR-dev commented 2026-07-07 03:09:48 +00:00 (Migrated from github.com)

Context

Mergify is installed on the account (all repos). Per the spec (#408 / docs/ci/mergify-integration-spec.md + mergify.yml.proposed), implement Phase 1: a serial Mergify merge queue that ends the manual serial-bump grind, with require-up-to-date KEPT ON (hard rule — never-disable-require-up-to-date) and the merge-commit policy preserved. (batch_size 1 + merge-commits + checkbox-on is the valid trilemma combo; no batching.)

Implement

  • .mergify.yml (repo root): queue_rules + a pull_request_rules queue action. batch_size: 1 (serial), merge_method: merge (merge commits). Merge conditions = check-success = CI passed (exact check name, not ci-passed) + not-draft + not-conflicting + any required approvals (match branch protection). Priority via priority_rules mapping the P0–P9 labels (P0 highest). Follow the spec's proposed config.
  • Confirm the already-disabled autoupdate.yml/ci-trigger.yml (+ mothballed traffic-control.yml) are superseded by Mergify — leave disabled or remove (document which); keep the traffic-control-tests gate job if still referenced by ci-passed.

Hard constraints

require-up-to-date STAYS ON. Do NOT implement batching (Phase 2). Keep the single CI passed gate + P-label priority. Merging .mergify.yml to main ACTIVATES Mergify, so the PR must be REVIEWED before merge — open it NO auto-merge; coordinator/maintainer reviews the config, then merges to go live.

Acceptance

A valid .mergify.yml that (once merged) queues PRs, merges serially on CI passed green with merge-commits, honors P-priority, and keeps require-up-to-date. Validate config structure against Mergify's schema. Relates #407/#408.

## Context Mergify is **installed** on the account (all repos). Per the spec (#408 / `docs/ci/mergify-integration-spec.md` + `mergify.yml.proposed`), implement **Phase 1**: a **serial** Mergify merge queue that ends the manual serial-bump grind, with **require-up-to-date KEPT ON** (hard rule — [[never-disable-require-up-to-date]]) and the **merge-commit** policy preserved. (batch_size 1 + merge-commits + checkbox-on is the valid trilemma combo; no batching.) ## Implement - **`.mergify.yml`** (repo root): `queue_rules` + a `pull_request_rules` `queue` action. `batch_size: 1` (serial), `merge_method: merge` (merge commits). Merge conditions = `check-success = CI passed` (exact check **name**, not `ci-passed`) + not-draft + not-conflicting + any required approvals (match branch protection). Priority via `priority_rules` mapping the **P0–P9 labels** (P0 highest). Follow the spec's proposed config. - Confirm the already-**disabled** `autoupdate.yml`/`ci-trigger.yml` (+ mothballed `traffic-control.yml`) are superseded by Mergify — leave disabled or remove (document which); keep the `traffic-control-tests` gate job if still referenced by `ci-passed`. ## Hard constraints require-up-to-date STAYS ON. Do NOT implement batching (Phase 2). Keep the single `CI passed` gate + P-label priority. **Merging `.mergify.yml` to `main` ACTIVATES Mergify**, so the PR must be REVIEWED before merge — open it **NO auto-merge**; coordinator/maintainer reviews the config, then merges to go live. ## Acceptance A valid `.mergify.yml` that (once merged) queues PRs, merges serially on `CI passed` green with merge-commits, honors P-priority, and keeps require-up-to-date. Validate config structure against Mergify's schema. Relates #407/#408.
JMR-dev commented 2026-07-07 12:16:42 +00:00 (Migrated from github.com)

Completed via PR #412 (merged). Closing + moving the board item to Done — it was left stuck In Progress.

Completed via PR #412 (merged). Closing + moving the board item to Done — it was left stuck In Progress.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: JMR-dev/LibreMail#409