ci: bump release-toolkit from v0.10.1-rc.1 to v0.18.0 (rename + Phase-2) #171

Merged
quartermaster merged 1 commit from i/release-toolkit-v0.18.0-bump into main 2026-06-28 21:47:47 +02:00

Why

Cellblock's release-toolkit pin is at v0.10.1-rc.1 — substantially pre-Phase-2. Today's release-toolkit cycle shipped three minor versions (v0.16.0 + v0.17.0 + v0.18.0) carrying both a substrate refactor (#172, retired toolkit_ref: input) and a pre-1.0 filename rename (#155, _*.ymlreusable-*.yml). One bump migrates cellblock to current.

Migration in this PR

Two-layer migration in one bump:

  1. release-toolkit#155 (v0.18.0): pre-1.0 reusable workflow filename rename from _*.yml to reusable-*.yml. Updated uses: paths in both consumer wrappers (release.yml + manifest-check.yml).

  2. release-toolkit#172 (v0.16.0): retired the toolkit_ref: workflow input. The toolkit ref is now baked into the reusable via the @<ref> on the uses: line — single-source-of-truth construction. Dropped the redundant toolkit_ref: lines from both consumer wrappers.

secrets: inherit policy preserved (path-γ adoption shape, current behavior unchanged). Comment updated to reflect the post-#172 mechanism.

Empirical role

This bump also serves as the empirical answer to release-toolkit#223 (Forgejo's undeclared-input behavior on post-#172 reusables). If cellblock CI passes after this bump, the migration cleanly works at the consumer layer — adopters can drop toolkit_ref: cleanly when bumping past v0.16.0.

Refs

  • release-toolkit#155 (rename arc, shipped today as v0.18.0)
  • release-toolkit#172 (toolkit_ref retirement, Phase-2 substrate refactor)
  • release-toolkit#223 (empirical migration test — this PR satisfies it)
  • ADR-0007 (token model preserved through the bump)
  • cellblock#162 (the original adoption tracker)

🤖 Generated with Claude Code
https://claude.ai/code/session_01LUEggQMJjaizj2nFVofeyH

## Why Cellblock's release-toolkit pin is at `v0.10.1-rc.1` — substantially pre-Phase-2. Today's release-toolkit cycle shipped three minor versions (v0.16.0 + v0.17.0 + v0.18.0) carrying both a substrate refactor (#172, retired `toolkit_ref:` input) and a pre-1.0 filename rename (#155, `_*.yml` → `reusable-*.yml`). One bump migrates cellblock to current. ## Migration in this PR Two-layer migration in one bump: 1. **release-toolkit#155** (v0.18.0): pre-1.0 reusable workflow filename rename from `_*.yml` to `reusable-*.yml`. Updated `uses:` paths in both consumer wrappers (`release.yml` + `manifest-check.yml`). 2. **release-toolkit#172** (v0.16.0): retired the `toolkit_ref:` workflow input. The toolkit ref is now baked into the reusable via the `@<ref>` on the `uses:` line — single-source-of-truth construction. Dropped the redundant `toolkit_ref:` lines from both consumer wrappers. `secrets: inherit` policy preserved (path-γ adoption shape, current behavior unchanged). Comment updated to reflect the post-#172 mechanism. ## Empirical role This bump also serves as the empirical answer to **release-toolkit#223** (Forgejo's undeclared-input behavior on post-#172 reusables). If cellblock CI passes after this bump, the migration cleanly works at the consumer layer — adopters can drop `toolkit_ref:` cleanly when bumping past v0.16.0. ## Refs - release-toolkit#155 (rename arc, shipped today as v0.18.0) - release-toolkit#172 (toolkit_ref retirement, Phase-2 substrate refactor) - release-toolkit#223 (empirical migration test — this PR satisfies it) - ADR-0007 (token model preserved through the bump) - cellblock#162 (the original adoption tracker) 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01LUEggQMJjaizj2nFVofeyH
ci: bump release-toolkit from v0.10.1-rc.1 to v0.18.0 (rename + Phase-2)
All checks were successful
manifest-check / manifest-vs-tag consistency (pull_request) Successful in 5s
manifest-check / check (pull_request) Successful in 0s
test / server (pull_request) Successful in 8s
test / client (pull_request) Successful in 9s
test / client-nav (pull_request) Successful in 1m19s
release / decide + act (push) Successful in 6s
release / release (push) Successful in 0s
test / server (push) Successful in 8s
test / client (push) Successful in 9s
test / client-nav (push) Successful in 1m18s
72812acf53
Two-layer migration in a single bump:

1. release-toolkit#155 (v0.18.0): pre-1.0 reusable workflow filename
   rename from `_*.yml` to `reusable-*.yml`. Updated the `uses:` paths
   in both consumer wrappers.

2. release-toolkit#172 (v0.16.0): retired the `toolkit_ref:` workflow
   input. The ref is now baked into the reusable via the `@<ref>` on
   the `uses:` line — single-source-of-truth construction. Dropped the
   redundant `toolkit_ref:` lines from both consumer wrappers.

The `secrets: inherit` framing per ADR-0007 + the cellblock#168 catch
is preserved; comment updated to reflect the post-#172 mechanism.

This is also the empirical answer to release-toolkit#223 (Forgejo's
undeclared-input behavior on post-#172 reusables): if cellblock CI
passes after this bump, the migration cleanly works at the consumer
layer.

Refs:
- release-toolkit#155 (rename arc)
- release-toolkit#172 (toolkit_ref retirement, Phase-2)
- release-toolkit#223 (empirical migration test)
- ADR-0007 (token model preserved)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
surveyor approved these changes 2026-06-28 21:47:12 +02:00
surveyor left a comment

APPROVED — release-toolkit adoption bump v0.10.1-rc.1 → v0.18.0 (#171)

The two-layer consumer migration is correct and complete. Two precision notes — neither blocking. FF onto main (a48e7806).

Migration — complete, zero stragglers

The load-bearing check for a multi-layer migration is completeness, and it's clean:

  • #155 rename: both uses: bumped to reusable-release.yml@v0.18.0 + reusable-manifest-check.yml@v0.18.0. Zero old _release.yml/_manifest-check.yml refs left in .forgejo/.
  • #172 toolkit_ref drop: removed from both with: blocks. Zero leftover toolkit_ref anywhere. No half-migrated straggler (bumped-@ref-but-kept-input, the break case).

So the static migration is correct — and the diff is exactly the two layers + the comment touch-up (_release.ymlreusable-release.yml), nothing extra.

Precision 1 — "secrets: inherit preserved" is the without-inherit path-γ shape

There's no secrets: inherit line anywhere in cellblock's workflows, and the migration correctly doesn't touch secrets. So what's preserved isn't an inherit line — it's the path-γ without-inherit shape, which is the one #180 empirically validated ships fine (Forgejo resolves the missing secret ref → empty → GITHUB_TOKEN fallback; benign-on-γ per #208). The substance is right (cellblock CI will work without inherit), just flagging the phrasing so nobody later reads "no inherit" as an accidental drop and "fixes" it — the absence is intentional and #180-validated.

Precision 2 — what the CI-pass actually proves for #223

This PR demonstrates the clean migration works end-to-end on a real consumer (drop toolkit_ref + bump to reusable-*@v0.18.0). It does not exercise the undeclared-input-passed path — i.e. a lagging adopter who bumps the @ref but keeps toolkit_ref. So the CI-pass here validates the recommended adopter path (which is the important one), but doesn't answer "does Forgejo error-vs-ignore a passed-but-undeclared toolkit_ref." If #223 also wants that answer (to decide whether adopters MUST drop it or can lazily leave it), that's a separate one-line probe. Not needed for this PR — just bounding what the green check certifies.

cellblock files its own release-toolkit-v0.18.0.changed.md fragment recording the bump — good adopter hygiene. Mergeable; the CI-pass after merge is the runtime gate (the #223 consumer-side empirical you're after). My approval marker satisfies the gate — ping Bosun/operator for the merge action if cellblock's branch protection holds it. Clean two-layer adoption. 🎯

## APPROVED — release-toolkit adoption bump v0.10.1-rc.1 → v0.18.0 (#171) The two-layer consumer migration is correct and complete. Two precision notes — neither blocking. FF onto main (a48e7806). ### Migration — complete, zero stragglers ✅✅✅ The load-bearing check for a multi-layer migration is completeness, and it's clean: - **#155 rename**: both `uses:` bumped to `reusable-release.yml@v0.18.0` + `reusable-manifest-check.yml@v0.18.0`. **Zero** old `_release.yml`/`_manifest-check.yml` refs left in `.forgejo/`. - **#172 toolkit_ref drop**: removed from **both** `with:` blocks. **Zero** leftover `toolkit_ref` anywhere. No half-migrated straggler (bumped-@ref-but-kept-input, the break case). So the static migration is correct — and the diff is exactly the two layers + the comment touch-up (`_release.yml` → `reusable-release.yml`), nothing extra. ### Precision 1 — "secrets: inherit preserved" is the *without-inherit* path-γ shape There's no `secrets: inherit` line anywhere in cellblock's workflows, and the migration correctly doesn't touch secrets. So what's preserved isn't an inherit line — it's the path-γ **without-inherit** shape, which is the one #180 empirically validated ships fine (Forgejo resolves the missing secret ref → empty → GITHUB_TOKEN fallback; benign-on-γ per #208). The substance is right (cellblock CI will work without inherit), just flagging the phrasing so nobody later reads "no inherit" as an accidental drop and "fixes" it — the absence is intentional and #180-validated. ### Precision 2 — what the CI-pass actually proves for #223 This PR demonstrates the **clean migration** works end-to-end on a real consumer (drop toolkit_ref + bump to reusable-*@v0.18.0). It does **not** exercise the *undeclared-input-passed* path — i.e. a lagging adopter who bumps the @ref but **keeps** toolkit_ref. So the CI-pass here validates the recommended adopter path (which is the important one), but doesn't answer "does Forgejo error-vs-ignore a passed-but-undeclared toolkit_ref." If #223 also wants that answer (to decide whether adopters MUST drop it or can lazily leave it), that's a separate one-line probe. Not needed for this PR — just bounding what the green check certifies. cellblock files its own `release-toolkit-v0.18.0.changed.md` fragment recording the bump — good adopter hygiene. Mergeable; the CI-pass after merge is the runtime gate (the #223 consumer-side empirical you're after). My approval marker satisfies the gate — ping Bosun/operator for the merge action if cellblock's branch protection holds it. Clean two-layer adoption. 🎯
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
frankenbit/cellblock!171
No description provided.