Katello 4.9.0-rc1 release process

Make this post a wiki

Roles

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.9.yaml)

  • Check for outdated deprecation warnings in the current and next release with ./tools check-deprecation-warnings configs/katello/4.9.yaml. Follow the instructions in the output of the command. Don’t forget to create any Redmine issues needed!

  • Update docs.theforeman.org

  • Open a PR (or use cherry-pick PR) against the release branch which updates lib/katello/version.rb to 4.9.0-rc1:

    • git pull to make sure you have the latest changes
    • sed '/VERSION/ s/".\+"/"4.9.0-rc1"/' lib/katello/version.rb
    • Update/add the CHANGELOG.md file: GITHUB_ACCESS_TOKEN=<secret> ./tools changelog configs/katello/4.9.yaml
    • Commit: git commit -m "Release 4.9.0-rc1"
    • 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.9.0-rc1" 4.9.0-rc1
    • Push: git push --follow-tags (Must be pushed directly to the release branch, as pull request merges will not preserve tags.)
    • Generate .mo translation files: make -C locale all-mo in the katello directory
    • Generate source gem: gem build katello.gemspec
    • Ensure you have a working login and password at rubygems.org
    • Push gem: gem push katello-4.9.0-rc1.gem
  • Inform the delivery team that the gem is published

Once Source is Available

Release Engineer

Once release is out

Release Owner

  • 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

@wbclark I moved the post to the correct category and changed the title to be the full version. This is important because Discourse requires unique titles and we post a release process for every version, so 4.9.0-rc2 will be its own post.

I also see some things look incorrect. Mostly some steps are not needed for release candidates. Looking at the source:

You can see the is_rc doesn’t work. This is because you used 4.9.0.rc1 where everywhere else we use 4.9.0-rc1:

I’m not sure what the best solution is here, but certainly a bug. I’d recommend somehow fixing it and regenerate the procedure.

Release pipeline failed with:

[2023-05-26T21:54:38.928Z] TASK [install telemetry dependencies] ******************************************

[2023-05-26T21:54:38.928Z] fatal: [n27-39-246.pool.ci.centos.org]: FAILED! => {“changed”: false, “msg”: “Unable to find any of pip3.9 to use. pip needs to be installed.”}

Looks like pip3.9 is not present anymore by default on Centos8 Stream.

This will probably fix the issue Fix telemetry dependencies by Odilhao · Pull Request #1681 · theforeman/forklift · GitHub

I successfully tested the install documentation at Foreman documentation: 3.7