- Dev bumps
versioninpackage.json. - Dev updates
CHANGELOG.mdfor the new version (in-repo human history). GitHub Release notes are also auto-generated from PR labels (see step 3) — keep both in mind; labels alone do not updateCHANGELOG.md. - Dev creates a
release/xyz(orhotfix/xyz) branch and pushes it (never targetdevelopnormaster). This single push triggers GitHub Actions to:- Create a draft release tagged
vX.Y.Z(read frompackage.json) with auto-generated notes — see.github/workflows/release.yml. Notes are categorized via.github/release.ymlby PR label, so labelling merged PRs keeps the GitHub release notes tidy. - Build all binaries (macOS / Windows / Linux), which
electron-builderattaches to the draft. - E.g. if the version is
1.0.0, the tag isv1.0.0. - The draft step is idempotent: if a release for that tag already exists it is left untouched, so re-pushing the branch will not clobber a signed draft.
- Create a draft release tagged
- Ensure that
.ymlfiles aren't being left out in the artifacts. These are needed for auto-update to work correctly. - Once all binaries have been uploaded to the draft, Dev messages THORCHAIN-ADMIN and they sign and update the draft.
- Once they are done, publish the release. GitHub will tag the latest commit for you.
GitHubdocumentation: "Managing releases in a repository"electron-builderdocumentation: "Recommended GitHub Releases Workflow"