Derive the GitHub release notes, and show them at the dry-run checkpoint #84

Closed
opened 2026-09-22 15:47:26 +01:00 by cruelacid · 0 comments
Owner

Part of #77. Needs the ledger (#82).

Why

Two things, and the second is the more surprising.

releaseNotes(tag, sourceSha) in scripts/publish-plugin.mjs is a fixed
template — install instructions, sha256(main.js), the source sha. It should
carry the version's section from docs/changelog-plugin.md.

And the operator has never seen the notes before they are published.
releaseNotes() is an inline argument to gh release create, so it is never
printed. The dry-run exit is the only human checkpoint in the entire plugin
release
, and it shows everything except the thing that becomes public and
permanent.

What to do

  • releaseNotes() takes the version's section from the ledger, generated rather
    than hand-written.
  • Print the full notes at the dry-run exit, so the one checkpoint in the
    release actually shows what is about to be published.
  • Keep the install instructions and the sha256(main.js). The hash is how
    somebody checks the artefact against the source, and the client is the trust
    anchor — that must not be traded away for tidier notes.

Watch for

assertAuthorship() enforces cedric@nectenda.com across all mirror history.
Nothing here should touch it, but a change to the commit path can trip it.

Part of #77. Needs the ledger (#82). ## Why Two things, and the second is the more surprising. `releaseNotes(tag, sourceSha)` in `scripts/publish-plugin.mjs` is a fixed template — install instructions, `sha256(main.js)`, the source sha. It should carry the version's section from `docs/changelog-plugin.md`. And **the operator has never seen the notes before they are published.** `releaseNotes()` is an inline argument to `gh release create`, so it is never printed. The dry-run exit is **the only human checkpoint in the entire plugin release**, and it shows everything except the thing that becomes public and permanent. ## What to do - `releaseNotes()` takes the version's section from the ledger, generated rather than hand-written. - **Print the full notes at the dry-run exit**, so the one checkpoint in the release actually shows what is about to be published. - Keep the install instructions and the `sha256(main.js)`. The hash is how somebody checks the artefact against the source, and the client is the trust anchor — that must not be traded away for tidier notes. ## Watch for `assertAuthorship()` enforces `cedric@nectenda.com` across all mirror history. Nothing here should touch it, but a change to the commit path can trip it.
Sign in to join this conversation.
No project
No assignees
1 participant
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
Nectenda/nectenda#84
No description provided.