Foreman 1.20.0-RC1 Process

Writing release notes

  • Update manual if applicable for any additional installation steps
  • Draft release notes in markdown (example), with these sections (and do not use personal pronouns):
    • Headline features: half a dozen important features with a few sentences description each
    • Upgrade notes: all important notices that users must be aware of before upgrading
    • Release notes: bullet point list by category of most changes, excluding bug fixes for issues introduced during the release cycle, include link to bug numbers. You can auto-generate changes using the ‘changelog’ command in tool_belt
    • CLI release notes are taken from the hammer-cli and hammer-cli-foreman changelogs
    • Link to installer changelogs and note versions being used
  • Get the apipie doc and place it in api/1.20

Preparing code

  • Request Hammer CLI releases from maintainers if desired
  • Make patch releases of installer modules that have important changes
    • Branch to MAJ.MIN-stable if recent changes to the module aren’t suitable for patch (x.y.z) release
  • Compare tagged packages in nightly vs. release koji tag and re-tag any updated dependencies that are required
  • Remove/change release field for any open Redmine tickets assigned to the release still (next minor, unset it or reject)
  • List all issues targeted at the release, order by Closed date ascending and use git cherry-pick -x to cherry pick from develop to 1.20.0-RC1-stable branch
  • Clone tool_belt and run:
    • ./tools.rb setup-environment configs/foreman/1.20.yaml
    • ./tools.rb cherry-picks --version 1.20.0-RC1 configs/foreman/1.20.yaml
    • Verify tickets in the cherry_picks_1.20.0-RC1 file are accounted for or additional cherry pick them

Tagging a release

  • In foreman 1.20-stable:
    • Make sure test_1_20_stable is green
    • run make -C locale tx-update (if Transifex has not switched to the next major release yet, usually after .2)
    • run script/sync_templates.sh
    • change VERSION to 1.20.0-RC1
    • Run extras/changelog
    • Commit: git commit -m "Release 1.20.0-RC1"
    • Tag: git tag -s -m "Release 1.20.0-RC1" 1.20.0-RC1
    • Push: git push --follow-tags
  • In smart-proxy 1.20-stable:
    • Make sure test_proxy_1_20_stable is green
    • change VERSION to 1.20.0-RC1
    • Run extra/changelog
    • Commit: git commit -m "Release 1.20.0-RC1"
    • Tag: git tag -s -m "Release 1.20.0-RC1" 1.20.0-RC1
    • Push: git push --follow-tags
  • In foreman-selinux 1.20-stable:
    • change VERSION to 1.20.0-RC1
    • Run extras/changelog
    • Commit: git commit -m "Release 1.20.0-RC1"
    • Tag: git tag -s -m "Release 1.20.0-RC1" 1.20.0-RC1
    • Push: git push --follow-tags
  • In foreman-installer 1.20-stable:
    • change VERSION to 1.20.0-RC1
    • Commit: git commit -m "Release 1.20.0-RC1"
    • Tag: git tag -s -m "Release 1.20.0-RC1" 1.20.0-RC1
    • Push: git push --follow-tags
  • Run the Jenkins Tarballs Release to create tarballs
  • Verify tarballs are present on downloads.theforeman.org
  • Download, sign and upload detached signatures

Note: If for some reason there was an issue with the tarballs that required uploading new tarballs, CDN cache should be invalidated so that the builders use the updated tarballs.

Packaging a release

In some testing, I found that the foreman-installer has been failing to build for a few weeks now. The reason is due to a change in the Rakefile for how we build the source. We will need to pull in the PR below:

https://github.com/theforeman/foreman-installer/pull/297

Note to self: for the next RC1 we should mash the 1.20 repos on koji so we get repoclosure checks in the RC1 PR.

I can the release job but it looks like we missed something in the debian dependencies so the installer failed. I’ll continue later if nobody else has.

release_test failed because YAML interpreted the unquoted 1.20 as 1.2 so it tried to find the wrong mirrors. I’ll need to dive in where the quotes need to be added.

1 Like

release_test uncovered a regression in the installer which affects Debian-based installs: Bug #25304: Building the installer no longer uncomments the kafo_modules_dir - Installer - Foreman

We didn’t spot this one because the installer nightlies weren’t built for a long time and we failed to notice.

1 Like

A foreman-installer 1.20.0-RC1.1 was released for Debian packages and we included final builds of hammer 0.15.0. https://ci.theforeman.org/job/release_test/252/ is now building and I hope that completes now.

1 Like

The failure on Debian is because the exact version doesn’t match (RC1.1 vs RC1). The Ubuntu failures are due to the Rackspace domain name issue. Running them locally now to verify.

1 Like