Make this post a wiki (help)
Roles
- Release Owner: @ColeHiggins2
- Release Engineer: @pcreech
- Installer Maintainer: @
Preparing code: 2024-10-17
Installer Maintainer
- 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
Release Owner
- Make sure any release blocking issues are resolved and remove/change target version field for any open Redmine tickets assigned to the release still (next minor, unset it or reject). Look for the
3.11.4 release TODO
saved query on Foreman’s issues. - Ensure that code in git matches issues fixed in 3.11.4 in Redmine. Use the
3.11.4 release DONE
saved query on Foreman’s issues. issues can be used to generate a comparison between the two. - Check for open pull requests in Foreman, smart-proxy, foreman-installer and foreman-selinux
Tagging a release: 2024-10-17
Release Owner
- Make sure test_3_11_stable and smart-proxy-3.11-stable-test are green using verify_green_jobs
- Update release version similar to here
- Tag the projects
- Create tags using tag_project
- Push tags using tag_push
- Run the Jenkins Tarballs Release using release_tarballs to create tarballs
- Change Redmine version 3.11.4 state to Closed using close_redmine_version
- Add a new Redmine version for 3.11.5, unless the series is EOL. Be sure the version is set to sharing with subprojects.
Release Engineer
- Sign Tarballs
- download_tarballs
- inspect_tarballs
- Sign and upload detached signatures using sign_tarballs
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: 2024-10-17
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
- Update foreman-packaging branches
- rpm/3.11 using bump_rpm_packaging
- deb/3.11 using bump_deb_packaging
- Wait for packages to be built using wait_packaging (checks rpm/3.11 and deb/3.11). This takes a while so you can already start on the manual updates.
- Check for outstanding PRs against 3.11 packaging, and merge if possible:
- Sign the RPMs in the release
- Sign RPMs for client repos (call scripts with
PROJECT=client
) - Kick off the release pipeline by calling release_pipeline
- Kick off the client pipeline by calling
PROJECT=client ./release_pipeline
- Kick off the plugins pipeline by calling plugins_pipeline
Manual updates: 2024-10-17
Release Owner
- Update manual if applicable for any additional installation steps
- Update the website’s release notes section in the manual
- Using the release notes script:
./scripts/release_notes.rb foreman 3.11.4
- Append CLI release notes taken from the hammer-cli and hammer-cli-foreman changelogs, in theforeman.org.
- Submit this as a PR
- Using the release notes script:
- Update docs.theforeman.org
- Using redmine_release_notes script (see README as well):
./guides/doc-Release_Notes/redmine_release_notes foreman 3.11.4 > ./guides/doc-Release_Notes/topics/foreman-3.11.4.adoc
- Append CLI release notes taken from the hammer-cli and hammer-cli-foreman changelogs to
foreman-3.11.4.adoc
. - Add
topics/foreman-3.11.4.adoc
toguides/doc-Release_Notes/master.adoc
:sed -i '/x.y.z releases here/a include::topics/foreman-3.11.4.adoc[leveloffset=+1]' guides/doc-Release_Notes/master.adoc
- Make sure foreman-contributors.adoc is updated
- Make sure headline features, upgrade warnings and deprecations are in sync with the website
- Submit this as a PR
- Using redmine_release_notes script (see README as well):
- Update the apipie docs and place those in the foreman/3.11/apidoc directory if any changes were made to the API
After the packages have been released
Release Owner
- Update theforeman.org
- Update
_config.yml
- Update
foreman_latest_releases
- Update
- Update
- Announce the release on Discourse using release_announcement
- Update the topic in #theforeman channel on Matrix
- Share the release announcement on Twitter
- Release pipeline will trigger foreman-plugins-3.11-deb-test-pipeline and foreman-plugins-3.11-rpm-test-pipeline. These don’t block releases but can be used to understand known issues around plugin compatibility with Foreman 3.11.
- Unless the series is EOL: Prepare 3.11.5 by updating the
3.11.4 release TODO
and3.11.4 release DONE
saved queries on Foreman’s issues. Be sure to update both the name and individual filters.