Major versions (e.g., v4.6.0) are tagged directly on the main branch. Minor versions (e.g., v4.6.1) are tagged on a separate release branch.
-
Update
CHANGELOG.md
.-
Identify the release date by changing "unreleased" to a date with
%Y-%m-%d
format, following existing convention in the log. -
Do any final clean-up. (e.g., remove redundancy, add issue or PR numbers, add missing changes)
git log --graph --oneline --decorate origin/main origin/v4.6.x
-
-
Update
userdocs
references that imply the latest release to refer to the new version.contents/installation.rst
contributing/development-environment-vagrant.rst
quickstart/debian12.rst
quickstart/el.rst
-
Add full release notes to
userdocs/release/
and updateuserdocs/index.rst
. -
Add summarized release notes to
.github/releases/
. -
Cherry-pick updates from 1 and 2 above to a release branch if necessary. (i.e., when not doing a new major release)
git cherry-pick -x -m1 --signoff
-
Create a signed tag for the release of the format v4.MINOR.PATCH, following the format specified in <MAINTAINING.md>.
git tag --sign v4.6.1; git push origin v4.6.1
-
Monitor the release action associated with the pushed tag at https://github.com/warewulf/warewulf/actions, and verify the generated draft release contains the expected artifacts. This includes the source tarball and RPMs for Suse and Rocky Linux.
-
Update the release notes for the release with the summary in
.github/releases/
. -
Confirm the correct values for the pre-release and latest release flags.
-
Publish the release.
-
Announce the release as a post to warewulf.org/news, linking to the GitHub release.
-
Announce the release on the Warewulf Slack, linking to the warewulf.org/news post.