[ofiwg] managing stable branches
sean.hefty at intel.com
Tue Nov 28 10:14:06 PST 2017
> 1. The developer knows at commit creation time that the commit needs
> to be cherry picked to a release branch. The developer therefore
> puts "TOKEN:VERSION" in the commit message. At some point later,
> the developer scours the git logs looking for their commits with
> "TOKEN:VERSION" so that they can cherry pick them to the release
This is my intent. Currently, I'm left scanning the entire git log on master from the current date back to the date of the last branch release. Based on the git log, I make a guess if it's stable material or not. It's much easier to cherry-pick when I know which commits to pick.
> 2. The developer *doesn't* know at commit creation time that it
> needs to be cherry picked to a release branch. In this case, the
> developer puts "TOKEN:master" in the commit message. Later, the
> developer won't be able to scour git logs looking for what needs to
> be cherry picked.
I actually think this will be less likely. If it's a bug fix, it should be considered a candidate for the stable branches. But, yes, there's always a chance that a fix won't find its way into stable.
> 2. The majority of commits only need to go to master. Adding
> "TOKEN:master" strings to all of those commits seems like it does
> not optimize for the common case.
I don't see any reason to use TOKEN:master -- the fact the PR is against master is enough to indicate that. Likewise, PRs can still target specific branches.
> I think that if a developer knows that a commit needs to go to a
> release branch, he/she should put a label on the master PR
> containing the commit(s) that need to be cherry picked that will
> remind the developer to make a release branch PR when that master PR
> is merged.
The problem is that the label is a github gui thingy. There's no easy way to get from the label to the commit, so that it can be cherry-picked. (At least that I know of.) Github doesn't have a nice cherry-pick utility, so git needs to be used directly. Scanning labels off a web page, matching them with a commit id, re-typing that into an stg pick command is a lot more work than having a script scan for labels embedded within the commit message.
I'm not going for perfect here, just better.
More information about the ofiwg