Skip to content

DX-2192: build release notes from export commit markers#48

Draft
lloyd-cio wants to merge 2 commits into
mainfrom
release-notes-from-export
Draft

DX-2192: build release notes from export commit markers#48
lloyd-cio wants to merge 2 commits into
mainfrom
release-notes-from-export

Conversation

@lloyd-cio

@lloyd-cio lloyd-cio commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

Part 2 of 2 for meaningful public CLI release notes (DX-2192). Pairs with cio-cli#123 (which embeds the notes in export commits).

At release time, assemble GoReleaser notes from the marker-wrapped blocks the export embeds in each commit since the previous tag, and have a human review before publishing.

  • release-workflow.js: new build-release-notes command — extracts <!-- release-notes:start/end --> blocks from export commits in <prev-tag>..HEAD, writes a notes file, emits notes_flag.
  • release.yml: github_release builds notes and passes ${{ steps.notes.outputs.notes_flag }} (--release-notes=<file>) to GoReleaser. Empty when no markers → GoReleaser default notes, so safe to land before/without cio-cli#123.
  • .goreleaser.yaml: release.draft: true — GoReleaser creates the release as a draft populated with the generated notes; a human reviews and clicks Publish.
  • Unit tests for extractNotesBlock.

Behavior change to note: the GitHub release page is now a draft until a human publishes it. npm + GitHub Packages still publish automatically (existing downstream jobs are unchanged) — the human gate is on the release notes/page, not the artifacts.

Validated: node -c, actionlint, goreleaser YAML parses, unit tests pass, functional run against a synthetic repo. GoReleaser/Copybara themselves only run in CI.

Linear: DX-2192

Assemble release notes from the marker-wrapped blocks the public export
embeds in each export commit since the previous tag, and pass them via
--release-notes. Falls back to GoReleaser's default when no markers exist.
@lloyd-cio lloyd-cio marked this pull request as draft June 17, 2026 16:55
The generated notes populate a draft release; a human reviews and publishes.
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