Skip to content

feat(ci): Mergify merge queue + manual-train fallback runbook (WS3.4/WS3.2) - #7112

Merged
diegosouzapw merged 2 commits into
release/v3.8.49from
feat/mergify-queue
Jul 14, 2026
Merged

diegosouzapw merged 2 commits into
release/v3.8.49from
feat/mergify-queue

Conversation

@diegosouzapw

Copy link
Copy Markdown
Owner

Summary

Executes the owner's D5 final decision (Mergify OSS direto) from the v3.8.49 quality/velocity master plan — the app is already installed by the owner.

.mergify.yml (queue)

  • Scope: base~=^release/v\d+\.\d+\.\d+$ — every current and future release branch (the wildcard GitHub's native queue cannot do on a personal-account repo).
  • Entry = governance: only the owner-applied queue label, AFTER the pre-merge ⭐ gate. The label IS the merge approval; Mergify executes, never decides. Freeze (Hard Rule feat(security): FASE-01 to FASE-09 — Security Hardening & Advanced Features #21) and cross-session (#22b) guardrails documented in the file: never label into a frozen branch, never label another session's PR.
  • Batching + bisection: up to 10 PRs validated together, batch_max_wait_time: 5 min; a red batch bisects automatically (~log2(N) revalidations — the manual train paid N).
  • Check robustness: #check-failure=0 + #check-pending=0 accept whatever check set actually ran (path-filtered fast-gates, hotfix lane, tests-only skips).
  • Squash merges keep the one-commit-per-PR history the CHANGELOG reconciliation expects; label auto-removed after merge.

docs/ops/MERGE_TRAIN.md (WS3.2 — fallback)

The manual merge-train codified as the fallback runbook (incidents / freeze / plan change): batch → validate once in an isolated worktree → bisect halves on red → net-diff audit per merge. Plus the tiering rationale: per-PR fast-gates → per-tip continuous release-green (#7089) → per-release full matrix. Nothing is validated less — the heavy surface runs per batch/tip instead of per PR.

Validation

  • YAML parse OK; Mergify's own config check runs on this very PR (the app is installed — its Summary check validates .mergify.yml before anything can queue).
  • check:docs-all exit 0 (new doc with MDX frontmatter).
  • queue label created.

Suggested first live use: after merging this PR, label 2–3 of this cycle's own PRs (#7081/#7083/#7086…) and watch the first batch.

…lback runbook (WS3.4/WS3.2)

D5 final decision (owner, 2026-07-13, post vendor research): Mergify OSS plan —
free/unlimited for the public repo, with the two features the volume demands
(85-100 active authors/month, 300+ PRs/week peaks, ONE merger):
batching + automatic bisection of red batches (log2(N) vs N revalidations).
Proven at larger scale by NixOS/nixpkgs.

- .mergify.yml: queue for base ~= release/vX.Y.Z (the wildcard GitHub's native
  queue cannot do); entry ONLY via the owner-applied 'queue' label AFTER the
  pre-merge star gate (the label IS the approval — Mergify executes, never
  decides); merge_conditions '#check-failure=0' + '#check-pending=0' respect
  the path-filtered fast-gates; squash keeps one-commit-per-PR history; label
  auto-removed after merge. Freeze/cross-session guardrails documented in-file.
- docs/ops/MERGE_TRAIN.md (WS3.2): the manual merge-train codified as the
  FALLBACK runbook (batch -> validate once -> bisect halves on red) + the
  tiering rationale (per-PR fast-gates, per-tip continuous release-green,
  per-release full matrix — nothing validated less, just per batch not per PR).
- 'queue' label created in the repo.
Config validated (YAML parse); Mergify's own config check runs on this PR.
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@diegosouzapw
diegosouzapw merged commit 9fa54e8 into release/v3.8.49 Jul 14, 2026
13 checks passed
@diegosouzapw
diegosouzapw deleted the feat/mergify-queue branch July 14, 2026 14:13
HouMinXi pushed a commit to HouMinXi/OmniRoute that referenced this pull request Aug 2, 2026
…WS3.2) (diegosouzapw#7112)

* feat(ci): Mergify merge queue for release branches + manual-train fallback runbook (WS3.4/WS3.2)

D5 final decision (owner, 2026-07-13, post vendor research): Mergify OSS plan —
free/unlimited for the public repo, with the two features the volume demands
(85-100 active authors/month, 300+ PRs/week peaks, ONE merger):
batching + automatic bisection of red batches (log2(N) vs N revalidations).
Proven at larger scale by NixOS/nixpkgs.

- .mergify.yml: queue for base ~= release/vX.Y.Z (the wildcard GitHub's native
  queue cannot do); entry ONLY via the owner-applied 'queue' label AFTER the
  pre-merge star gate (the label IS the approval — Mergify executes, never
  decides); merge_conditions '#check-failure=0' + '#check-pending=0' respect
  the path-filtered fast-gates; squash keeps one-commit-per-PR history; label
  auto-removed after merge. Freeze/cross-session guardrails documented in-file.
- docs/ops/MERGE_TRAIN.md (WS3.2): the manual merge-train codified as the
  FALLBACK runbook (batch -> validate once -> bisect halves on red) + the
  tiering rationale (per-PR fast-gates, per-tip continuous release-green,
  per-release full matrix — nothing validated less, just per batch not per PR).
- 'queue' label created in the repo.
Config validated (YAML parse); Mergify's own config check runs on this PR.

* fix(ci): mergify queue must not fail open — require the always-on Merge-integrity check as affirmative success
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…WS3.2) (diegosouzapw#7112)

* feat(ci): Mergify merge queue for release branches + manual-train fallback runbook (WS3.4/WS3.2)

D5 final decision (owner, 2026-07-13, post vendor research): Mergify OSS plan —
free/unlimited for the public repo, with the two features the volume demands
(85-100 active authors/month, 300+ PRs/week peaks, ONE merger):
batching + automatic bisection of red batches (log2(N) vs N revalidations).
Proven at larger scale by NixOS/nixpkgs.

- .mergify.yml: queue for base ~= release/vX.Y.Z (the wildcard GitHub's native
  queue cannot do); entry ONLY via the owner-applied 'queue' label AFTER the
  pre-merge star gate (the label IS the approval — Mergify executes, never
  decides); merge_conditions '#check-failure=0' + '#check-pending=0' respect
  the path-filtered fast-gates; squash keeps one-commit-per-PR history; label
  auto-removed after merge. Freeze/cross-session guardrails documented in-file.
- docs/ops/MERGE_TRAIN.md (WS3.2): the manual merge-train codified as the
  FALLBACK runbook (batch -> validate once -> bisect halves on red) + the
  tiering rationale (per-PR fast-gates, per-tip continuous release-green,
  per-release full matrix — nothing validated less, just per batch not per PR).
- 'queue' label created in the repo.
Config validated (YAML parse); Mergify's own config check runs on this PR.

* fix(ci): mergify queue must not fail open — require the always-on Merge-integrity check as affirmative success
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant