mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-04-09 04:19:27 -07:00
3.9 KiB
3.9 KiB
Releasing
Stable Release
- Confirm
mainis green:gh run list --workflow CI --limit 5. - Confirm release-facing docs are current:
README.md,changes/*.md, and any toucheddocs-site/pages/config examples. - Run
bun run changelog:lint. - Bump
package.jsonto the release version. - Build release metadata before tagging:
bun run changelog:build --version <version> --date <yyyy-mm-dd>- Release CI now also auto-runs this step when releasing directly from a tag and
changes/*.mdfragments remain.
- Release CI now also auto-runs this step when releasing directly from a tag and
- Review
CHANGELOG.mdandrelease/release-notes.md. - Run release gate locally:
bun run changelog:check --version <version>bun run verify:config-examplebun run typecheckbun run test:fastbun run test:envbun run build - If
docs-site/changed, also run:bun run docs:testbun run docs:build - Commit release prep.
- Tag the commit:
git tag v<version>. - Push commit + tag.
Prerelease
- Confirm release-facing docs and pending
changes/*.mdfragments are current. - Run
bun run changelog:lint. - Bump
package.jsonto the prerelease version, for example0.11.3-beta.1or0.11.3-rc.1. - Run the prerelease gate locally:
bun run changelog:prerelease-notes --version <version>bun run verify:config-examplebun run typecheckbun run test:fastbun run test:envbun run build - Commit the prerelease prep. Do not run
bun run changelog:build. - Tag the commit:
git tag v<version>. - Push commit + tag.
Prerelease tags publish a GitHub prerelease only. They do not update CHANGELOG.md, docs-site/changelog.md, or the AUR package, and they do not consume changes/*.md fragments. The final stable release is still the point where bun run changelog:build consumes fragments into CHANGELOG.md and regenerates stable release notes.
Notes:
- Versioning policy: SubMiner stays 0-ver. Large or breaking release lines still bump the minor number (
0.x.0), not1.0.0. Example: the next major line after0.6.5is0.7.0. - Supported prerelease channels are
betaandrc, with versions like0.11.3-beta.1and0.11.3-rc.1. - Pass
--dateexplicitly when you want the release stamped with the local cut date; otherwise the generator uses the current ISO date, which can roll over to the next UTC day late at night. changelog:checknow rejects tag/package version mismatches.changelog:prerelease-notesalso rejects tag/package version mismatches and writesrelease/prerelease-notes.mdwithout mutating tracked changelog files.changelog:buildgeneratesCHANGELOG.md+release/release-notes.mdand removes the releasedchanges/*.mdfragments.- In the same way, the release workflow now auto-runs
changelog:buildwhen it detects unreleasedchanges/*.mdon a tag-based run, then verifies and publishes. - Do not tag while
changes/*.mdfragments still exist. - Prerelease tags intentionally keep
changes/*.mdfragments in place so multiple prereleases can reuse the same cumulative pending notes until the final stable cut. - If you need to repair a published release body (for example, a prior version’s section was omitted), regenerate notes from
CHANGELOG.mdand re-edit the release withgh release edit --notes-file. - Prerelease tags are handled by
.github/workflows/prerelease.yml, which always publishes a GitHub prerelease with all current release platforms and never runs the AUR sync job. - Tagged release workflow now also attempts to update
subminer-binon the AUR after GitHub Release publication. - AUR publish is best-effort: the workflow retries transient SSH clone/push failures, then warns and leaves the GitHub Release green if AUR still fails. Follow up with a manual
git push aur masterfrom the AUR checkout when needed. - Required GitHub Actions secret:
AUR_SSH_PRIVATE_KEY. Add the matching public key to your AUR account before relying on the automation.