I agree with mike. I think we should start 4.5 from where master is now Also create a develop branch from master and continue future work for 4.6 there.
I am not clear on how the release branches are going to be maintained. Are we saying we would create 4.5-RELEASE branch which is essentially same as our current -FORWARD branch and continue cherry-picking? I would prefer merges to cherry-picks. Also, I think we should allow committers to commit to the RELEASE branch after discussing about it on dev@ and have RM closely monitor them. Any commit intended for 4.5 RELEASE should be checked in after discussion in the 4.5 Release branch and then merged to develop branch. ~Rajani On 24-Jul-2014, at 1:14 am, Mike Tutkowski <mike.tutkow...@solidfire.com> wrote: > Per earlier e-mails, I don't think we want to start 4.5 where 4.4 left off > and then merge features from develop into 4.5. > > Why don't we instead start 4.5 where master is now with the assumption that > since we are past Feature Freeze for 4.5 that master is stable enough? > > > On Wed, Jul 23, 2014 at 12:56 PM, Daan Hoogland <daan.hoogl...@gmail.com> > wrote: > >> so to start formulate a proposal: >> >> all work shall be done in a new branch (it is advisable to prefix your >> branches with your id) >> when working, features will be cherry-picked/merged into the release >> branch they are for and next into master. >> hotfixes will be done in <branchname>-hotfixes >> >> as transition we will >> >> rename 'master' to 'develop' >> branch a new 'master' from '4.4' >> branch '4.5' from the new 'master' >> merge any features from the new 'develop' to '4.5' and 'master' >> >> >> >> On Wed, Jul 23, 2014 at 6:39 PM, Sebastien Goasguen <run...@gmail.com> >> wrote: >>> >>> On Jul 23, 2014, at 12:30 PM, Sebastien Goasguen <run...@gmail.com> >> wrote: >>> >>>> >>>> On Jul 23, 2014, at 12:21 PM, Nate Gordon <nate.gor...@appcore.com> >> wrote: >>>> >>>>> Let me ask the question, why have master be develop and a release >> branch be >>>>> "master"? If we are going to follow gitflow, why not just stick with >> the >>>>> norm? If master is the development branch, it might not be stable. I >> think >>>>> the goal here is that we have an obvious stable branch. Anyone could >> come >>>>> check out master and have the latest useable. >>>> >>>> I am in favor of following the norm, so ideally master should be our >> stable branch (agreed). >>>> >>>> The issue is with the transition. >>>> >>>> Our latest releasable product is the 4.4 branch (4.4.0 tag), so ideally >> we could start a stable branch of this tag and build up bug fix releases >> all the way to 4.5 from there. >>>> >>>> But all features for 4.5 are already in master. >>>> >>>> So if we create a 'develop' branch of master and stabilize 'master' >> then develop is now started from a stable tag (4.4.0). >>>> >>> >>> *not* started from a stable tag, and merges will be tricky, no ? >>> >>>> So what's the best way to flip ? There is most likely some git magic >> that can we do. >>>> >>>> >>>> The new git workflow and the transition process need to be part of a >> proposal that we get consensus on. >>>> >>>> getting there :) >>>> >>>> -seb >>>> >>>>> >>>>> Also, I'm struggling to understand the benefit of cherry-pick. If you >>>>> completely squash history, you lose a tremendous amount of context, >> which I >>>>> use extensively to figure out why a bug is the way it is. Only knowing >> that >>>>> the branch was merged at a given point in time doesn't give any >> context. >>>>> Seeing the individual commit history of the branch helps to preserve >> the >>>>> rationale for why the code was written the way it was. In theory if >> every >>>>> change starts out as a branch (feature, hotfix, release), then why not >> just >>>>> merge the branch once it is in a good and acceptable state? >>>>> >>>>> I also agree with Mike that this will have to be a transition over >> time. It >>>>> will take some time to clean up master to the point where it can be >>>>> considered a solid stable branch. Possibly as part of the 4.5 release. >>>>> >>>>> >>>>> On Wed, Jul 23, 2014 at 10:51 AM, Sebastien Goasguen <run...@gmail.com >>> >>>>> wrote: >>>>> >>>>>> >>>>>> On Jul 23, 2014, at 11:38 AM, daan Hoogland <daan.hoogl...@gmail.com> >>>>>> wrote: >>>>>> >>>>>>> Sebastien, >>>>>>> >>>>>>> It seems we can do what you are calling for is creating a branch >>>>>>> called 'release'. We can merge back into that branch from 4.4, >> master, >>>>>>> 4.3. I would like to see people that want a feature or bug fix in a >>>>>>> branch make a fork of that branch and when that fork is working do a >>>>>>> cherry-pick. The -forward concept is now used for that but it is >>>>>>> broken because more then for one piece of work there are commits on >>>>>>> it. This caused me conflicts during the release. Especially painfull >>>>>>> as not all was intended to get into the release. We can create this >>>>>>> 'release' branch now on the basis of 4.4 and start pulling in >> changes. >>>>>> >>>>>> Yes, that's what I am thinking about too, so +1 >>>>>> >>>>>> Our master would become the -develop- in gitflow terms >>>>>> The release branch you mention would become the -master- in gitflow >> terms >>>>>> >>>>>> If we start now, indeed we can create 'release' from 4.4 release tag >>>>>> (voted and shipped). >>>>>> >>>>>> That means that to create 4.5 we will need to merge features back into >>>>>> 'release'. it might be messy because some of those features are >> already in >>>>>> our current master. >>>>>> >>>>>> But all of this will keep 'release' clean (we can keep track of bugs >> and >>>>>> features that are in it in CHANGES file etc..) >>>>>> >>>>>> >>>>>>> There is a question of control. Do we allow all committers to manage >>>>>>> the release? I am for that but can imagine not everybody is. >>>>>>> >>>>>> >>>>>> At first I would say that only the RM can commit to 'release'. As we >> get >>>>>> the CI in place we could relax this and allow commits that pass the >> CI to >>>>>> get into 'release', but right now I would vote for a tighter control >> of >>>>>> 'release'. >>>>>> >>>>>>> rule number 1 will be: you are going to do something to the code, you >>>>>>> start by creating a branch. >>>>>>> >>>>>>> right? >>>>>>> >>>>>>> On Wed, Jul 23, 2014 at 5:28 PM, Sebastien Goasguen < >> run...@gmail.com> >>>>>> wrote: >>>>>>>> >>>>>>>> On Jul 23, 2014, at 11:19 AM, Sam Schmit <sam.sch...@appcore.com> >>>>>> wrote: >>>>>>>> >>>>>>>>> Hey everyone, >>>>>>>>> >>>>>>>>> I've been a developer for a handful of years and have had my share >> of >>>>>>>>> experience with different version control systems. I've used (for >>>>>> better >>>>>>>>> or worse) Git, Perforce, Rational ClearCast, and SVN. >>>>>>>>> >>>>>>>>> Each of these solutions offers their own unique set of features, >>>>>> strengths >>>>>>>>> and weaknesses. As there are so many systems that are good at >> specific >>>>>>>>> things, it seems best to use the features that the chosen system is >>>>>> best at. >>>>>>>>> >>>>>>>>> Git is great at branching, merging and using that structure to >>>>>> maintain and >>>>>>>>> control how changes get into the primary branches. Git tools even >> make >>>>>>>>> this easy by integrating directly into the "Gitflow" to make >> branching >>>>>> and >>>>>>>>> merging that much easier. It would seem counter-intuitive to NOT >> make >>>>>> use >>>>>>>>> of these built-in capabilities. >>>>>>>>> >>>>>>>>> In addition to that, I know that the current method of change >>>>>> management is >>>>>>>>> incredibly frustrating to work with, and works directly against the >>>>>> way a >>>>>>>>> typical Git user would expect it to be structured. I should NEVER >> have >>>>>>>>> problem compiling and running something on master. I should not >> have >>>>>>>>> problems building anything on a release branch. A feature/bugfix >>>>>> branch is >>>>>>>>> where things can be, and often are, broken or unstable. There have >>>>>> been >>>>>>>>> many times working in Cloudstack where I've had to search for a >> stable >>>>>>>>> revision on master, and that's just plain wrong. >>>>>>>>> >>>>>>>>> I do realize that having this many developers working on so many >>>>>> features >>>>>>>>> and bugfixes will result in a large number of branches. I don't >>>>>> believe >>>>>>>>> this is a good argument against using a branching method, though - >> I >>>>>>>>> believe that the current system is even more confusing and >> difficult >>>>>> to use. >>>>>>>>> >>>>>>>>> I could pontificate on change management quite a bit more, but my >>>>>> opinion >>>>>>>>> in summary would basically be: use Git the way it was meant to be >>>>>> used, >>>>>>>>> and things will be better. Just my two cents. >>>>>>>>> >>>>>>>>> Sam >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> Sam, I think we are in agreement (at least with folks who responded >> to >>>>>> this thread). >>>>>>>> Or maybe I am not reading your mail right and you don't agree with >> Leo ? >>>>>>>> >>>>>>>> My own take and reason for calling for a change we are currently >> doing >>>>>> things is mostly due to the way we release. >>>>>>>> >>>>>>>> I would like to see a stable master (and I think we are in agreement >>>>>> with that). >>>>>>>> That means that development should not happen on master and that >> every >>>>>> commit that lands on master should be shippable. >>>>>>>> >>>>>>>> I personally have no issues with cherry-picking. So I would be fine >>>>>> cherry picking from a hot-fix branch into master, to fix a bug. >>>>>>>> The end result is that the next commit on master would still mean >>>>>> master is shippable/releasable. >>>>>>>> >>>>>>>> If we agree with this basic concept. The question becomes how do we >> get >>>>>> there, considering that master is now full of dev work and potential >> bug. >>>>>>>> The only releasable product we have are on the 4.3, 4.4 and previous >>>>>> release branches. >>>>>>>> >>>>>>>> Ideally, I would like to see master becomes 4.4. And work our way >> back, >>>>>> merging the new features that are already in master into the new >> master >>>>>> (based on 4.4). >>>>>>>> This could be quite complicated but we need to do it (or something >> like >>>>>> it). >>>>>>>> >>>>>>>> To move forward, we should make a proposal to the list and call for >> a >>>>>> vote. >>>>>>>> >>>>>>>> Any takers to start a wiki page proposing a new git process and how >> we >>>>>> could move to it (transition path) ? >>>>>>>> >>>>>>>> >>>>>>>> -Sebastien >>>>>>>> >>>>>>>> >>>>>>>>> >>>>>>>>> On Wed, Jul 23, 2014 at 5:16 AM, Leo Simons < >>>>>> lsim...@schubergphilis.com> >>>>>>>>> wrote: >>>>>>>>> >>>>>>>>>> Hey folks, >>>>>>>>>> >>>>>>>>>> With 4.4.0 tagged, is now an opportune time to go and implement >> this? >>>>>>>>>> >>>>>>>>>> I would enthousiastically +1 and get crackin', but I’m not a >>>>>> committer so >>>>>>>>>> its not that practical for me to volunteer! >>>>>>>>>> >>>>>>>>>> I wanted to point out atlassian’s description of gitflow >>>>>>>>>> >>>>>>>>>> https://www.atlassian.com/git/workflows#!workflow-gitflow >>>>>>>>>> >>>>>>>>>> which might be easier to read. >>>>>>>>>> >>>>>>>>>> Similarly, the git-flow scripts that help out with implementing >> this >>>>>> stuff >>>>>>>>>> >>>>>>>>>> https://github.com/nvie/gitflow >>>>>>>>>> >>>>>>>>>> they also describe the relationship between gitflow and dealing >> with >>>>>>>>>> multiple remotes >>>>>>>>>> >>>>>>>>>> https://www.atlassian.com/git/workflows#!pull-request >>>>>>>>>> >>>>>>>>>> Finally note atlassian’s free sourcetree GUI has built-in support >> for >>>>>>>>>> git-flow >>>>>>>>>> >>>>>>>>>> http://www.sourcetreeapp.com/ >>>>>>>>>> >>>>>>>>>> Because cloudstack currently is full of rebasing and squashing and >>>>>>>>>> cherry-picking, you get very little benefit from a tree >> visualization >>>>>> tool >>>>>>>>>> (like this or gitk or ...) right now, but it would be *great* to >> have >>>>>> going >>>>>>>>>> forward. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> cheers, >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Leo >>>>>>>>>> >>>>>>>>>> On Jul 1, 2014, at 12:09 AM, Sebastien Goasguen <run...@gmail.com >>> >>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> I would like to re-start this discussion. >>>>>>>>>>> >>>>>>>>>>> Rajani made some good points and someone mentioned Gitflow: >>>>>>>>>>> >>>>>>>>>>> http://nvie.com/posts/a-successful-git-branching-model/ >>>>>>>>>>> >>>>>>>>>>> Thinking about our release procedure, we clearly need more tests >> and >>>>>> a >>>>>>>>>> CI. However it looks like this is going to take some time. >>>>>>>>>>> >>>>>>>>>>> In the meantime I think there is nothing preventing us from >> agreeing >>>>>> to >>>>>>>>>> 'git practices', we don't need tests or new infra, we just need to >>>>>> agree on >>>>>>>>>> the git workflow. >>>>>>>>>>> >>>>>>>>>>> Right now Master is really a development branch, we should make >> it a >>>>>>>>>> stable branch for production with very few commits. >>>>>>>>>>> This does not mean that we would release less, in contrary this >> would >>>>>>>>>> ensure that a commit to master means it's a production release. >>>>>>>>>>> >>>>>>>>>>> In addition gitflow [1] does not do cherry-picks (gets back to >>>>>> Rajani's >>>>>>>>>> point) everything is based on merges. >>>>>>>>>>> >>>>>>>>>>> I am of the opinion that git flow provides a nice process. It >>>>>> basically >>>>>>>>>> freezes master. Development happens in a 'develop' branch, >> releases >>>>>>>>>> branches are branched off of that and merged into master and back >> into >>>>>>>>>> develop….etc >>>>>>>>>>> >>>>>>>>>>> Please read [1] it's a good read. >>>>>>>>>>> >>>>>>>>>>> And let's discuss, >>>>>>>>>>> >>>>>>>>>>> [1] http://nvie.com/posts/a-successful-git-branching-model/ >>>>>>>>>>> >>>>>>>>>>> -Sebastien >>>>>>>>>>> >>>>>>>>>>> On Jun 2, 2014, at 11:58 PM, Rajani Karuturi < >>>>>> rajani.karut...@citrix.com> >>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> There is also the problem of cherry-picking. >>>>>>>>>>>> As a contributor, I always endup creating multiple patches for >> each >>>>>>>>>> branch as they don’t cleanly apply on the upward branches. which >> means >>>>>>>>>> distinct commits for each branch and I don’t easily know which all >>>>>> branches >>>>>>>>>> my commit exists unless I do grep. >>>>>>>>>>>> if we follow merging strategy properly, apart from the first >> merge >>>>>> of >>>>>>>>>> the branch, everything else on top of it should be a painless >> merge. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> ~Rajani >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> On 02-Jun-2014, at 10:51 pm, Marcus <shadow...@gmail.com> >> wrote: >>>>>>>>>>>> >>>>>>>>>>>>> I think many of the bullet points are what we are currently >> doing >>>>>>>>>>>>> (guidelines for commit comments, feature branches need to stay >> in >>>>>> sync >>>>>>>>>> with >>>>>>>>>>>>> master, no back-merging). I also think that much of what we do >> now >>>>>> is >>>>>>>>>> done >>>>>>>>>>>>> the way it is simply because there *are* vast changes between >>>>>> versions. >>>>>>>>>>>>> Classes are getting shuffled around and changed all the time. >> If >>>>>> its >>>>>>>>>>>>> feasible to merge branch fixes to master, that's fine, but some >>>>>> quick >>>>>>>>>> tests >>>>>>>>>>>>> seem to indicate that this will be messy getting started. >>>>>>>>>>>>> >>>>>>>>>>>>> That leaves us with how we do releases. I'm fine with having >> single >>>>>>>>>>>>> branches for major releases(4.3) and tagging the commits where >> each >>>>>>>>>>>>> incremental release (4.3.x) is done. I'm trying to remember >> why we >>>>>> went >>>>>>>>>>>>> with the -forward, I'm sure it's in the mailing list >> somewhere, but >>>>>>>>>> one of >>>>>>>>>>>>> the nice things it provides is the ability for the release >> manager >>>>>> to >>>>>>>>>>>>> control what changes are made during code freeze while giving >>>>>> people a >>>>>>>>>>>>> place to stage fixes (though admittedly this is not always >>>>>> followed). >>>>>>>>>>>>> Without -forward, would the flow be for each dev to have their >> own >>>>>>>>>> repo and >>>>>>>>>>>>> issue pull requests for bugfixes? >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> On Mon, Jun 2, 2014 at 3:17 AM, Rajani Karuturi < >>>>>>>>>> rajani.karut...@citrix.com> >>>>>>>>>>>>> wrote: >>>>>>>>>>>>> >>>>>>>>>>>>>> Any other suggestions/objections/comments?? >>>>>>>>>>>>>> Can we discuss this in detail and agree to a process?? >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> ~Rajani >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> On 02-Jun-2014, at 9:32 am, Rajani Karuturi < >>>>>>>>>> rajani.karut...@citrix.com> >>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>> >>>>>>>>>>>>>>> Yes as mike said, if its a one-off case we can do a empty >>>>>>>>>> merge(merge -s >>>>>>>>>>>>>> ours) for it and git will assume its merged but will not >> bring in >>>>>> any >>>>>>>>>>>>>> changes. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> If the branches diverged a lot, for example after a major >>>>>> rewrite, we >>>>>>>>>>>>>> could stop merging to that branch and above and make the fix >>>>>> manually. >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> ~Rajani >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> >>>>>>>>>>>>>>> On 30-May-2014, at 11:26 pm, Mike Tutkowski < >>>>>>>>>>>>>> mike.tutkow...@solidfire.com> wrote: >>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Yep, that's what I was referring to in that a particular fix >>>>>> for an >>>>>>>>>> old >>>>>>>>>>>>>>>> release may not apply to newer versions. That does happen. >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> We used to mark those as "don't need to merge to branch x" >> in >>>>>> SVN >>>>>>>>>> and >>>>>>>>>>>>>> then >>>>>>>>>>>>>>>> you handed it however made sense on the applicable >> branch(es). >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> On Fri, May 30, 2014 at 11:53 AM, Stephen Turner < >>>>>>>>>>>>>> stephen.tur...@citrix.com> >>>>>>>>>>>>>>>> wrote: >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> What happens if a fix isn't relevant for newer versions, or >>>>>> has to >>>>>>>>>> be >>>>>>>>>>>>>>>>> rewritten for newer versions because the code has changed? >>>>>> Don't >>>>>>>>>> the >>>>>>>>>>>>>>>>> branches diverge and you end up cherry-picking after that? >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>> Stephen Turner >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> -----Original Message----- >>>>>>>>>>>>>>>>> From: Mike Tutkowski [mailto:mike.tutkow...@solidfire.com] >>>>>>>>>>>>>>>>> Sent: 30 May 2014 18:48 >>>>>>>>>>>>>>>>> To: dev@cloudstack.apache.org >>>>>>>>>>>>>>>>> Subject: Re: [PROPOSAL] git workflow >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I think this flow is something we should seriously >> consider. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> I find cherry picking from branch to branch to be error >> prone >>>>>> in >>>>>>>>>> that >>>>>>>>>>>>>> it's >>>>>>>>>>>>>>>>> easy for someone to forget to cherry pick to all applicable >>>>>>>>>> branches >>>>>>>>>>>>>> and >>>>>>>>>>>>>>>>> you don't have any easy way to see the cherry picks are >>>>>> related. >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> When I worked at HP, we had automated tools check to see >> if you >>>>>>>>>>>>>> checked a >>>>>>>>>>>>>>>>> fix into a prior release, but not later releases. In such a >>>>>>>>>> situation, >>>>>>>>>>>>>> you >>>>>>>>>>>>>>>>> either 1) forgot to perform the check-in or 2) the check-in >>>>>> was no >>>>>>>>>>>>>> longer >>>>>>>>>>>>>>>>> applicable in the later release(s), so you needed to mark >> it as >>>>>>>>>>>>>>>>> un-necessary (SVN supported this ability...not sure about >> Git). >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> On Fri, May 30, 2014 at 10:49 AM, Rajani Karuturi < >>>>>>>>>>>>>>>>> rajani.karut...@citrix.com> wrote: >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Hi all, >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Our current git workflow is confusing with the *forward >>>>>> branches >>>>>>>>>> and >>>>>>>>>>>>>>>>>> cherry-picking. Its hard to track on what all releases the >>>>>> commit >>>>>>>>>> has >>>>>>>>>>>>>>>>>> gone into unless I do some git log greping. Also, as a >>>>>>>>>> contributor, I >>>>>>>>>>>>>>>>>> endup creating patches for each branch as it doesn’t >> cleanly >>>>>>>>>> apply on >>>>>>>>>>>>>>>>>> different branches. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> I think we should have some guidelines. Here is what I >>>>>> propose. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> 1. There should be branch for every major release(ex: >> 4.3.x, >>>>>>>>>> 4.4.x, >>>>>>>>>>>>>>>>>> 5.0.x,5.1.x) and the minor releases should be tagged >>>>>> accordingly >>>>>>>>>> on >>>>>>>>>>>>>>>>>> the respective branches. >>>>>>>>>>>>>>>>>> 2. The branch naming convention is to be followed. Many >>>>>> branches >>>>>>>>>>>>>>>>>> with 4.3, 4.3.0, 4.3.1 etc. is confusing >>>>>>>>>>>>>>>>>> 3. Cherry-picking should be avoided. In git, when we >>>>>> cherry-pick, >>>>>>>>>>>>>>>>>> we have two physically distinct commits for the same >> change or >>>>>>>>>> fix and >>>>>>>>>>>>>>>>>> is difficult to track unless you do cherry-pick -x >>>>>>>>>>>>>>>>>> 4. There should always be a continous flow from release >>>>>> branches >>>>>>>>>> to >>>>>>>>>>>>>>>>>> master. This doesn’t mean cherry-picking. They should be >>>>>>>>>> merged(either >>>>>>>>>>>>>>>>>> ff or no-ff) which retains the commit ids and easily >> trackable >>>>>>>>>> with >>>>>>>>>>>>>>>>>> git branch --contains >>>>>>>>>>>>>>>>>> * Every bug fix should always flow from minimal release >>>>>> uptill >>>>>>>>>>>>>>>>>> master. A bug isnt fixed until the fix reaches master. >>>>>>>>>>>>>>>>>> * For ex. A bug 4.2.1 should be committed to >>>>>>>>>>>>>>>>>> 4.2.x->4.3.x->4.4.x->master >>>>>>>>>>>>>>>>>> * If someone forgets to do the merge, the next time a >> new >>>>>> commit >>>>>>>>>>>>>>>>> is >>>>>>>>>>>>>>>>>> done this will also get merged. >>>>>>>>>>>>>>>>>> 5. There should always be a continuous flow from master >> to >>>>>>>>>> feature >>>>>>>>>>>>>>>>>> branches. Meaning all feature branch owners should >> proactively >>>>>>>>>> take >>>>>>>>>>>>>>>>>> any new commits from master by doing a merge from master >>>>>>>>>>>>>>>>>> 6. The commits from feature branch will make to master on >>>>>> code >>>>>>>>>>>>>>>>>> complete through a merge. >>>>>>>>>>>>>>>>>> 7. There should never be a merge from master to release >>>>>> branches >>>>>>>>>>>>>>>>>> 8. Every commit in LTS branch(targetted to any minor >> release) >>>>>>>>>>>>>>>>>> should have atleast bug id and correct author information >>>>>>>>>>>>>>>>>> * Cassandra's template: patch by <author>; reviewed by >>>>>>>>>>>>>> <committer> >>>>>>>>>>>>>>>>>> for CASSANDRA-<ticket> >>>>>>>>>>>>>>>>>> 9. Once the release branch is created(after code freeze), >>>>>> any bug >>>>>>>>>>>>>>>>>> in jira can be marked with fix version current >> release(4.4) >>>>>> only >>>>>>>>>> on >>>>>>>>>>>>>>>>>> RM's approval and only they can go to the release branch. >>>>>> This >>>>>>>>>> can be >>>>>>>>>>>>>>>>>> done through jira and with certain rules.(may be using >> jira >>>>>> vote?) >>>>>>>>>>>>>>>>>> this would save the cherry-picking time and another branch >>>>>>>>>>>>>> maintenance. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Please add your thoughts/suggestions/comments. >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> Ref: >>>>>>>>>>>>>>>>>> >>>>>>>>>> >> http://www.draconianoverlord.com/2013/09/07/no-cherry-picking.html >>>>>>>>>>>>>>>>>> https://www.youtube.com/watch?v=AJ-CpGsCpM0 >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> ~Rajani >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>>> *Mike Tutkowski* >>>>>>>>>>>>>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>>>>>>>>>>>>> e: mike.tutkow...@solidfire.com >>>>>>>>>>>>>>>>> o: 303.746.7302 >>>>>>>>>>>>>>>>> Advancing the way the world uses the cloud >>>>>>>>>>>>>>>>> <http://solidfire.com/solution/overview/?video=play>*™* >>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> -- >>>>>>>>>>>>>>>> *Mike Tutkowski* >>>>>>>>>>>>>>>> *Senior CloudStack Developer, SolidFire Inc.* >>>>>>>>>>>>>>>> e: mike.tutkow...@solidfire.com >>>>>>>>>>>>>>>> o: 303.746.7302 >>>>>>>>>>>>>>>> Advancing the way the world uses the cloud >>>>>>>>>>>>>>>> <http://solidfire.com/solution/overview/?video=play>*™* >>>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Daan >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> >>>>> *Nate Gordon*Director of Technology | Appcore - the business of cloud >>>>> computing® >>>>> >>>>> Office +1.800.735.7104 | Direct +1.515.612.7787 >>>>> nate.gor...@appcore.com | www.appcore.com >>>>> >>>>> ---------------------------------------------------------------------- >>>>> >>>>> The information in this message is intended for the named recipients >> only. >>>>> It may contain information that is privileged, confidential or >> otherwise >>>>> protected from disclosure. If you are not the intended recipient, you >> are >>>>> hereby notified that any disclosure, copying, distribution, or the >> taking >>>>> of any action in reliance on the contents of this message is strictly >>>>> prohibited. If you have received this e-mail in error, do not print it >> or >>>>> disseminate it or its contents. In such event, please notify the >> sender by >>>>> return e-mail and delete the e-mail file immediately thereafter. Thank >> you. >>>> >>> >> >> >> >> -- >> Daan >> > > > > -- > *Mike Tutkowski* > *Senior CloudStack Developer, SolidFire Inc.* > e: mike.tutkow...@solidfire.com > o: 303.746.7302 > Advancing the way the world uses the cloud > <http://solidfire.com/solution/overview/?video=play>*™*