Foreman 1.21.4 release procedure

Manual updates

  • Update release notes section in the manual:
    • Release notes: bullet point list by category of all changes, include link to bug numbers. You can auto-generate changes using the release notes script.
  • Update installer options section using the get-params script if any changes were made in the installer or installer modules (after new packages have been released)
  • Update the apipie doc and place it in the api/1.21 directory if any changes were made to the API

Preparing code

  • 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
  • Add a new Redmine version for the next minor, unless the series is EOL. Be sure the version is set to sharing with subprojects.
  • Remove/change release field for any open Redmine tickets assigned to the release still (next minor, unset it or reject)
  • Change Redmine version 1.21.4 state to Closed
  • Ensure that code in git matches issues fixed in 1.21.4 in redmine. issues.rb can be used to generate a comparison between the two.

Tagging a release

  • In foreman 1.21-stable:
    • Make sure test_1_21_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
    • update template snapshots with rake snapshots:generate RAILS_ENV=test and verify changes are expected
    • Tag the release using tag.sh tag.sh 1.21.4
    • Push: git push upstream 1.21-stable --follow-tags
  • In smart-proxy 1.21-stable:
  • In foreman-selinux 1.21-stable:
    • Tag the release using tag.sh tag.sh 1.21.4
    • Push: git push upstream 1.21-stable --follow-tags
  • In foreman-installer 1.21-stable:
    • Tag the release using tag.sh tag.sh 1.21.4
    • Push: git push upstream 1.21-stable --follow-tags
  • Run the Jenkins Tarballs Release to create tarballs
  • Download, inspect, 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

Background documentation

All but installer are tagged. I think puppet-foreman needs another change since https://github.com/theforeman/puppet-foreman/commit/dca5d41234bf54470ec96e3858caabbc4970f8f6 looks like a full revert of the fix, not just restoring the parameter without using it. Once that’s done and the module is released feel free to tag installer and start the pipelines.

You’re right, looks like I did a bad job :frowning:

Let’s try this again:

1 Like