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:
- Update the release notes - clean up -rcXX from the version numbers, put the routine fixes at the bottom of the list
- Run the following script that will switch to main (creating it if needed), push everything, and come back to dev.
./scripts/mainRelease.sh- GitHub CLI (
gh) installed and authenticated. - Permission to trigger workflows and push commits/tags to the repo.