chore(release): v0.10.2 #137
No reviewers
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!137
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "release-prep/rolling"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Added
Test-seams + docs sprint — closes three small open trackers in one bundled PR per operator's "close all currently closable" framing 2026-06-26.
#122:
read_rolling_pr_bump_labelbats coverageSurveyor 116b flagged at the v0.9.0 sprint approval: the
read_rolling_pr_bump_labelfunction inscripts/release-decide.shhad no direct bats coverage. The function pre-existed v0.9.0 as untested (Forgejo API path; no test seam), but the namespace shiftbump:→bump/flipped it from "planned" to "live + load-bearing." Same shape as the #134 test-seam follow-up — planned→load-bearing as the trigger.Implementation: new
FORGEJO_TEST_OPEN_PRS_FILEenv hook inread_rolling_pr_bump_label. Mirrors the existingFORGEJO_TEST_PR_LOOKUP_FILEpattern (line-consumed canned response). When set, the function bypasses both the dry-run skip + the real API call. 7 new bats tests cover the matrix: single bump/patch / bump/minor / bump/major (overrides auto-detect), no labels (auto-detect prevails), multiple bump/* (FATAL fail-loud — the defense-in-depth guard Surveyor 116b specifically wanted mutation-verified), no rolling PR open (no override), non-bump labels mixed with bump/patch (only bump/* recognized).#134:
manifest-precheck.shextraction + bats coverageSurveyor 3bd4 flagged at the #131 idempotency approval: the new
_release.ymlmanifest pre-check had no bats coverage. Same planned→load-bearing trigger. Surveyor's (A) lean: extract the 6-line inline check to a script.Implementation: new
scripts/manifest-precheck.sh— single-responsibility script that takes(MANIFEST_PATH, HEAD_SHA)and outputs"skip"or"proceed". Fail-safe design: any uncertainty (missing field, malformed JSON, missing file) produces "proceed" — false-positive proceed = re-do work (benign); false-positive skip = miss work (would land inconsistent substrate). The_release.ymlcut path now calls the script instead of inlining the jq check. 9 new bats tests cover the matrix intests/manifest-precheck.bats: HEAD_SHA match → skip, HEAD_SHA mismatch → proceed, manifest absent → proceed (first cut bootstrap), field missing → proceed (fail-safe), invalid JSON → proceed (fail-safe), empty file → proceed, null value → proceed, missing args → fail loud, case-sensitive matching (no normalization fuzzing).#135:
secrets: inheritdocs fix + regression guardSurveyor dec5 surfaced at the cellblock first-cut adoption review (cellblock#168 2026-06-26): integration.md's quick-start under-specifies the workflow_call secrets contract — toolkit-self's
_release.ymlreferencessecrets.RELEASE_TOOLKIT_TOKENunconditionally, but the quick-start template omitssecrets: inherit. The toolkit's own consumer wrapper HAS inherit; the quick-start template was the gap.Empirical update during cellblock cut: the un-inherit shape worked end-to-end (Forgejo resolved the missing reference benignly; bash
${VAR:-}fell back to GITHUB_TOKEN per ADR-0007). So the gap was a docs-consistency issue rather than a substrate-blocker.Implementation:
docs/integration.mdquick-start template updated to showsecrets: inheritwith an inline comment explaining the substrate-honest reason (unconditional reference + bash fallback chain). Tag refs bumped to current@v0.10.1-rc.1. 1 new bats regression guard intests/workflows.batsasserts that the toolkit's own consumer wrapper hassecrets: inheriton every workflow_call job — catches a future edit that would drop inherit and re-introduce the documented-vs-validated gap.Test count
343/343 green (was 326; +17 new tests across the three sub-items).
What this PR does NOT do
secrets.RELEASE_TOOLKIT_TOKENreference conditional in_release.yml— the optional substrate-hardening sub-scope from #135. The empirical evidence shows the unconditional reference is fine; deferred lower priority.Refs
Closes: #122, #134, #135
Operator engagement 2026-06-26: "run a sprint to close all currently closable release-toolkit issues"
Surveyor advisories: 116b (#122 + #134 trigger pattern), 3bd4 ((A) extract-to-script lean for #134), dec5 (#135 abstraction-boundary catch)
test-seams + docs sprint — closes #122 + #134 + #135
chore(release): v0.11.0to chore(release): v0.10.2111c90282059e027806a