Release Guide
Pre-Release Checklist
Before triggering a release, verify the following:
- [ ] All tests passing on the release branch
- [ ] Release version matches the root
pom.xmlversion without-SNAPSHOT - [ ] No unintended SNAPSHOT dependencies
- [ ] Documentation updated for new features
- [ ] Breaking changes and migration steps documented in the release notes
Triggering a Release
Configure the credentials described in CI automation. Container publishing is skipped unless both QUAY_USERNAME and QUAY_PASSWORD are set.
Releases are cut from release branches following the X.Y.x naming convention (e.g., 0.1.x, 0.2.x).
Create the release branch (first release of a minor version only)
git checkout main
git checkout -b 0.3.x
git push origin 0.3.xStart the next development version on main (first release of a minor version only)
After you create the release branch, go back to main and set the next development version. Use the next minor version with the -SNAPSHOT suffix. For example, after you create the 0.3.x branch, set main to 0.4.0-SNAPSHOT.
git checkout main
mvn versions:set -DnewVersion=0.4.0-SNAPSHOT
mvn versions:commit
git commit -a -m "Version bump to 0.4.0-SNAPSHOT"
git push origin mainNOTE
The versions:commit goal removes the pom.xml.versionsBackup files. The git commit -a command commits all the changed pom.xml files.
Set the versions
export RELEASE_BRANCH=0.3.x
export CURRENT_DEVELOPMENT_VERSION=0.3.0
export NEXT_DEVELOPMENT_VERSION=0.3.1Trigger the release
gh workflow run release -r ${RELEASE_BRANCH} -f releaseBranch=${RELEASE_BRANCH} -f currentDevelopmentVersion=${CURRENT_DEVELOPMENT_VERSION} -f nextDevelopmentVersion=${NEXT_DEVELOPMENT_VERSION}NOTE
The -r flag tells GitHub to run the workflow from the release branch. The releaseBranch input tells the workflow which branch to check out and push version bump commits to.
Post-Release
After the release workflow completes successfully:
The release workflow publishes the signed wanaku-semantic-router-VERSION-jar-with-dependencies.jar. The JAR contains all dependencies, so it runs alone with java -jar.
Publish container images and multi-architecture manifests:
shellgh workflow run release-artifacts -f currentDevelopmentVersion=${CURRENT_DEVELOPMENT_VERSION}Verify release artifacts on the GitHub Releases page
Update the Wanaku documentation site if needed
Next steps
- Build the Wanaku Semantic Router: build and package from source.
- CI automation: publishing prerequisites and release artifacts.