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.
- Prepare the manual for the new version:
-
Change
$latest
and$next
parameters on web class to point to the new version numbers - Copy website manual content from nightly to 1.23 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.23/RPM-GPG-KEY-foreman on yum.theforeman.org
Package build systems
- Clone tags and create build targets in Koji
- Create mash scripts and configuration on Koji
- Add new plugin tags to Koji plugins mash script (foreman-mash-split-plugins.py), remove old ones (keep three)
- Add version 1.23 to jobs in axes and/or combination filters, remove old ones (keep three)
- Clone Debian nightly repos to 1.23 using copy/freight instructions
-
Include Rails repository
- Add foreman-rails-1.23-rhel7 tag entries to Foreman tool_belt config
- Add mash script config entry to tool_belt config: foreman-rails-1.23-rhel7
- Copy mash script config to Koji
- Add foreman-rails-mash-split-1.23.py to Koji /usr/local/bin
-
Add foreman-client
- Add client tag configuration to tool_belt config
- Clone tags and create build targets
- Create mash scripts and transfer to Koji
- Create release job in foreman-infra, example
Branch main code repos
-
Create 1.23-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.23
-
update
packages/foreman/foreman-release/foreman.gpg
,mock/*.cfg
,package_manifest.yaml
,rel-eng/{releasers.conf,tito.props}
andrepoclosure/*.conf
-
update
- Create deb/1.23
-
Update
.github/PULL_REQUEST_TEMPLATE.md
(by adding* 1.23
to it) inmaster
-
Create rpm/1.23
-
Bump versions to 1.24-develop
echo 1.24.0-develop > VERSION
-
foreman
Also change package.json version field to 1.24.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.24.0-1 -m "Bump changelog to 1.24.0 to match VERSION" debian/*/*/changelog
-
rpm/develop: Update
Other systems
- Create release schedule page for next version (1.24) linked from Development_Resources and post planned schedule on Discourse.
- Create Redmine versions
- Create test_1_23_stable.yaml and test_proxy_1_23_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.23 to Forklift versions config
This was based on the wiki procedure and sometimes has a bit more info.