Katello 4.0 Branching Process

Reminder that Katello branch day for the 4.0 release is Feb 3, 2021.

After discussion during the [Release meeting notes 2021-02-01](https://release sync meeting) Katello branching to 4.0 will be delayed until at least Feb 3, 2021.

Branch Date Feb 1 2021
Stabilization Week Jan 25th through Jan 29th, 2021

One Month Prior to Branch Date - Jan 1 2021

Release Owner

  • Announce upcoming branching to discourse development category a month before
  • Start extracting i18n strings and pushing the changes into master git branches so Transifex can pick it up
  • Update Katello Transifex translations:
    • Create a Transifex account and join the Foreman team
    • Spin up a Foreman and Katello installation
    • Install Transifex client pip3 install transifex-client --user
    • Configure the Transifex client
    • Install grunt
    • grunt i18n:extract in the katello/engines/bastion_katello directory
    • make -C locale tx-update in the katello directory
    • grunt i18n:compile in the katello/engines/bastion_katello directory
    • bundle exec rake plugin:gettext[katello] in the foreman directory
    • Commit the resulting files in the katello directory with a message like “i18n - pulling from tx”

Two Weeks Prior to Branch Date (Jan 18 2021)

Release Owner

  • Add tool_belt config for new release tool_belt configs
    • Check the nightly config file if any repos/tags need to be updated in the newly created config.
  • Ensure stable Pulp release

Release Packager

  • Ensure tool_belt config is merged and output from ./tools.rb koji configs/katello/4.0.yaml matches expectations

On Branch Date (Feb 3 2021)

Release Owner

  • Create KATELLO-4.0 branches

  • Bump versions to 4.1-master

  • Create PR to foreman-infra to add a mapping between the current Foreman and Katello release branches. Also remove the oldest mapping from the config. See this example.

  • Branch docs

    • Use ./tools branch-docs config/katello/4.0.yaml to branch automatically or by hand:
    • Draft release notes in markdown (example), with these sections (and do not use personal pronouns):
      • Headline features: half a dozen important features with a few sentences description each
      • Upgrade notes: all important notices that users must be aware of before upgrading
      • Release notes: bullet point list by category of most changes, excluding bug fixes for issues introduced during the release cycle, include link to bug numbers. You can auto-generate changes using the ‘changelog’ command in tool_belt
      • Add contributor list on release notes page ex git shortlog -s KATELLO-3.17..KATELLO-3.18
  • Update API docs and open a PR with the changes:

    VERSION=
    GITDIR=~/git  #directory containing theforeman.org git repo
    
    FOREMAN_APIPIE_LANGS=en rake apipie:cache
    cp -rf public/apipie-cache/* $GITDIR/theforeman.org/plugins/katello/$VERSION/api
    find $GITDIR/theforeman.org/plugins/katello/$VERSION/api -name "*.json" -type f -delete
    sed -i "/layout: /d" $GITDIR/theforeman.org/plugins/katello/$VERSION/api/index.md
    

Release Packager

FYI: I moved it to the releases section and made it a wiki. For Foreman’s branching procedure we actually have it as step 0 because we sometimes forgot. Then @tbrisker and I could change things because we happen to be admins here, but that’s not how it’s supposed to work :slight_smile:

1 Like

Thanks @ekohl !