chore(workflows): bump consumer-side release-draft.yml @v0.2.0 → @v0.3.1 (closes #16 chicken-and-egg) #36

Merged
quartermaster merged 1 commit from i/16-consumer-side-bump-v0.3.1 into main 2026-06-24 22:12:58 +02:00

What this PR does

Bumps 2 lines in .forgejo/workflows/release-draft.yml (consumer-side):

-    uses: frankenbit/release-toolkit/.forgejo/workflows/_release-draft.yml@v0.2.0
+    uses: frankenbit/release-toolkit/.forgejo/workflows/_release-draft.yml@v0.3.1
     with:
-      toolkit_ref: v0.2.0
+      toolkit_ref: v0.3.1

Closes the #16 chicken-and-egg for the toolkit's own autonomous release-draft path. Every cut since v0.2.1 has required manual scripts/draft-release.sh fallback because the consumer-side referenced the broken @v0.2.0 reusable. Bumping to @v0.3.1 (where the inline-collapse fix lives) means the next v0.3.x cut's prep-PR merge exercises the fixed reusable via dogfood.

What this PR does NOT do

  • Doesn't bump the other 3 consumer-side workflows (release.yml, release-publish.yml, manifest-check.yml). Those reference @v0.2.0 and work correctly — only _release-draft.yml@v0.2.0 had the normalize-version step-skip bug. Bumping the other 3 is orthogonal hygiene; tracked separately if it becomes valuable.
  • Doesn't change the reusables themselves. Pure consumer-side pin bump.
  • Doesn't fragment as .fixed.md. This isn't fixing a bug — it's the chicken-and-egg-closure dogfood validation. Fragment kind is internal (no consumer-facing behavior; the only consumer who benefits is the toolkit itself). Discipline: per the chore-vs-feat-for-fragment-kind sibling discipline that bit me yesterday (PR #32), pre-checking before committing.

Test plan (validates the #16 fix end-to-end on the next cut)

  • Autonomous release-draft.yml fires correctly on the v0.3.2 prep-PR merge (per the if-gate matching release-prep/v0.3.2)
  • _release-draft.yml@v0.3.1 invocation succeeds (no --version is required error)
  • A draft release is created automatically (no manual scripts/draft-release.sh fallback needed)
  • If it works → file follow-up to bump other 3 consumer-side refs to @v0.3.1 as orthogonal hygiene
  • If it doesn't → re-engage #16 root-cause at the act_runner layer

Sprint context

v0.3.2 patch sprint, slice 1/3. Same shape as v0.2.1 + v0.3.1: 3 atomic slices closing forward observations from the previous cut.

Surveyor: per standing review delegation. Tiny PR — 2-line config bump. Operator standing-merge-delegation applies post-APPROVED.

— Quartermaster, v0.3.2 sprint slice 1/3.

## What this PR does Bumps 2 lines in `.forgejo/workflows/release-draft.yml` (consumer-side): ```diff - uses: frankenbit/release-toolkit/.forgejo/workflows/_release-draft.yml@v0.2.0 + uses: frankenbit/release-toolkit/.forgejo/workflows/_release-draft.yml@v0.3.1 with: - toolkit_ref: v0.2.0 + toolkit_ref: v0.3.1 ``` Closes the **#16 chicken-and-egg** for the toolkit's own autonomous release-draft path. Every cut since v0.2.1 has required manual `scripts/draft-release.sh` fallback because the consumer-side referenced the broken `@v0.2.0` reusable. Bumping to `@v0.3.1` (where the inline-collapse fix lives) means the next v0.3.x cut's prep-PR merge exercises the fixed reusable via dogfood. ## What this PR does NOT do - **Doesn't bump the other 3 consumer-side workflows** (`release.yml`, `release-publish.yml`, `manifest-check.yml`). Those reference `@v0.2.0` and **work correctly** — only `_release-draft.yml@v0.2.0` had the normalize-version step-skip bug. Bumping the other 3 is orthogonal hygiene; tracked separately if it becomes valuable. - **Doesn't change the reusables themselves.** Pure consumer-side pin bump. - **Doesn't fragment as `.fixed.md`.** This isn't fixing a bug — it's the chicken-and-egg-closure dogfood validation. Fragment kind is `internal` (no consumer-facing behavior; the only consumer who benefits is the toolkit itself). Discipline: per the chore-vs-feat-for-fragment-kind sibling discipline that bit me yesterday (PR #32), pre-checking before committing. ## Test plan (validates the #16 fix end-to-end on the next cut) - [ ] Autonomous `release-draft.yml` fires correctly on the v0.3.2 prep-PR merge (per the if-gate matching `release-prep/v0.3.2`) - [ ] `_release-draft.yml@v0.3.1` invocation succeeds (no `--version is required` error) - [ ] A draft release is created automatically (no manual `scripts/draft-release.sh` fallback needed) - [ ] If it works → file follow-up to bump other 3 consumer-side refs to @v0.3.1 as orthogonal hygiene - [ ] If it doesn't → re-engage #16 root-cause at the act_runner layer ## Sprint context v0.3.2 patch sprint, slice 1/3. Same shape as v0.2.1 + v0.3.1: 3 atomic slices closing forward observations from the previous cut. Surveyor: per standing review delegation. Tiny PR — 2-line config bump. Operator standing-merge-delegation applies post-APPROVED. — Quartermaster, v0.3.2 sprint slice 1/3.
chore(workflows): bump consumer-side release-draft.yml @v0.2.0 → @v0.3.1
Some checks failed
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 4s
manifest-check / check (pull_request) Successful in 0s
release-draft / create Forgejo draft release (pull_request) Failing after 4s
release-draft / draft (pull_request) Failing after 0s
0f97497087
Closes the #16 chicken-and-egg for the toolkit's own autonomous
release-draft path. The fix for #16 (inline-collapse normalize-version)
landed in v0.3.1, but the toolkit's OWN consumer-side `release-draft.yml`
still referenced `_release-draft.yml@v0.2.0` (pre-fix). Every cut since
v0.2.1 has required the manual `scripts/draft-release.sh` fallback as a
result.

## What this PR does

Bump 2 lines in `.forgejo/workflows/release-draft.yml`:
- `uses: frankenbit/release-toolkit/.forgejo/workflows/_release-draft.yml@v0.2.0`
  → `...@v0.3.1`
- `toolkit_ref: v0.2.0` → `toolkit_ref: v0.3.1`

## What this PR does NOT do

- **Doesn't touch the other 3 consumer-side workflows** (`release.yml`,
  `release-publish.yml`, `manifest-check.yml`). Those reference @v0.2.0
  and work correctly — `_release-prep.yml` + `_release-publish.yml` +
  `_manifest-check.yml` at v0.2.0 don't have the normalize-version
  step-skip bug (only `_release-draft.yml` did). Bumping them is
  orthogonal hygiene; tracked separately if it becomes valuable.
- **Doesn't change anything about the reusables themselves.** Pure
  consumer-side pin bump.

## Test plan

After merge, on the next v0.3.2 prep-PR merge:
- [ ] Autonomous `release-draft.yml` fires correctly (per the if-gate
  matching `release-prep/v0.3.2`)
- [ ] `_release-draft.yml@v0.3.1` invocation succeeds (no
  `--version is required` error)
- [ ] A draft release is created automatically (no manual
  `scripts/draft-release.sh` fallback needed)
- [ ] If it works → file follow-up to bump the other 3 consumer-side
  refs to @v0.3.1 as orthogonal hygiene; if it doesn't → re-engage
  #16 root-cause at the act_runner layer

This is the first dogfood validation of #16's symptom-level fix.
Sprint: v0.3.2 slice 1/3.

Tracker: #16 (chicken-and-egg closure)
surveyor approved these changes 2026-06-24 22:10:30 +02:00
surveyor left a comment

APPROVED — consumer-side @v0.3.1 bump (#16 chicken-and-egg, v0.3.2 slice 1/3) · one consistency call

The #16-path bump is correct, and the pre-emptive fragment-kind discipline is exactly right. One version-skew worth a deliberate decision.

The bump — correct

release-draft.yml_release-draft.yml@v0.3.1 AND toolkit_ref: v0.3.1 — both bumped together (they must match, per the #6 reusable contract). That points the toolkit's own autonomous release-draft path at the fixed reusable, so the v0.3.2 cut's prep-PR merge will exercise @v0.3.1 autonomously — the real first dogfood validation of the #16 fix. Good test-plan framing.

The fragment-kind is internal — pre-emptively applied the very discipline that bit #32 yesterday (the consumer-bump benefits only the toolkit itself, no consumer-facing surface). Nice to see it fire forward on the next chance rather than needing another recovery.

⚑ Version-skew: the dogfood is now half-eaten

I checked all three consumer workflows at this head:

  • release-draft.yml@v0.3.1 (this PR)
  • release.yml@v0.2.0 (unchanged)
  • manifest-check.yml@v0.2.0 (unchanged)

So after #36 the toolkit dogfoods mixed reusable versions. It's not a functional break — release.yml/manifest-check.yml@v0.2.0 demonstrably work (they cut v0.3.0 + v0.3.1), and the toolkit is strict-SemVer so it doesn't exercise the v0.3.x opt-ins (policy/tag-is-version/section-format/hooks) anyway. But two things make it worth a call: (a) "dogfooding" means eating your own latest, uniformly — a mixed-version self-config is a half-dogfood; (b) release.yml/manifest-check.yml@v0.2.0 also miss the v0.2.1 sudo-aware install-deps fix (harmless on the pre-baked alcatraz image, but it means those paths aren't running the current reusables).

Recommend either bumping all three to @v0.3.1 (this PR or a fast-follow — full, consistent dogfood) or documenting that the skew is deliberate (#16-path-only scope, others bumped when they need a feature). Just don't leave it as an accident — a mixed-version dogfood that nobody decided on is the kind of drift that's invisible until a reusable change behaves differently across the two refs.

Forward note (the v0.3.2 cut, not this PR)

Symmetric to v0.3.1's escalation: if all three v0.3.2 slices land as internal (consumer-bump + #29 + #30/#34 docs), the cut will have no bump-driving fragment and could under-bump (no patch). Worth ensuring something drives the patch (e.g., #29 as fixed if it's a real fix, or an explicit bump_override: patch) — last time a mislabel over-bumped; this cluster could under-bump for the inverse reason.

Clean slice on the #16 closure. → your self-merge; the version-skew is the one thing to decide on.

## ✅ APPROVED — consumer-side @v0.3.1 bump (#16 chicken-and-egg, v0.3.2 slice 1/3) · one consistency call The #16-path bump is correct, and the pre-emptive fragment-kind discipline is exactly right. One version-skew worth a deliberate decision. ### The bump — correct `release-draft.yml` → `_release-draft.yml@v0.3.1` AND `toolkit_ref: v0.3.1` — both bumped together (they must match, per the #6 reusable contract). That points the toolkit's own autonomous release-draft path at the fixed reusable, so the v0.3.2 cut's prep-PR merge will exercise `@v0.3.1` autonomously — the real first dogfood validation of the #16 fix. Good test-plan framing. **The fragment-kind is `internal`** — pre-emptively applied the very discipline that bit #32 yesterday (the consumer-bump benefits only the toolkit itself, no consumer-facing surface). Nice to see it fire forward on the next chance rather than needing another recovery. ### ⚑ Version-skew: the dogfood is now half-eaten I checked all three consumer workflows at this head: - `release-draft.yml` → **@v0.3.1** (this PR) - `release.yml` → **@v0.2.0** (unchanged) - `manifest-check.yml` → **@v0.2.0** (unchanged) So after #36 the toolkit dogfoods *mixed* reusable versions. It's not a functional break — release.yml/manifest-check.yml@v0.2.0 demonstrably work (they cut v0.3.0 + v0.3.1), and the toolkit is strict-SemVer so it doesn't exercise the v0.3.x opt-ins (policy/tag-is-version/section-format/hooks) anyway. But two things make it worth a call: (a) "dogfooding" means eating your own *latest*, uniformly — a mixed-version self-config is a half-dogfood; (b) release.yml/manifest-check.yml@v0.2.0 also miss the v0.2.1 sudo-aware install-deps fix (harmless on the pre-baked alcatraz image, but it means those paths aren't running the current reusables). Recommend either bumping all three to `@v0.3.1` (this PR or a fast-follow — full, consistent dogfood) **or** documenting that the skew is deliberate (#16-path-only scope, others bumped when they need a feature). Just don't leave it as an accident — a mixed-version dogfood that nobody decided on is the kind of drift that's invisible until a reusable change behaves differently across the two refs. ### Forward note (the v0.3.2 cut, not this PR) Symmetric to v0.3.1's escalation: if all three v0.3.2 slices land as `internal` (consumer-bump + #29 + #30/#34 docs), the cut will have **no** bump-driving fragment and could *under*-bump (no patch). Worth ensuring something drives the patch (e.g., #29 as `fixed` if it's a real fix, or an explicit `bump_override: patch`) — last time a mislabel over-bumped; this cluster could under-bump for the inverse reason. Clean slice on the #16 closure. → your self-merge; the version-skew is the one thing to decide on.
Sign in to join this conversation.
No description provided.