docs: define post-merge release edge handling
Some checks failed
labels / labels (pull_request) Failing after 17s
CI / test (pull_request) Has been cancelled
CI / release-exercise (pull_request) Has been cancelled
CI / self-guards (pull_request) Has been cancelled
CI / action-exercise (pull_request) Has been cancelled
CI / docs-sync-exercise (pull_request) Has been cancelled
Refs guard / refs-not-closing (pull_request) Has been cancelled
Some checks failed
labels / labels (pull_request) Failing after 17s
CI / test (pull_request) Has been cancelled
CI / release-exercise (pull_request) Has been cancelled
CI / self-guards (pull_request) Has been cancelled
CI / action-exercise (pull_request) Has been cancelled
CI / docs-sync-exercise (pull_request) Has been cancelled
Refs guard / refs-not-closing (pull_request) Has been cancelled
This commit is contained in:
parent
df4782ced9
commit
78532e0777
1 changed files with 31 additions and 0 deletions
31
RELEASES.md
31
RELEASES.md
|
|
@ -86,6 +86,37 @@ edges rather than merely appending membership at the sink. It follows that
|
||||||
every `ready` issue is a gate member. `epic` and `post-merge` issues are exempt
|
every `ready` issue is a gate member. `epic` and `post-merge` issues are exempt
|
||||||
because neither is claimable (#292).
|
because neither is claimable (#292).
|
||||||
|
|
||||||
|
A member that lands `post-merge` releases nothing: that exemption is about
|
||||||
|
claimability, while a `post-merge` issue is still open and an open predecessor
|
||||||
|
holds its successors, so every successor declaring on it stays held and the
|
||||||
|
window stops advancing along that edge (#329).
|
||||||
|
|
||||||
|
**When a member reaches `post-merge` and any open declaration names it, triage
|
||||||
|
splits the remainder**: mint a fresh issue carrying the outstanding criteria
|
||||||
|
verbatim, naming its owner and its wake condition and citing the original, then
|
||||||
|
close the original on what it delivered. Triage owns this because only triage
|
||||||
|
mints issues and `post-merge` is its completion queue (#329).
|
||||||
|
|
||||||
|
**The release edge is the original's close, never the remainder's.** Each
|
||||||
|
successor's declaration names the original's number, so closing the new issue
|
||||||
|
releases nothing (#329).
|
||||||
|
|
||||||
|
**Split only when an open declaration names the issue.** The trigger is a check
|
||||||
|
rather than a judgement — run the blocker parse over every open `blocked` body
|
||||||
|
and see whether this number appears — because an issue that strands nothing is
|
||||||
|
`post-merge` working as intended (#329).
|
||||||
|
|
||||||
|
**Never close work out from under a builder.** Where the original is assigned,
|
||||||
|
`claimed`, or carrying an open PR, amend its body to hand the outstanding
|
||||||
|
criteria to the new issue and let its holder close it, so the release edge above
|
||||||
|
is reached without taking the work from them (#329).
|
||||||
|
|
||||||
|
**Do not instead teach the blocker parse that `post-merge` counts as landed.**
|
||||||
|
That promotes a successor while its predecessor still owes acceptance criteria,
|
||||||
|
inverts a parser whose deliberate error direction is to hold or flag a reference
|
||||||
|
it cannot read rather than release it, and needs label data a reference-state
|
||||||
|
lookup does not carry (#329).
|
||||||
|
|
||||||
The operator may declare a parallel track at init when its footprint is
|
The operator may declare a parallel track at init when its footprint is
|
||||||
disjoint from the primary window: another repository, another artifact, or
|
disjoint from the primary window: another repository, another artifact, or
|
||||||
provably non-overlapping clusters. The declaration names the boundary and any
|
provably non-overlapping clusters. The declaration names the boundary and any
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue