Two weeks before branching
- Make releases of installer modules
- Ensure headline features planned for the release have been merged or push them off to the next release.
- Translations:
-
Update locales in foreman develop:
make -C locale tx-update
- Ask plugin authors to start extracting i18n strings and pushing the changes into develop/master git branches so Transiflex can pick it up
- Announce string freeze date on discourse and send announcement via https://www.transifex.com/foreman/foreman/announcements/
- Update foreman-dev with translations status to encourage 100% translations before release
-
Update locales in foreman develop:
During the week before branching
- Announce start of stabilization week to discourse development category.
- Request new Hammer CLI release from maintainers if needed.
- Prepare the manual for the new version:
-
Change
$next
parameter on web class to point to the new version number - Copy website manual content from nightly to 1.24 and update version numbers mentioned in it.
- Clean up deprecation and upgrade warnings from nightly manual.
-
Change
-
Refresh unattended templates
-
Sync the community-templates to Foreman core, by running
script/sync_templates.sh
- Create a -stable branch in community-templates
-
Sync the community-templates to Foreman core, by running
- Add new languages that are at a reasonable completion on Transifex to develop
- Generate, backup, sign and upload a GPG key. See GPG_Keys if needed.
-
Publish the key by exporting the GPG key
- Update the website’s security.md and create a file in static/keys
- Create releases/1.24/RPM-GPG-KEY-foreman on yum.theforeman.org
Package build systems
- Create tool_belt config based on the previous release
-
Clone tags and create build targets in Koji:
bundle exec ./tools.rb koji --commit configs/foreman/1.24.yaml
-
Create mash configuration on Koji:
bundle exec ./tools.rb mash-scripts configs/foreman/1.24.yaml scp mash_scripts/foreman/1.24.0/*.mash root@koji.katello.org:/etc/mash/
- Create mash scripts on Koji:
ssh root@koji.katello.org cd /usr/local/bin # create foreman-client-mash-split-1.24.py foreman-mash-split-1.24.py foreman-rails-mash-split-1.24.py based on the unversioned files
- Add new plugin tags to Koji plugins mash script (foreman-mash-split-plugins.py), remove old ones (keep three)
- Add version 1.24 to jobs in axes and/or combination filters, remove old ones (keep three)
- Clone Debian nightly repos to 1.24 using copy/freight instructions
Branch main code repos
-
Create 1.24-stable branches
- foreman
-
foreman-installer
-
bundle exec rake pin_modules && sed -i '/Puppetfile.lock/d' .gitignore && bundle exec librarian-puppet install && git add Puppetfile*
-
- foreman-selinux
- smart-proxy
-
Branch foreman-packaging
-
Create rpm/1.24 and update
packages/foreman/foreman-release/foreman.gpg
,mock/*.cfg
,package_manifest.yaml
,rel-eng/{releasers.conf,tito.props}
andrepoclosure/*.conf
PR - Create deb/1.24
-
Update
.github/PULL_REQUEST_TEMPLATE.md
(by adding[\*] 1.24
to it) inmaster
-
Create rpm/1.24 and update
-
Bump versions to 1.25-develop
echo 1.25.0-develop > VERSION
-
foreman
Also change package.json version field to 1.25.0 - foreman-installer
- foreman-selinux
- smart-proxy
-
foreman
-
Update foreman-packaging:
-
rpm/develop: Update
rel-eng/{releasers.conf,tito.props}
,packages/foreman/foreman{,-{installer,proxy,release,selinux}}/*.spec
-
deb/develop:
scripts/changelog.rb -v 1.25.0-1 -m "Bump changelog to 1.25.0 to match VERSION" debian/*/*/changelog
-
rpm/develop: Update
Other systems
- Create release schedule page for next version (1.25) linked from Development_Resources and post planned schedule on Discourse.
- Create Redmine versions
- Create test_1_24_stable.yaml and test_proxy_1_24_stable.yaml for JJB in foreman-infra, remove the oldest version to keep last 3
- Ensure current Foreman deprecations for the next release are removed in develop
- Add 1.24 to Forklift versions config PR