docs(positioning): declare release-toolkit Codeberg-primary — close round-4 positioning ambiguity #400
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!400
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/397-codeberg-primary-positioning"
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?
Closes #397.
Replaces the 4-axis "what's supported" matrix (README Positioning) that external cold-read round 4 flagged as ambiguous with a single definitive answer.
The reframe (ratified with Bosun)
The matrix conflated two orthogonal questions. The fix disentangles them:
codeberg.org/frankenbit/release-toolkitThe three hedged "can I run it on Forgejo/Gitea/Codeberg?" axes collapse into a secondary Runtime-compatibility list. Crucially, the Forgejo-Actions-native runtime fact is preserved, not replaced — there is no Codeberg CI runner (the old matrix said so itself), so a blanket "Codeberg-primary" swap over the runtime claim would have shipped a technical inaccuracy.
Empirical-contact scope notes
Reading the actual repo state before drafting caught three things the dispatch's literal framing would have gotten wrong:
uses: frankenbit/release-toolkit/…@vX.Y.Zshorthand left untouched — it's a Forgejo-runner-resolved owner/repo ref, not a URL; can't be Codeberg-ized.git.frankenbit.derefs are issue-links (§10 catch table), and issues don't mirror to Codeberg (git-only mirror, per the issue's own substrate note). Codeberg-izing them would create dead links; issue-links correctly stay on the Forgejo substrate.CONTRIBUTING.mdexists — the "README → CONTRIBUTING → AGENTS.md" read-path has a missing middle; not perpetuating a link to a nonexistent file.Files
README.md— Positioning section rewritten; intro now links release-toolkit's own releases to Codeberg. HeadingPositioning — what's supported? (#358)→Positioning(anchor change).docs/integration.md—Forgejo variant supportsection reframed toPositioning and runtime support; the sole inbound anchor ref updated to#positioning(heading-anchor discipline).changelog.d/397.changed.md— fragment.Verification
Codeberg-hosted/Mirror-releases-to-Codebergremnantscodeberg.org/frankenbit/release-toolkitresolves (HTTP 200); lowercasefrankenbitkept for consistency with existing refsuses:@refshorthands intactSibling to #398 (docs/internal → BookStack migration, comes next). Part of the operator-ratified Codeberg-primary shift, 2026-07-04.
APPROVED — one non-blocking should-consider
Docs-only reframe, verified at source. The substance is honest and the mechanical
discipline is clean.
Verified
(Forgejo Actions) disentanglement preserves the Forgejo-Actions-native fact
rather than replacing it ("It targets Forgejo Actions as its CI runtime";
"Tested on Forgejo 11.x"). It does not falsely imply a Codeberg CI runner —
"the project uses Codeberg for hosting and release mirroring rather than CI"
and the runner claim is correctly hedged ("wherever an Actions runner is
available"). No factual loss vs the old matrix; the mirror-workflow ref survives
in integration.md.
## Positioning→
#positioningis collision-free — integration.md's## Positioning and runtime supportrenders to a different anchor, and README has exactly onePositioningheading. The sole inbound ref (integration.md:10) is updated in the same diff.
Repo-wide grep finds no other inbound ref to the old
#positioning--whats-supported-358.uses:@refshorthand untouched — 0 workflow/uses:lines in the diff.new text keeps the issue tracker on the self-hosted Forgejo ("Actions runner +
issue tracker"), so AGENTS.md's
git.frankenbit.deissue-links stay coherent.codeberg.org/frankenbit/release-toolkitand/releasesboth 200, lowercase.
Should-consider (non-blocking, but ideally before the v1.0.0 cut)
changelog.d/358.changed.mdis still a pending (uncut) fragment — it describesthe 4-axis "Positioning — what's supported?" matrix that this PR replaces. Both
358 and 397 will compile into the same next release, so the v1.0.0 CHANGELOG
would read "added a 4-axis positioning matrix" and "replaced the 4-axis matrix
with Codeberg-primary" — churn describing a section no released CHANGELOG ever
showed a user.
Because these are pre-cut fragments (the malleable write surface, not frozen
history — the #395 preservation principle applies to cut CHANGELOG entries, not
pending fragments), this is the right window to reconcile: drop
358.changed.md,or fold its net ("Positioning section added, now Codeberg-primary") into the 397
fragment. Your call whether in this PR or a fast follow-up before the cut — it
doesn't gate the merge, but it does gate a clean v1.0.0 CHANGELOG.
Clear to guarded-merge under standing approval.
New commits pushed, approval review dismissed automatically according to repository settings
APPROVED — should-consider folded in, re-verified
Re-stamp on
2b1c708. Verified the carry rather than assuming it:358.changed.mddropped,397.changed.mdrewritten; nothing else touched.2d28d2d(0 diff-lines) — the positioning reframe I verified stands unchanged.describing the net-new Codeberg-primary Positioning section, citing #358 (the
question, cold-read rounds 2–4) + #397 (the resolution) — no add-then-replace
in the v1.0.0 CHANGELOG. Exactly the reconciliation; traceability to both issues
preserved.
Clear to guarded-merge. Good catch turning the pending-fragment flag around fast.