Conversation
The promotion readiness record required `git merge-base --is-ancestor <prior-main> <candidate-next>`. That check cannot pass once any promotion has landed, because the promotion merge commit exists only on `main` and never reaches `next`. Replace it with an empty three-dot content diff, matching the corrected procedure in the organization branch-protection runbook. The diff confirms `main` carries no content the candidate lacks and still fails when a genuine stable-only commit, such as an unmerged hotfix, is missing.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes the promotion precondition in
.github/PULL_REQUEST_TEMPLATE/promotion.md,which required a check that cannot pass after any successful promotion.
Closes #461
Problem
Line 19 of the promotion readiness record required:
Promotion creates a merge commit on
mainthat never reachesnext, somainstops being an ancestor of
nextas soon as a promotion lands. The templatethen instructed the maintainer to stop and reconcile, on every promotion,
including healthy ones.
Three no-content reconciliation merges have already landed here as a result:
9a4fa51,b0ebcc3, and73df7bf.git diff --name-only <merge>^1 <merge>returns zero files for each.
Change
Replaces the checklist item with an empty three-dot content diff and corrects
the accompanying guidance to identify a genuinely omitted commit with
git log --oneline <candidate-next>..<prior-main>.Verification
next, healthymainThe third row confirms a genuine stable-only commit is still caught, so this
removes a false negative without weakening the gate.
Against the live pending candidate:
trunk checkreports no issues on the changed file.Dependency
The canonical rule is corrected in z-shell/.github#574, which closes
z-shell/.github#573. This repository-local template must be fixed too, or the
impossible check is reimposed on the promotion pull request even after the
runbook is correct.
Both should land before the pending
nexttomainpromotion.