masteralways contains a tag with the current development version:X.Y-develop- Stable branches are named
X.Y-stable - Release candidate tags on stable branches follow
X.Y.Z-rcN(e.g.3.18.0-rc1) - Release tags on stable branches follow
X.Y.Z(e.g.,3.18.0,3.18.1)
When ready to stabilize a version (e.g., 3.18):
-
Create the stable branch from master:
git fetch origin git checkout -b 3.18-stable origin/master git push --set-upstream origin HEAD -
Update
src/vars/images.ymlon the stable branch to reference the release images (e.g.,3.18).sed -i '/container_tag_stream:/ s/:.*/: "3.18"/' src/vars/images.yml -
Bump master to the next development version:
git checkout master git tag -s "3.19-develop" -m "Start 3.19 development" git push --follow-tags
To release from a stable branch (e.g., 3.18.0):
git checkout 3.18-stable
git tag -s "3.18.0" -m "Release 3.18.0"
git push --follow-tags
This will create a GitHub release and attach the created tarball to it.
Once that is done, the packaging is handled in the foreman-packaging repository where the spec file is maintained:
obal update foremanctl --version $VERSION
gh pr create --base rpm/develop