Skip to content

docs(release): rewrite the playbook around CI-built releases - #213

Merged
meinharrd merged 2 commits into
mainfrom
docs/release-playbook-ci
Sep 4, 2026
Merged

docs(release): rewrite the playbook around CI-built releases#213
meinharrd merged 2 commits into
mainfrom
docs/release-playbook-ci

Conversation

@meinharrd

Copy link
Copy Markdown
Contributor

Summary

Releases are built by .github/workflows/release.yml since #207/#210, but the playbook still described a laptop-built release (local npm run dist, LAN HTTP server to move artifacts, tag last). This rewrites docs/agent-playbooks/release-process.md around the actual flow:

  • Intro: the flow at a glance — branch, rc.1 tag → public pre-release → smoke test → fix/bump loop → bare version + final changelog → v<version> tag → draft → publish.
  • §1 Set the version: rc.N → final sequence; npm version --no-git-tag-version caveat; why semver pre-release ids carry the candidate flow (artifact names, About, updater ordering, workflow behaviour).
  • §4 Verify before tagging: only what CI cannot do — license check, npm start spot check, green CI on the branch head.
  • §5 Build with CI: tag-driven; job table; candidate pre-release vs. final draft; failed leg / re-run semantics; never move a tag; manual runs.
  • §6 Smoke testing: download from the GitHub Release (candidates public, draft via gh release download), hash check against the release's latest-*.yml, separate-profile launch commands for macOS/Linux/Windows, one green candidate for all platforms.
  • §7 Publish: freedom.baby + website from the draft's assets (never a local rebuild), then flip the draft. Windows installer name change noted.
  • §8 Merge (tag already on the remote) + housekeeping; §9 next dev cycle.
  • Appendix A: the previous local mac (inline/async notary), Linux Docker and Windows cross-build recipes, verbatim, as fallback — with the rule that a locally built artifact and the Actions build of the same tag must never both be published.
  • Appendix B: secrets and certificate rotation, guards, draft→upload→publish ordering, re-run semantics, the publish.channel pin, and the first-run fixes (adblock retry, bsdtar on Windows).

Section numbers referenced from release.yml comments (§1, §5, §6) keep their meaning. windows-utm-build.md and the comment in scripts/better-sqlite3-prebuilds.js now point at Appendix A for the cross-build recipe.

Related issue

Follows #207, #210, #211, #212.

Verification

  • npx prettier --check on all three files; npx eslint scripts/better-sqlite3-prebuilds.js (comment-only change); git diff --check
  • Every §N cross-reference in the repo re-checked against the new numbering
  • Tests – not applicable (docs + one comment)

Visual changes

Not applicable.

Security and privacy

No change. Appendix B describes where the signing secrets live; no values.

AI assistance

Drafted by Claude Code from the release runs done today; the maintainer reviews and merges.

meinharrd and others added 2 commits September 4, 2026 14:13
Releases are now built by .github/workflows/release.yml on a tag push,
so the playbook no longer describes a laptop-built release:

- §1 covers the rc.N -> final version sequence and why semver
  pre-release identifiers carry the whole candidate flow.
- §4 keeps only what CI cannot do (license check, npm start spot check,
  green CI on the branch head).
- §5 is the tag-driven build: job table, candidate pre-releases vs.
  final drafts, re-run semantics, the candidate loop, manual runs.
- §6 downloads test artifacts from the GitHub Release instead of a LAN
  HTTP server, adds the separate-profile launch for every platform and
  the hash check against the release's manifests.
- §7 publishes from the draft's assets so GitHub and freedom.baby serve
  identical bytes, then flips the draft; §8 merges (tag already pushed);
  §9 opens the next dev cycle.
- Appendix A keeps the local mac/Linux/Windows build recipes as a
  fallback; Appendix B documents secrets, guards, re-runs, the channel
  pin and the first-run fixes for whoever maintains the workflow.

Cross-references in windows-utm-build.md and better-sqlite3-prebuilds.js
point at the appendix for the cross-build recipe.
@meinharrd
meinharrd merged commit a944910 into main Sep 4, 2026
64 checks passed
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