Make this post a wiki
Request Hammer CLI Katello release from maintainers
Request Virt Who Configure release from maintainers
Request any other releases as needed from the release owners (consult the
Change Redmine version 4.7.0.rc2 state to Closed
Do Cherry-picks: Clone tool_belt
If any minor versions of Katello have been added to Redmine since the last cherry-pick, make sure to include them in
./tools.rb setup-environment configs/katello/4.7.yaml
GITHUB_ACCESS_TOKEN=<secret> ./tools.rb cherry-picks --version 4.7.0.rc2 configs/katello/4.7.yaml
- Open a PR in Katello release branch. Make sure the PR name starts with [CP] to prevent our automations from adding it to Redmine issues.
git cherry-pick -xas needed, verify tickets in the cherry_picks_4.7.0.rc2 file are accounted for, or additionally cherry-pick them. Recommended: Do this in tool_belt’s checkout of Katello, in
repos/katello/4.7.0.rc2/katello. This way when you run cherry-picks again, tool_belt will be aware of any picks already completed.
For any cherry-picks that are not needed (including Redmine trackers) you can add them to the
- If any minor versions of Katello have been added to Redmine since the last cherry-pick, make sure to include them in
Check for outdated deprecation warnings in the current and next release with
./tools check-deprecation-warnings configs/katello/4.7.yaml. Follow the instructions in the output of the command. Don’t forget to create any Redmine issues needed!
Open a PR (or use cherry-pick PR) against the release branch which updates
git pullto make sure you have the latest changes
sed '/VERSION/ s/".\+"/"4.7.0.rc2"/' lib/katello/version.rb
Update/add the CHANGELOG.md file:
GITHUB_ACCESS_TOKEN=<secret> ./tools changelog configs/katello/4.7.yaml
git commit -m "Release 4.7.0.rc2"
Ensure that the commit above is the last commit and there are no commits after it. This is the commit that will get tagged. (Rearrange commits with
git rebase -iif needed.)
Once the PR is merged, perform the following in the Katello release branch (the real one, not your fork):
git tag -s -m "Release 4.7.0.rc2" 4.7.0.rc2
git push --follow-tags(Must be pushed directly to the release branch, as pull request merges will not preserve tags.)
Generate source gem:
gem build katello.gemspec
- Ensure you have a working login and password at rubygems.org
gem push katello-4.7.0.rc2.gem
Inform the delivery team that the gem is published
Note it is considered good practice to release on a day when the next day is a working day. This means no releases on Fridays or on the day before a holiday.
- Update release version similar to here
- Merge packaging PR once job is green
- Wait for Jenkins to build the packages (replace 4.7 with the matching Foreman version)
- Download, sign, upload RPM signatures and upload RPMs
- Kick off the release pipeline by calling release_pipeline
- Confirm response that the build succeeded (or if necessary, do more cherry-picks and version bumps repeating the steps above)
- Test the install and upgrade documentation for both the Katello server and smart proxy
- Post a release announcement