-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Github milestones, fixes impacting multiple releases and moving away from backport strategy #1225
Comments
Steps required to implement that change:
|
What it looks like with various log command / tools (including a few fake commits and the merge commit that aligns
|
I've started with rationalizing the milestones in GH: Names to be refined, but at least the content follows the semantics above: triage milestones / backlogs only contain open issues, precise version milestones contains closed issues ready to ship or open issues that would most likely block the release |
We'll probably switch to this model once |
Sweet :) |
Done on |
This issue is for discussion around changing our process when an issue is needed in both the current development version (
master
branch) and one or more maintenance releases (I'm actually assuming we'll only consider the3.1.x
branch for now).Too Long; Didn't Read version
We're considering switching to an issue triage, github milestone usage and branching model similar to that of Spring Boot (see branching wiki and triage wiki).
So Far
Until now, we've worked exclusively with backports, which we've always decided on doing after the original issue was fixed. It usually goes like this:
master
branch, and an issue is createdmaster
)master
GEN.MAJOR
(eg. ifmaster
is3.2.x
then we decide we also want to release the fix in the3.1.x
cycle)master
to3.1.x
by cherry-pick3.1.x
milestone that will list the backportsport
, and reference the original commit AND the tracker issue in the commit message bodyThis is somewhat convoluted from a process perspective and although it makes it possible to see which fixes were backported from GitHub's UI, it is still hard. Also, from a git tooling perspective things are not so rosy (one can follow from the backport to the original fix by looking at the whole commit message, but the reverse is not possible).
Proposal: switch to a
git merge
schemeThis is inspired by what the Spring Boot team does.
Here is how it would go:
3.2.x
3.1.x
. If it is, we decide wether or not it is impacting enough that it should be fixed in a maintenance release3.1.x
, multiple reviews on the PR can lead to multiple commits but we still prefersquash-and-merge
where possible to result in a single commit on3.1.x
after the merge of the PR3.1.x
branch is merged forward intomaster
(git merge --no-ff 3.1.x
)Pros
The upside is that when it is in a maintenance branch, this process would guarantee that it is also in all subsequent maintenance branches AND master. It would also result in a single commit for the fix in all branches (plus GEN.MAJOR specific adjustments in the merge commit).
Cons
It adds noise in the commit history with merge commits, which should be made minimally descriptive:
GitHub milestones and release contents / release notes
Rationalizing our usage of GitHub milestones would also be beneficial with this scheme. Here is something that could work for us (again following the Spring Boot model):
.RELEASE
milestones (or.M1
, etc...) that match an exact release and reflect what is contained in this release and ready to ship with it.For instance, with a
master
that contains active development on 3.2.0, with a second milestone in the near future and a planned maintenance release of 3.1.8.RELEASE, we would have milestones for triage:[icebox]
(formerly[backlog]
): issues that we want fixed at some point in the future but don't know when[backlog]
: issues that we want fixed in the next feature release (3.2.0)3.1.x
: issues that we definitely want fixed within 3.1.x, but not necessarily in 3.1.83.2.x
: issues that we definitely want fixed within 3.2.x, but not necessarily in 3.2.0And milestones for shipping/tracking representative progress:
3.1.8.RELEASE
: issues that are fixed from3.1.x
backlog are moved here. Open issues can also be affected here if we absolutely need that issue fixed in that particular version3.2.0.M2
: we're preparing a milestone 2 for 3.2.0 and issues that will ship with it are moved to this gh milestone, from[backlog]
, when merged. Open issues can also be affected here if we absolutely need that issue fixed in that particular versionThe text was updated successfully, but these errors were encountered: