Thank You Adam. I think I get it now. I'll favor A over Alt 1 by a little bit.
+1 A +1 B Regards Swapnil On 12/4/15, Adam Bordelon <a...@mesosphere.io> wrote: > Swapnil, the two approaches are indeed similar. I think of my proposal as > extracting the core idea from Alt 1. Let me try to explain the differences. > With my Proposal A, we would only need the following long-lived branches: > master - Where to put feature work and everything else. > 0.1.x - Contains 0.1.0, 0.1.1, etc. release candidates, patches, and the > stable release tag. > 0.2.x - Contains 0.2.0, 0.2.1, etc. release candidates, patches, and the > stable release tag. > ... > > With the "nvie" (Alt 1) approach, there are more branches to manage. > develop - Where to put feature work for upcoming releases. > 0.1.0 - A temporary branch cut from 'develop' branch to prepare the 0.1.0 > release. > 0.1.1 - A temporary branch cut from '0.1.0' tag to prepare the 0.1.1 > release. > 0.1.... > 0.2.0 - A temporary branch cut from 'develop' branch to prepare the 0.2.0 > release. > ... > master - Merge each new stable release in as the new HEAD of master. > > The difference in philosophy is that in the "nvie" approach, you check out > master to get the latest stable release, and you check out 'develop' to get > the bleeding edge, latest code. In my proposal, you check out master to get > the latest code; and you check out the numerically largest (non-rc) tag to > get the latest stable release. In either case, the release branches are for > release preparation, except that my approach reuses the same branch across > multiple patch releases. > > Let me know if you need any further clarification between the approaches. > And please vote -1 if you actually oppose Proposal A, in favor of > Alternative 1. Otherwise, we can just go with lazy consensus, and I'll > consider Proposal A accepted on Monday if it's still the majority vote > (among its alternatives). > > > On Thu, Dec 3, 2015 at 10:30 PM, Swapnil Daingade < > swapnil.daing...@gmail.com> wrote: > >> I did not understand the difference between Proposal A and Alt 1 (the way >> Adam described it). >> Seem quite similar to me >> >> +1 A or Alt1 >> +1 B >> >> Regards >> Swapnil >> >> >> On Fri, Dec 4, 2015 at 8:42 AM, Darin Johnson <dbjohnson1...@gmail.com> >> wrote: >> >> > My experience with alt 1 is it takes a lot of discipline or it devolves >> > into develop just being master. I'd be curious how others have found >> > it. >> > On Dec 3, 2015 10:07 PM, "Darin Johnson" <dbjohnson1...@gmail.com> >> wrote: >> > >> > > +1 A, +1 B. >> > > On Dec 3, 2015 7:12 PM, "Sarjeet Singh" <sarjeetsi...@maprtech.com> >> > wrote: >> > > >> > >> +1 for Proposal A -> Alt 1, and +1 for Proposal B. >> > >> >> > >> Should we also maintain 'develop' & 'master' branch as described on >> > >> nvie.com, >> > >> it was easy to read through the branching model, and understand the >> > >> branching flow without any complexity involved? >> > >> >> > >> Btw, Good pro/con list with references. thanks Adam!! >> > >> >> > >> -Sarjeet >> > >> >> > >> On Thu, Dec 3, 2015 at 2:49 PM, Santosh Marella < >> smare...@maprtech.com> >> > >> wrote: >> > >> >> > >> > Yup. >> > >> > >> > >> > +1 for Proposal A -> Alternative 1. >> > >> > +1 for Proposal B >> > >> > >> > >> > Santosh >> > >> > >> > >> > On Thu, Dec 3, 2015 at 1:03 PM, yuliya Feldman >> > >> <yufeld...@yahoo.com.invalid >> > >> > > >> > >> > wrote: >> > >> > >> > >> > > I fully second Todd. >> > >> > > Thanks,Yuliya >> > >> > > From: Todd Richmond <trichm...@maprtech.com> >> > >> > > To: dev@myriad.incubator.apache.org >> > >> > > Sent: Thursday, December 3, 2015 8:59 AM >> > >> > > Subject: Re: [PROPOSAL(s)] Use Release Branches, and Delete >> > Obsolete >> > >> > > Branches >> > >> > > >> > >> > > excellent pro/con list >> > >> > > >> > >> > > +1 for either A or + .5 for Alt 1. A branch is easy to follow >> > >> > > and >> > >> allows >> > >> > > for long term patch support. Each new 0.x.y patch release >> > >> > > becomes >> > the >> > >> > only >> > >> > > “supported” 0.x version but more than one “x” can be supported >> > >> > > simultaneously >> > >> > > >> > >> > > Alt 2 tags work best when you release very often (such as >> > >> > > monthly) >> > to >> > >> > > users who are willing to upgrade and so can quickly deprecate >> > previous >> > >> > > releases. Cherry-picking is more manual effort and possibly >> > >> > > error >> > >> prone >> > >> > as >> > >> > > the committer count grows >> > >> > > >> > >> > > +1 for proposal B. feature branches can usually be done on >> > >> > > private >> > >> forks >> > >> > > instead and should definitely be removed once the feature is >> merged >> > to >> > >> > > develop >> > >> > > >> > >> > > Todd >> > >> > > >> > >> > > >> > >> > > >> > >> > > >> > >> > > > On Dec 3, 2015, at 12:36 AM, Adam Bordelon >> > >> > > > <a...@mesosphere.io> >> > >> wrote: >> > >> > > > >> > >> > > > Proposal A: Use Release Branches >> > >> > > > I propose that we create a '0.1.x' branch that will contain >> > >> > > > all >> of >> > >> the >> > >> > > > 0.1.0-rc tags, the final 0.1.0 release tag, and any tags >> > >> > > > related >> > to >> > >> > > hotfix >> > >> > > > releases on top (0.1.1, 0.1.2). A hotfix release like 0.1.1 >> > >> > > > can >> > >> > > cherry-pick >> > >> > > > fixes from master directly on top of the 0.1.0 tag in the >> > >> > > > 0.1.x >> > >> branch, >> > >> > > and >> > >> > > > we'll iterate on its rc's in the 0.1.x branch. Development for >> > >> > > > features/fixes for 0.2.0 go into the master branch, and >> > >> > > > whenever >> > >> 0.2.0 >> > >> > is >> > >> > > > feature-complete/ready, we'll cut the new '0.2.x' branch from >> > master >> > >> > and >> > >> > > > tag a 0.2.0-rc1, then cherry pick any necessary fixes from >> master >> > >> into >> > >> > > > 0.2.x, for future release candidates and hotfix releases. >> > >> > > > + Easy to create/review github PRs to merge fixes into release >> > >> > candidates >> > >> > > > and hotfix releases. >> > >> > > > + Release candidates and hotfixes are handled in the >> > >> > > > appropriate >> > >> > release >> > >> > > > branch, while normal development can continue in master. >> > >> > > > + Minimal additional branches/commands required; no need for >> > >> ephemeral >> > >> > > > branches for each release (candidate). >> > >> > > > >> > >> > > > Alternative 1: Follow >> > >> > > > >> > >> > >> > >> >> > http://nvie.com/posts/a-successful-git-branching-model/#release-branches >> > >> > > > My proposal is similar to the model described by nvie except >> that >> > we >> > >> > use >> > >> > > > the myriad 'master' branch for what he calls the 'develop' >> branch, >> > >> and >> > >> > we >> > >> > > > use our 0.1.x,0.2.x release branches as longer-lived branches >> for >> > >> > hotfix >> > >> > > > releases. (Note: Feature branches are a separate discussion, >> > >> unrelated >> > >> > to >> > >> > > > release management.) >> > >> > > > + Easy to follow guide. >> > >> > > > + Good separation of concerns/responsibility. >> > >> > > > - Doesn't explain how release candidates are handled. >> > >> > > > - So many branches. >> > >> > > > >> > >> > > > Alternative 2: Use tags for releases, no branches (like Mesos >> > does) >> > >> > > > See the discussion at: >> > >> > > > >> > >> > > >> > >> > >> > >> >> > >> http://stackoverflow.com/questions/9810050/git-tag-vs-release-beta-branches >> > >> > > > + No mess of branches in the repo; no merging between >> > >> > > > branches. >> > >> > > > + Since release candidates and releases are cherry-picked and >> > >> tagged, >> > >> > > > normal development can continue on master without >> > >> > > interruption/corruption. >> > >> > > > - Github PRs cannot use a tag (Dealbreaker?). >> > >> > > > http://stackoverflow.com/a/12279290/4056606 >> > >> > > > >> > >> > > > Please let me know your thoughts on release branches. I went >> ahead >> > >> and >> > >> > > > created the '0.1.x' branch from the 0.1.0-rc3 tag so you can >> check >> > >> it >> > >> > out >> > >> > > > and play around, and so you can push 0.2.0 features to master >> > >> without >> > >> > > > worrying about messing up the 0.1.0 release. We can >> > >> > > > cherry-pick >> > any >> > >> > > > rc4/0.1.1 patches out of master, and we can always >> > >> delete/rename/reorg >> > >> > > the >> > >> > > > release branch later if desired. >> > >> > > > >> > >> > > >> > >> > >> > >> >> > >> https://git-wip-us.apache.org/repos/asf?p=incubator-myriad.git;a=shortlog;h=refs/heads/0.1.x >> > >> > > > >> > >> > > > >> > >> > > > >> > >> > > > Proposal B: Delete all these obsolete branches from the Apache >> git >> > >> > repo: >> > >> > > > 9/23/15 phase1 (72 behind master) >> > >> > > > 8/12/15 constraints (kensipe) >> > >> > > > 8/12/15 myriadha (kensipe) >> > >> > > > 8/10/15 issue_14 (smarella) >> > >> > > > 7/17/15 executor-only-application (kensipe) >> > >> > > > 6/11/15 multi-project (kensipe) >> > >> > > > 6/11/15 docker-image (kensipe) >> > >> > > > 3/04/15 issue_16 (mohit) >> > >> > > > If nobody speaks up to save any/all of these, I'll delete them >> > next >> > >> > week. >> > >> > > > (Note that most of these still live on in the old github repo, >> if >> > >> you >> > >> > > look >> > >> > > > closely.) >> > >> > > >> > >> > > >> > >> > > >> > >> > > >> > >> > >> > >> >> > > >> > >> >