This repo uses a GitHub Actions workflow (.github/workflows/release.yaml) to build OWLCMS and create a GitHub Release.
The workflow also pushes back a few generated/“assembled” artifacts to the source branch -- the release.sh script does a git pull to retrieve them:
version.txtupdated to the exact semver tag that was builtReleaseNotes.mdassembled fromsrc/main/markdown/*- an updated default
REVISIONinrelease.sh(so you can see what was last built) - a git tag matching the release semver
Prerelease builds are the usual flow.
- Checkout your prerelease branch.
- Ensure your working tree is clean.
- Pull the latest changes (including any “assembled” artifacts from the previous run).
Edit release.sh and update the default revision on line 2 to the new semver prerelease, e.g.:
64.0.0-rc08
Edit the maintained notes in:
src/main/markdown/ReleaseNotes.md
Optionally update the prefix pages (used for alpha/beta/rc/final headers):
src/main/markdown/alpha.mdsrc/main/markdown/beta.mdsrc/main/markdown/rc.mdsrc/main/markdown/release.md
Do not manually edit the root ReleaseNotes.md for a release. That file is assembled by the workflow and pushed back.
Commit your edits on the prerelease branch.
Run from the repo root:
./release.shThe script will:
- (by default) commit + push the release-note source files and
release.sh(so the workflow builds exactly what you have) - trigger the GitHub Actions workflow on the current branch
- wait for completion
- on success,
git pull --ff-onlyto retrieve the assembled artifacts and the tag
A stable release should be cut from the main/stable branch IMMEDIATELY AFTER doing a last prerelease branch
Suggested flow:
- Switch to the stable branch (e.g.,
master). - Merge the latest prerelease branch into stable.
- Update the release notes for "Stable" wording -- removing the detailed update log from the prereleases
- Update the default revision on line 2 of
release.shto a final semver (no-rc,-beta, etc.). - Commit.
- Run:
./release.sh- IMPORTANT After the release is complete,
- Switch to the the prerelease branch again
- Merge stable back into prerelease to keep both lines in sync.
- Commit and push
- GitHub CLI (
gh) installed and authenticated. - Permission to trigger workflows and push commits/tags to the repo.