Merge pull request 'release: forge 0.6.3' (#267) from release-0.6.3 into main
All checks were successful
CI / release-exercise (push) Has been skipped
CI / self-guards (push) Successful in 5s
CI / action-exercise (push) Successful in 4s
CI / docs-sync-exercise (push) Successful in 4s
release / release (push) Successful in 10s
CI / test (push) Successful in 4m15s
All checks were successful
CI / release-exercise (push) Has been skipped
CI / self-guards (push) Successful in 5s
CI / action-exercise (push) Successful in 4s
CI / docs-sync-exercise (push) Successful in 4s
release / release (push) Successful in 10s
CI / test (push) Successful in 4m15s
Reviewed-on: #267 Reviewed-by: glm-bot-andresmgsl <andres+5@heavyduty.builders> Reviewed-by: claude-bot-andresmgsl <andres+1@heavyduty.builders> Reviewed-by: kimi-bot-andresmgsl <andres+4@heavyduty.builders>
This commit is contained in:
commit
8f0ef79620
15 changed files with 95 additions and 31 deletions
2
.github/workflows/labels-sweep.yml
vendored
2
.github/workflows/labels-sweep.yml
vendored
|
|
@ -66,7 +66,7 @@ on:
|
||||||
env:
|
env:
|
||||||
# A called workflow arrives without its repository. Keep this literal pin
|
# A called workflow arrives without its repository. Keep this literal pin
|
||||||
# aligned with the ceremony release consumed by callers (issue #9 D3).
|
# aligned with the ceremony release consumed by callers (issue #9 D3).
|
||||||
CEREMONY_SELF_REF: "0.6.2"
|
CEREMONY_SELF_REF: "0.6.3"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
reconcile:
|
reconcile:
|
||||||
|
|
|
||||||
2
.github/workflows/labels.yml
vendored
2
.github/workflows/labels.yml
vendored
|
|
@ -56,7 +56,7 @@ on:
|
||||||
env:
|
env:
|
||||||
# A called workflow arrives without its repository. Keep this literal pin
|
# A called workflow arrives without its repository. Keep this literal pin
|
||||||
# aligned with the ceremony release consumed by callers (issue #9 D3).
|
# aligned with the ceremony release consumed by callers (issue #9 D3).
|
||||||
CEREMONY_SELF_REF: "0.6.2"
|
CEREMONY_SELF_REF: "0.6.3"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
scope:
|
scope:
|
||||||
|
|
|
||||||
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
|
|
@ -129,7 +129,7 @@ env:
|
||||||
# `ref:` accepts ${{ env }}; `uses:` strings do not — which is why the
|
# `ref:` accepts ${{ env }}; `uses:` strings do not — which is why the
|
||||||
# shared logic arrives as script files via checkout, not as inner `uses:`
|
# shared logic arrives as script files via checkout, not as inner `uses:`
|
||||||
# references.
|
# references.
|
||||||
CEREMONY_SELF_REF: "0.6.2"
|
CEREMONY_SELF_REF: "0.6.3"
|
||||||
VERSION_SOURCE: ${{ inputs.version-source }}
|
VERSION_SOURCE: ${{ inputs.version-source }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
|
||||||
17
CHANGELOG.md
17
CHANGELOG.md
|
|
@ -22,6 +22,23 @@ were adopted by port rather than merge. Upstream's separate `0.4.1` section
|
||||||
is deliberately not carried — the tag published here is the one this section
|
is deliberately not carried — the tag published here is the one this section
|
||||||
is the body of. Each sync updates this line (docs/UPSTREAM-SYNC.md, #200).
|
is the body of. Each sync updates this line (docs/UPSTREAM-SYNC.md, #200).
|
||||||
|
|
||||||
|
## 0.6.3 — 2026-08-26
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- The shipped 0.6.2 changelog section now carries #238's entry, which its release PR's merge base could not see; the published 0.6.2 release body is left as tagged, so tree and publication differ by that one line (#238, #231).
|
||||||
|
- Replace the unavailable intake rule with a proposal form that triage converts into work or refuses with reasons (#247).
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- The `needs-triage` label now directs untriaged issues toward work normalization or a reasoned refusal instead of an unavailable discussion path (#265).
|
||||||
|
- Release checks now refuse a target-head fragment that the candidate did not consume, preventing late merges from misattributing shipped changes (#253).
|
||||||
|
- Kept drill doctrine's release-path instructions aligned with the executable manifest by removing its duplicate path list (#251).
|
||||||
|
- Preserve Forgejo workflow names in status rollups so the label reconciler excludes only its own checks. (#243).
|
||||||
|
- Fork-headed label runs stay green without attempting forbidden writes, while same-repository heads keep instant scope and reconciliation wakes (#241).
|
||||||
|
- Read Forgejo timelines to exhaustion so busy issues retain their newest label events despite dishonest total-count headers (#240).
|
||||||
|
- Refs-based issue-flow transitions now bind each declaration to its immediately following reference token, so later issue prose cannot release or preserve unrelated claims (#234).
|
||||||
|
|
||||||
## 0.6.2 — 2026-08-24
|
## 0.6.2 — 2026-08-24
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
|
||||||
2
VERSION
2
VERSION
|
|
@ -1 +1 @@
|
||||||
0.6.3-dev
|
0.6.3
|
||||||
|
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
### Fixed
|
|
||||||
|
|
||||||
- Refs-based issue-flow transitions now bind each declaration to its immediately following reference token, so later issue prose cannot release or preserve unrelated claims (#234).
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
### Fixed
|
|
||||||
|
|
||||||
- Read Forgejo timelines to exhaustion so busy issues retain their newest label events despite dishonest total-count headers (#240).
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
### Fixed
|
|
||||||
|
|
||||||
- Fork-headed label runs stay green without attempting forbidden writes, while same-repository heads keep instant scope and reconciliation wakes (#241).
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
### Fixed
|
|
||||||
|
|
||||||
- Preserve Forgejo workflow names in status rollups so the label reconciler excludes only its own checks. (#243).
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
### Changed
|
|
||||||
|
|
||||||
- Replace the unavailable intake rule with a proposal form that triage converts into work or refuses with reasons (#247).
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
### Fixed
|
|
||||||
|
|
||||||
- Kept drill doctrine's release-path instructions aligned with the executable manifest by removing its duplicate path list (#251).
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
### Fixed
|
|
||||||
|
|
||||||
- Release checks now refuse a target-head fragment that the candidate did not consume, preventing late merges from misattributing shipped changes (#253).
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
### Changed
|
|
||||||
|
|
||||||
- The shipped 0.6.2 changelog section now carries #238's entry, which its release PR's merge base could not see; the published 0.6.2 release body is left as tagged, so tree and publication differ by that one line (#238, #231).
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
### Fixed
|
|
||||||
|
|
||||||
- The `needs-triage` label now directs untriaged issues toward work normalization or a reasoned refusal instead of an unavailable discussion path (#265).
|
|
||||||
74
drills/0.6.3.md
Normal file
74
drills/0.6.3.md
Normal file
|
|
@ -0,0 +1,74 @@
|
||||||
|
# 0.6.3 — drill record
|
||||||
|
|
||||||
|
Measured 2026-08-26 on the `release-0.6.3` candidate branch, canonical
|
||||||
|
candidate SHA `03cb69d`. All three measurements below were taken at that head,
|
||||||
|
not copied from an earlier record.
|
||||||
|
|
||||||
|
## Scope ruling — doors unchanged, no disposable-repo rehearsal
|
||||||
|
|
||||||
|
**The last rehearsed tag is `0.6.1`, not `0.6.2`.** `drills/0.6.2.md` is itself
|
||||||
|
a doors-unchanged assertion, and `drills/README.md` anchors the baseline to the
|
||||||
|
last *rehearsed* tag precisely so one such assertion cannot chain from another
|
||||||
|
while the doors drift a small diff at a time. The baseline used here is
|
||||||
|
therefore `0.6.1`, which widens the measured window rather than narrowing it.
|
||||||
|
|
||||||
|
All three conditions hold at the candidate head:
|
||||||
|
|
||||||
|
1. `git diff 0.6.1..HEAD -- $(sh .github/scripts/release-path.sh)` changes only
|
||||||
|
the `CEREMONY_SELF_REF` pin line in `.github/workflows/release.yml`, from
|
||||||
|
`0.6.1` to `0.6.3`:
|
||||||
|
|
||||||
|
```diff
|
||||||
|
@@ -129,7 +129,7 @@ env:
|
||||||
|
- CEREMONY_SELF_REF: "0.6.1"
|
||||||
|
+ CEREMONY_SELF_REF: "0.6.3"
|
||||||
|
```
|
||||||
|
|
||||||
|
No release-door logic, decision table, fact gathering, version handling,
|
||||||
|
changelog handling, forge adapter or publish step changed across two
|
||||||
|
releases. The measured diff is one line.
|
||||||
|
|
||||||
|
2. The measured release path is exactly the output of
|
||||||
|
`.github/scripts/release-path.sh` at this head:
|
||||||
|
|
||||||
|
```text
|
||||||
|
.github/workflows/release.yml
|
||||||
|
bin/
|
||||||
|
lib/version.sh
|
||||||
|
lib/decide.sh
|
||||||
|
lib/facts.sh
|
||||||
|
lib/changelog.sh
|
||||||
|
lib/forge.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
3. `drills/0.6.1.md` records a **full rehearsal** — run 2026-08-09 by
|
||||||
|
`codex-reviewer-andresmgsl` against release PR !226 — its release is
|
||||||
|
published, and `main` was re-armed to `0.6.2-dev` after it by
|
||||||
|
`5693bee chore: bump main to 0.6.2-dev`.
|
||||||
|
|
||||||
|
## What this release contains
|
||||||
|
|
||||||
|
Nine fragments consumed into `## 0.6.3`: #234, #240, #241, #243, #247, #251,
|
||||||
|
#253, #263, #265. None of them touches the release path; the list is
|
||||||
|
board-flow, labels-reconcile, docs and forge-adapter work.
|
||||||
|
|
||||||
|
## What is NOT asserted
|
||||||
|
|
||||||
|
This record asserts only that a fresh disposable-repo rehearsal would execute
|
||||||
|
the same release-door bytes as `0.6.1`'s did. It does not assert that the
|
||||||
|
doors were re-exercised, and it is not a substitute for the rehearsal owed at
|
||||||
|
the next release-path change. Per `drills/README.md`, the release PR's panel
|
||||||
|
verifies this claim like any other evidence, and **if any reviewer rules a full
|
||||||
|
drill owed, that verdict wins.**
|
||||||
|
|
||||||
|
## Note on 0.6.2's red `self-guards`
|
||||||
|
|
||||||
|
Recorded here because the next reader of `drills/` will see it. The `0.6.2`
|
||||||
|
tag's commit `5a8fce83` is red on `CI / self-guards` — `changelog-armed`
|
||||||
|
correctly refused a tree in which `changelog.d/238.md` was still unconsumed,
|
||||||
|
because that fragment landed on `main` after `changelog-assemble 0.6.2` had
|
||||||
|
already run in the release branch. The content shipped correct (the #238 entry
|
||||||
|
is in the published `0.6.2` notes) and the strand was consumed on `main` by
|
||||||
|
`f221647`. The systemic guard against the race landed in !255, *"refuse release
|
||||||
|
PRs that strand target fragments"*, which is why this candidate was checked
|
||||||
|
against it before opening.
|
||||||
Loading…
Reference in a new issue