Katello 4.20 branching process

This procedure was generated from procedures/katello/branch.md.erb at 7a1fd2aa8020026ecbe6dc50f23e0fc3676b9155

Make this post a wiki (help)

Roles

Four Weeks Prior to Branch Date: 2026-01-13 to 2026-01-17

Release Owner

  • Start attending upstream release sync meetings and giving updates
  • Announce upcoming branching to Discourse development category a month before
  • Update Katello Transifex translations:
    • Create a Transifex account and join the Foreman team
    • Spin up a Foreman and Katello installation
    • Install the Transifex cli client. Only the first curl command is necessary.
    • Install grunt-cli
    • grunt i18n:extract in the katello/engines/bastion_katello directory
    • make -C locale tx-pull in the katello directory
    • grunt i18n:compile in the katello/engines/bastion_katello directory
    • bundle exec rake plugin:gettext[katello] in the foreman directory
    • bundle exec rake plugin:po_to_json[katello] in the foreman directory
    • make -C locale mo-files in the katello directory
    • Add any uncommitted translation files and open a PR to Katello (no Redmine issue needed)

Three Weeks Prior to Branch Date: 2026-01-20 to 2026-01-24

Release Owner

  • Ensure that issues requiring installer changes are merged

Prep week: 2026-01-27 to 2026-01-31

Release Owner

  • Commit the settings file to the theforeman-rel-eng repository. See an example here
  • Add tool_belt config for new release:
    • Create a new yaml file using the nightly Katello config as a template: tool_belt configs
    • Manually update the following sections:
      • releases: update to current release. Move the previous ‘current’ release to prior_releases below.
      • prior_releases: Remove the oldest prior_release (check with that release owner first to see if there’s a reason it should stay)
      • repos: Update branch names to current versions, including any new releases that need to happen
      • ignores: Delete all items from this list and start fresh (this will be used for cherry-picks later)
      • tags: update Katello version number in all values. Check the nightly config to see if any tags/repos need to be updated
    • Open a PR to tool_belt with the new config file
  • Coordinate with installer maintainers that expected changes are completed.
  • Review the Foreman schedule and planning (example) and note the date of the first scheduled release candidate.

Branching: 2026-02-10

Release Owner

  • Create the KATELLO-4.20 branch using branch_project
  • Push the KATELLO-4.20 branch using branch_push
  • Bump versions to 4.21-master using develop_branch_bump
  • Push version bumps to 4.21-master using develop_branch_push
  • Bump Katello related packages to their next versions
  • Set GitHub Actions to use the new branch: sed -i '/foreman_version/ s/develop/-stable/' .github/workflows/*.yml
  • Set Packit to use the new branch: sed -i 's/develop//; /theforeman.org.katello/ s/nightly/4.20/; /theforeman.org/ s/nightly//' .packit.yaml
  • Generate and post the release procedure, if not already posted:
  • Prepare “Katello Next” and future redmine versions
    • Rename the “Katello Next” release to Katello 4.21.0
    • Recreate the “Katello Next” release and indicate that it is a placeholder for issues belonging to the next version of Katello
    • Create the “Katello 4.20.1 TODO” custom query using the last one as a template