forked from heavy-duty/ceremony
Merge pull request #308 from andriujoseba/build/292-window-graph
docs: make standing release windows explicit graphs
This commit is contained in:
commit
2807d34c74
3 changed files with 26 additions and 0 deletions
12
RELEASES.md
12
RELEASES.md
|
|
@ -74,6 +74,18 @@ interleaving unrelated windows blurs both the release story and the evidence
|
||||||
behind it. Gates open windows; they do not silently admit members, so builders
|
behind it. Gates open windows; they do not silently admit members, so builders
|
||||||
still see one deliberately ordered queue.
|
still see one deliberately ordered queue.
|
||||||
|
|
||||||
|
While a window stands — an open release-labeled issue with a non-empty
|
||||||
|
enumerated gate — its members form a DAG whose sink is the release issue.
|
||||||
|
Every member reaches that sink. Members declare only their immediate
|
||||||
|
predecessors; ordering edges live on members, while the sink records membership
|
||||||
|
only; and the `ready` set is exactly the graph's current sources. Every close
|
||||||
|
releases exactly its declared successors, and that whole set is concurrently
|
||||||
|
claimable: a member may have multiple successors, while the collision rule
|
||||||
|
already orders any that share a deliverable. Insertion re-points downstream
|
||||||
|
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
|
||||||
|
because neither is claimable (#292).
|
||||||
|
|
||||||
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
|
||||||
|
|
|
||||||
11
TRIAGE.md
11
TRIAGE.md
|
|
@ -98,6 +98,17 @@ Every issue you mint carries, in this order:
|
||||||
edge with `Blocked by #N`, naming the newest open carrier; there is no
|
edge with `Blocked by #N`, naming the newest open carrier; there is no
|
||||||
alternative for disjoint regions. This keeps every `ready` issue
|
alternative for disjoint regions. This keeps every `ready` issue
|
||||||
concurrently claimable and makes each close release one successor (#288).
|
concurrently claimable and makes each close release one successor (#288).
|
||||||
|
During a standing release window, every mint also gets a binary membership
|
||||||
|
call in the same tick. A non-member names the release issue as its blocker
|
||||||
|
in its own Dependencies. A member is placed with three writes: the new issue
|
||||||
|
names its immediate member predecessors; every member whose immediate
|
||||||
|
predecessor the new issue becomes adds or re-points its dependency to the
|
||||||
|
new issue, dropping any predecessor the new issue now reaches (inserting X
|
||||||
|
into A → B makes A → X → B, so B drops A); a member that must land after the
|
||||||
|
new issue but already reaches it through another member declares nothing
|
||||||
|
new; and the release issue adds the new issue to its gate, recording
|
||||||
|
membership only. Collision and window edges are independent, so write both
|
||||||
|
when both apply (#292).
|
||||||
- **Labels**: type (`bug`/`enhancement`/`documentation`), `scope:*`, and
|
- **Labels**: type (`bug`/`enhancement`/`documentation`), `scope:*`, and
|
||||||
exactly one of `ready` / `blocked` (see [LABELS.md](LABELS.md)).
|
exactly one of `ready` / `blocked` (see [LABELS.md](LABELS.md)).
|
||||||
|
|
||||||
|
|
|
||||||
3
changelog.d/292.md
Normal file
3
changelog.d/292.md
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Standing release windows are dependency DAGs: every mint is placed in the window or behind it, and only current sources are `ready` (#292).
|
||||||
Loading…
Reference in a new issue