Foreman 3.5.3 release process

Make this post a wiki

Roles

Preparing code: 2023-04-24

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

  • Add a new Redmine version for the next minor, unless the series is EOL. Be sure the version is set to sharing with subprojects.
  • Remove/change target version field for any open Redmine tickets assigned to the release still (next minor, unset it or reject)
  • Ensure that code in git matches issues fixed in 3.5.3 in redmine. issues.rb can be used to generate a comparison between the two.
  • Change Redmine version 3.5.3 state to Closed

Tagging a release: 2023-04-24

Release Owner

Release Engineer

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: 2023-04-24

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

Background documentation

Manual updates: 2023-04-24

Release Owner

After the packages have been released

Release Owner

I’m currently setting up theforeman-rel-eng but I need access to the Foreman infra. I created a post requested that access with a PR: Ianballou - access to Foreman infra for releases

@ekohl I’m guessing that “Make patch releases of installer modules that have important changes…” is not applicable here?

No CPs appear to be needed from the 3.5.3 TODO – the Bug #35578: NetPlan templates broken when using Dual Stack environments - Foreman issue was cherry-picked in for Foreman 3.5.0.rc2

Edit – I found one commit that didn’t make it in: Refs #35578: preseed_netplan_generic_interface with DHCP interface by drkp · Pull Request #9527 · theforeman/foreman · GitHub

1 Like

I’m stuck on push_tags at the moment. I was able to push fine to Foreman, but I’m having troubles with foreman-installer, foreman-selinux, and smart-proxy. The error says:

remote: error: GH006: Protected branch update failed for refs/heads/3.5-stable.
remote: error: 2 of 2 required status checks are expected.
To github.com:theforeman/smart-proxy
 * [new tag]         3.5.3 -> 3.5.3
 ! [remote rejected] 3.5-stable -> 3.5-stable (protected branch hook declined)
error: failed to push some refs to 'github.com:theforeman/smart-proxy'

so it may just be an issue with smart-proxy.

Hmm yes it is. I experimented with the required checks which must pass before you can push, which allows enabling the GitHub auto-merge.feature I’ve dropped that for now and disabled auto-merge. Then I’ll need to think again about the process, if we can find a way to have both protected branches and a smooth process.

Please try to push again.

1 Like

@ekohl getting closer, I was able to push smart-proxy and foreman-selinux but not foreman-installer.

Also re: protected branches… on Katello we require PRs for everything. I suppose it’s better that way for Katello since we sometimes have very new people running the process. I don’t mind having a little extra work to protect the branches.

Oh yes, exactly the same thing. It didn’t occur to me to check other repos, but I’ve modified the installer too now.

In the future what you can do is open a PR and then once the check passed do a fast forward push.

1 Like