fix: make release init citation portable

This commit is contained in:
Andriujose 2026-08-04 11:17:51 +00:00
parent f300f60d6e
commit e7df33b277
2 changed files with 10 additions and 4 deletions

View file

@ -746,7 +746,7 @@ itself, so a parse unchanged since the last echo never re-posts.*" >/dev/null
log "#$n: blockers closed -> ready" ;; log "#$n: blockers closed -> ready" ;;
esac esac
elif has_issue_label epic; then elif has_issue_label epic; then
if has_issue_label release; then if has_issue_label release && ! issue_comment_has_marker "$n" release-init-due; then
refs="$(blocked_references <<<"$(jq -r '.body // ""' <<<"$ISSUE_JSON")")" refs="$(blocked_references <<<"$(jq -r '.body // ""' <<<"$ISSUE_JSON")")"
cross_refs="$(blocked_cross_references <<<"$(jq -r '.body // ""' <<<"$ISSUE_JSON")")" cross_refs="$(blocked_cross_references <<<"$(jq -r '.body // ""' <<<"$ISSUE_JSON")")"
states="$(reference_states <<<"$refs")" states="$(reference_states <<<"$refs")"
@ -760,7 +760,7 @@ itself, so a parse unchanged since the last echo never re-posts.*" >/dev/null
4. Ask the operator to bless the order, then open the first wave. 4. Ask the operator to bless the order, then open the first wave.
5. Ship the release, close this epic, and trigger the next window. 5. Ship the release, close this epic, and trigger the next window.
See [\`RELEASES.md\`](https://github.com/$REPO/blob/main/RELEASES.md). The operator blessing the order is the one step this chain never automates." See \`.ceremony/RELEASES.md\`. The operator blessing the order is the one step this chain never automates."
log "#$n: release-init due" log "#$n: release-init due"
fi fi
fi fi

View file

@ -479,16 +479,22 @@ check "a release epic with every declared blocker closed announces init" 0 "" \
grep -qF '<!-- issueflow:release-init-due -->' "$TMP/posted-53" grep -qF '<!-- issueflow:release-init-due -->' "$TMP/posted-53"
check "the init announce names all five steps" 0 "5" \ check "the init announce names all five steps" 0 "5" \
grep -cE '^[1-5]\. ' "$TMP/posted-53" grep -cE '^[1-5]\. ' "$TMP/posted-53"
check "the init announce cites RELEASES.md" 0 "" \ check "the init announce cites the portable vendored doctrine path" 0 "" \
grep -qF 'RELEASES.md' "$TMP/posted-53" grep -qF 'See `.ceremony/RELEASES.md`.' "$TMP/posted-53"
check "the init announce names the never-automated operator blessing" 0 "" \ check "the init announce names the never-automated operator blessing" 0 "" \
grep -qF 'operator blessing the order is the one step this chain never automates' \ grep -qF 'operator blessing the order is the one step this chain never automates' \
"$TMP/posted-53" "$TMP/posted-53"
check "the opened release gate is logged" 0 "" \ check "the opened release gate is logged" 0 "" \
grep -qF '#53: release-init due' <<<"$release_init" grep -qF '#53: release-init due' <<<"$release_init"
release_init_gate_reads_before_repeat="$(
grep -cE 'repos/owner/repo/issues/(201|202)$' "$TMP/api-calls"
)"
issue_probe 53 $'epic\nrelease' 0 false "" "$release_init_body" >/dev/null issue_probe 53 $'epic\nrelease' 0 false "" "$release_init_body" >/dev/null
check "an unchanged opened gate announces only once" 0 "1" \ check "an unchanged opened gate announces only once" 0 "1" \
grep -cF '<!-- issueflow:release-init-due -->' "$TMP/posted-53" grep -cF '<!-- issueflow:release-init-due -->' "$TMP/posted-53"
check "an announced gate does not re-read its durable blockers" 0 \
"$release_init_gate_reads_before_repeat" \
grep -cE 'repos/owner/repo/issues/(201|202)$' "$TMP/api-calls"
printf '[]\n' >"$(cfix 54)" printf '[]\n' >"$(cfix 54)"
issue_probe 54 $'epic\nrelease' 0 false "" \ issue_probe 54 $'epic\nrelease' 0 false "" \