While I'm always happy to write RFCs (or PRs against RFCs), I don't think it
makes any sense for a non-Chef-employee to write one around
release-engineering since (a) only Chef-employees will be doing it
(justifiably) for the forseeable future and (b) it has to fit into your guys'
workflow and tools.
But I'm happy to help figure out a process. How about something like this -
please feel free to modify/hackup/etc.:
* At freeze-date, releaser must:
* search for "is:closed milestone:X.Y.Z" and either:
* cherry-pick to release branch OR
* comment that we're not pulling it in for reason Q (and add a later milestone)
* search for "is:open milestone:X.Y.Z" and either:
* merge to master & merge to to release branch *IF* it was ready already OR
* change the milestone
* _IF_ the release is X.Y.0 then repeat the above 2 steps for
"milestone:X.Y-1.Z+1"... i.e if the last release was 12.3.1 and we're
releasing 12.4, we should check for anything tagged for 12.3.2.
* Close the aforementioned milestones
* Add milestones for the next anticipated minor and bugfix release (assuming
a release of, say 12.3.1, he or she would add 12.3.2 and 12.4.0).
* Add a milestone for <release>-rcfix
* Do build
I'm more in favor of the rc being cut off of master and that's the freeze. Anything that was in the minor milestone that wasn't merged to master gets bumped to the next milestone. The only thing that gets cherry-picked to the rc branch after that is bugfixes.
Releases take so much time that I don't think any more burden should be placed on the person shepherding the release. I also think that any more process than this simply won't get followed correctly and that people doing the release will just continually make mistakes. We need to make it easy on that person to get their job done because the release job already sucks hard enough as it is.
Archive powered by MHonArc 2.6.16.