Katello 4.2.0.rc2 release process


  • Release Owner: @jsherrill
  • Release Engineer: @pcreech

When Ready to Release

Release Owner

  • 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 :repos: section of configs/katello/4.2.yaml)

  • Change Redmine version 4.2.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 prior_releases in configs/katello/4.2.yaml
    • Run ./tools.rb setup-environment configs/katello/4.2.yaml
    • Run ./tools.rb cherry-picks --version 4.2.0.rc2 configs/katello/4.2.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.
    • Using git cherry-pick -x as needed, verify tickets in the cherry_picks_4.2.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.2.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 :ignores: section of tool_belt in configs/katello/4.2.yaml
  • Check for outdated deprecation warnings in the current and next release with ./tools check-deprecation-warnings configs/katello/4.2.yaml. Follow the instructions in the output of the command. Don’t forget to create any Redmine issues needed!

  • Bump version:

    • Open a PR (or use cherry-pick PR) against the release branch which updates lib/katello/version.rb to 4.2.0.rc2
    • git pull to make sure you have the latest changes
    • Commit: git commit -m "Release 4.2.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 -i if needed.)
  • Once the PR is merged, perform the following in the Katello release branch (the real one, not your fork):

    • Tag: git tag -s -m "Release 4.2.0.rc2" 4.2.0.rc2
    • Push: 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
    • Push gem: gem push katello-4.2.0.rc2.gem
  • Inform the delivery team that the gem is published

Once Source is Available

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.

Release Engineer

Once release is out

Release Owner

1 Like

Due to the qpid_proton change in EPEL, Katello can’t be built right now.
So to unblock @pcreech doing the Foreman 3.0 GA release, I’ve skipped that build (otherwise Jenkins tries to rebuild it all over again, failing, and never building Foreman).

Whenever qpid is fixed, we’ll have to manually rebuild rc2 on EL7 (EL8 build exists), otherwise we will release RC1 again :wink:

Oh man that sucks. I’ve been waiting for 4.2 to go GA, but now I’'m gonna have to wait probably weeks and weeks. Not the fault of this project, just frustrating!

Vert happpy with the new 4.x stuff, having build a new test server fresh and since 4.2-rc1 everything I need seems to be working well. Can’t wait for it to go official. thanks for all oyur hard work, keep it up!

An update: We’re skipping rc2 due to these qpid issues and going to rc3 which should be released in the next few days (without major hiccups).

Where’s that thumbs-up button…