Skip to content

docs(contributing): document release authorization and repair the fences - #508

Merged
ss-o merged 1 commit into
nextfrom
feature-468
Sep 3, 2026
Merged

docs(contributing): document release authorization and repair the fences#508
ss-o merged 1 commit into
nextfrom
feature-468

Conversation

@ss-o

@ss-o ss-o commented Sep 3, 2026

Copy link
Copy Markdown
Member

Closes the last open criterion of #468, and repairs a rendering defect found in the same file.

#468 was almost complete already

Verified each acceptance criterion against what shipped in #470 and #497:

Criterion State
Minimal caller for the org release-preparation workflow release-prepare.yml:19
Tag-triggered workflow, explicit permissions, non-cancelling concurrency release.yml: tags: ["v*.*.*"], contents: write, cancel-in-progress: false
Reject malformed, lightweight, unsigned, off-main, stale or under-validated tags 12 rejection checks in scripts/verify-release-tag.zsh
Keep main as the boundary, no stored version file ZI[VERSION] from git describe --tags --exact-match
Validate with actionlint, YAML parsing, focused tests, git diff --check tests/release-tag-verification.zsh passes; actionlint enabled in .trunk/trunk.yaml
Document the signed tag as the sole publication authorization missing

The flow has also now run end to end in production: v2.1.0 was published by the workflow itself, after the manual v2.0.1 exposed and fixed the missing Zsh install.

This PR adds the missing documentation: a ## Releases section covering the proposal step, the maintainer-pushed signed tag as the only authorization, each condition the verifier enforces, and why there is no version file to keep in step.

The rendering defect, not previously reported

docs/CONTRIBUTING.md opened its first fence with four backticks:

line  7:  ````text
line 15:  ```text     <- three backticks plus an info string; cannot close it
line 69:  ````         <- the real closer

A fence closes only on a line with at least as many backticks and no info string. So lines 7 to 69 were one code block, and ## Commit message format, ## What not to add and ## Discussion and issues all rendered as preformatted text rather than markdown.

Verified by walking the fences before and after:

before:  fence 7 -> 69     58 lines rendered as code
after:   fence 7 -> 15
         fence 32 -> 41    15 lines rendered as code

Fifteen is the intended amount: the branch diagram and the commit-message example, plus the new release example.

I found this while looking for where release authorization was documented. Fixing it was unavoidable, since adding a section to a file whose body renders as a code block would have hidden the new section too.

Closes #468

#468's remaining acceptance criterion was to document the signed tag as the sole
publication authorization. Everything else it asks for already shipped with
#470 and #497: the organization release-prepare caller, the tag-triggered
workflow with explicit permissions and non-cancelling concurrency, the twelve
rejection checks in scripts/verify-release-tag.zsh, no stored version file, and
tests/release-tag-verification.zsh under actionlint and YAML validation.

Add a Releases section covering the proposal, the maintainer-pushed signed tag,
each condition the verifier enforces, and the fact that ZI[VERSION] is derived
from `git describe' so the tag is the version.

Also repair the code fences in the same file. The first fence opened with four
backticks and the fence that appeared to close it had three plus an info string,
which cannot close it. The real closer was a stray four-backtick line at the end
of the file, so lines 7 to 69 rendered as a single code block: the commit-message
format, what-not-to-add and discussion sections were all displayed as
preformatted text rather than markdown. Fifty-eight lines were swallowed; the
file now renders fifteen lines as code, which is the four intended blocks.

Found while looking for where release authorization was documented. Not
previously reported.

Closes #468
@ss-o
ss-o merged commit 0eaae89 into next Sep 3, 2026
9 checks passed
@ss-o
ss-o deleted the feature-468 branch September 3, 2026 03:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant