Improvements in the release process

In my quest of making releases a smooth and easy process, I’ve added more scripts and enhanced things. There’s still a list of open PRs and I’m going to describe it here.

There’s a group of PRs around the tool_belt config, which affects mashing. Further script the mash config handling by ekohl · Pull Request #213 · theforeman/theforeman-rel-eng · GitHub expands scripting and Utilize the improved mash scripts in theforeman-rel-eng by ekohl · Pull Request #526 · theforeman/tool_belt · GitHub utilizes this to shorten the procedure. That’s pending review, but I also started to work on the Katello side of things. Currently in progress: Add Katello compatibility to tool_belt config generation by ekohl · Pull Request #214 · theforeman/theforeman-rel-eng · GitHub with Rely on a script in theforeman-rel-eng to start tool_belt config by ekohl · Pull Request #527 · theforeman/tool_belt · GitHub as procedure update. Mostly because Katello is a bit special.

Add a script to generate the schedule by ekohl · Pull Request #209 · theforeman/theforeman-rel-eng · GitHub makes creating the a release schedule easier. Mistakes were made, but I could have done the same mistakes manually :wink: Make the Foreman schedule post more descriptive by ekohl · Pull Request #528 · theforeman/tool_belt · GitHub will make use of this.

And Add a script to draft the release announcement by ekohl · Pull Request #208 · theforeman/theforeman-rel-eng · GitHub makes release announcements easier. Again, there’s a tool_belt component to it: Use the release_announcement script by ekohl · Pull Request #529 · theforeman/tool_belt · GitHub

Overall Add prodecure commands and document the process by ekohl · Pull Request #212 · theforeman/theforeman-rel-eng · GitHub will become an entry point to the whole release process in terms of documentation.

Then just a quality of life improvement, but also security: Avoid using the paste buffer to pass passwords by ekohl · Pull Request #198 · theforeman/theforeman-rel-eng · GitHub removes the paste buffer from the process by providing the passwords securely. I haven’t verified it yet, so still a draft.

Some readers may also wonder: why split the two? Wouldn’t be easier to have a single repository? And that brings me to my next point: can we get rid of tool_belt? For Foreman we only use it for Koji and having the procedures defined. Given that we’re investigating replacing Koji with Copr (Investigate Copr as the build system · Issue #1795 · theforeman/foreman-infra · GitHub), it would only leave the procedure part. On the other hand, I think Katello uses it for cherry picks too. For now I’m going to suggest to move procedures to theforeman-rel-eng and make that our primary repository for dealing with releases.