This sounds like an end goal that we shouldn't try to reach in one go.
Let's take baby steps.

On Fri, Aug 8, 2014 at 1:28 PM, Rohit Yadav <rohit.ya...@shapeblue.com> wrote:
> Hi,
>
> Vincent (nvie) has allowed me to share his email publicly, here you go:
>
> "
> Hi Rohit,
>
> Thanks for reaching out. I don't think git-flow suits your use case very 
> well. Git flow was mainly optimized as a set of rules to help bring forth 
> "forward-only" releases, and does not support multiple concurrent and 
> non-chronological releases very well. The main reason is that getting all the 
> details down leads to much complexity. Back when the git-flow model was 
> devised it was meant to be a rule set that could be automated, and aimed at a 
> single release stream. Adding multiple concurrent releases would 
> significantly complicate the model.
>
> I have no advice on what model would work better for you. Of course you could 
> make a variant of git-flow that works with multiple "master" branches, one 
> for each release, but the exact semantics of which of those to merge hot 
> fixes in, for example, are not documented somewhere formally.
>
> Cheers,
> Vincent
> “
>
> On 08-Aug-2014, at 9:23 am, Daan Hoogland <daan.hoogl...@gmail.com> wrote:
>
>> Rohit, this is not a git-flow or gitflow discussion. It seems to be at
>> times but it is not. It is a discussion about how to branch in our
>> repository. That discussion should not end, but maybe so in this
>> thread.
>>
>> On Fri, Aug 8, 2014 at 9:19 AM, Rohit Yadav <rohit.ya...@shapeblue.com> 
>> wrote:
>>> Hi all,
>>>
>>> Let’s end this discussion thread.
>>>
>>> I asked Vincent (nvie) and some friends from google and facebook on this 
>>> and all of them recommended that this is not for us; then I read the whole 
>>> thread again without prejudice or ego and I think it’s not for us though we 
>>> should pick up couple of good ideas from it:
>>>
>>> - git-flow was designed for only “forward” releases
>>> - git-flow does not support multiple concurrent and non-chronological 
>>> releases/support very well (no nvie documentation on how to do that)
>>>
>>> Instead, if you’re interested on such topic I started a proposal (inspired 
>>> by couple of workflows) on solving cherry-picking issue by adapting our 
>>> release/master workflow please have a look on that. Some good reads on 
>>> other git workflows we can get ideas from;
>>>
>>> http://blogs.atlassian.com/2013/11/the-essence-of-branch-based-workflows 
>>> (my new proposal uses this idea)
>>> https://www.kernel.org/pub/software/scm/git/docs/gitworkflows.html (read 
>>> this at least once)
>>>
>>> PS. Let me know privately if you want me to forward you Vincent’s email
>>>
>>> On 07-Aug-2014, at 11:52 pm, Mike Tutkowski <mike.tutkow...@solidfire.com> 
>>> wrote:
>>>
>>>> This is what I was wondering about, as well. It seems all of our 'master'
>>>> problems become 'develop' problems.
>>>>
>>>> I do like the idea of merging versus cherry picking (as a general rule),
>>>> though.
>>>>
>>>>
>>>> On Thu, Aug 7, 2014 at 3:47 PM, Alena Prokharchyk <
>>>> alena.prokharc...@citrix.com> wrote:
>>>>
>>>>> Sebastian, addressing the following comment of yours
>>>>>
>>>>>
>>>>> "The main issue with master right now is that it moves really fast as a
>>>>> shared branch, people merge features without warning, we see regressions
>>>>> etc..
>>>>> By the time we release a major version, master has moved so much that it
>>>>> feels like starting over with the next release. It's almost as if we are
>>>>> forking our own software. CI alone (even if it were really good) will not
>>>>> fix this.”
>>>>>
>>>>>
>>>>> You will still have this problem. You cut the next release branch from the
>>>>> *develop branch, not from master. And the *develop branch will move with
>>>>> the same pace as the old master, after the release branch is cut. So
>>>>> “master moving really fast” problem would become “develop moving really
>>>>> fast”.
>>>>>
>>>>> The problems you’ve mentioned - people merge features without warning, we
>>>>> see regressions - can be fixed only with automation in place and the
>>>>> requirement to run this automation (CI/BVT) before the merge is done.
>>>>> Otherwise you are just shifting all existing problems from master to
>>>>> develop.
>>>>>
>>>>>
>>>>> -Alena.
>>>>>
>>>>>
>>>>>
>>>>> On 8/7/14, 2:15 PM, "Sebastien Goasguen" <run...@gmail.com> wrote:
>>>>>
>>>>>>
>>>>>> On Aug 7, 2014, at 4:51 PM, Alena Prokharchyk
>>>>>> <alena.prokharc...@citrix.com> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 8/7/14, 1:42 PM, "Sebastien Goasguen" <run...@gmail.com> wrote:
>>>>>>>
>>>>>>>>
>>>>>>>> On Aug 7, 2014, at 8:33 AM, David Nalley <da...@gnsa.us> wrote:
>>>>>>>>
>>>>>>>>> On Thu, Aug 7, 2014 at 3:38 AM, Sebastien Goasguen <run...@gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>> On Aug 6, 2014, at 7:15 PM, David Nalley <da...@gnsa.us> wrote:
>>>>>>>>>>
>>>>>>>>>>> On Wed, Aug 6, 2014 at 5:36 PM, Alena Prokharchyk
>>>>>>>>>>> <alena.prokharc...@citrix.com> wrote:
>>>>>>>>>>>> Edison, thank you for raising the concern about the BVT/CI.
>>>>>>>>>>>> Somebody
>>>>>>>>>>>> mentioned earlier that we should separate git workflow
>>>>>>>>>>>> implementation from
>>>>>>>>>>>> the CI effort, but I do think we have to do in in conjunction.
>>>>>>>>>>>> Otherwise
>>>>>>>>>>>> what is the point in introducing staging/develop branch? If there
>>>>>>>>>>>> is
>>>>>>>>>>>> no
>>>>>>>>>>>> daily automation run verifying all the code merged from
>>>>>>>>>>>> hotFixes/feature
>>>>>>>>>>>> branches (and possibly reverting wrong checkins), we can as well
>>>>>>>>>>>> merge the
>>>>>>>>>>>> code directly to master.
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Yes! - please.
>>>>>>>>>>> Doing this without CI as a gating factor buys us very little.
>>>>>>>>>>>
>>>>>>>>>>> --David
>>>>>>>>>>
>>>>>>>>>> David, can you clarify. Are you going to be against any change of git
>>>>>>>>>> workflow until we get CI/BVT in place ?
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> No, please don't take it that way.
>>>>>>>>> I understand Leo's point about Cherry-picking being for fruit, and not
>>>>>>>>> code. But, I don't think that the workflow changes I've seen proposed
>>>>>>>>> affect quality. So shifting for quality's sake doesn't make a lot of
>>>>>>>>> sense in my mind. They could be a component of fixing the quality
>>>>>>>>> problem.
>>>>>>>>>
>>>>>>>>> --David
>>>>>>>>
>>>>>>>> Agreed, the changes don't affect quality but should support a CI infra
>>>>>>>> that helps improves quality.
>>>>>>>>
>>>>>>>> I do think the changes provide
>>>>>>>>
>>>>>>>> -a stable master that represent released software
>>>>>>>
>>>>>>>
>>>>>>> You can always look at the latest release branch to get it,
>>>>>>
>>>>>> Yes I know how to get to the latest released software.
>>>>>>
>>>>>> I actually don't have good answers for your questions but I think Nate's
>>>>>> email (couple emails back) answers a lot of them.
>>>>>>
>>>>>>> as we are
>>>>>>> planning to keep them around to support maintenance. From the developer
>>>>>>> stand point, I would be more interested in getting the latest stable
>>>>>>> code,
>>>>>>> not the latest stable release.
>>>>>>
>>>>>> I think that's fine from a developer standpoint. I tend to look at things
>>>>>> from a user standpoint.
>>>>>> I think a basic user who wants to check out source (because he builds his
>>>>>> own packages), would like to checkout the latest master to get the latest
>>>>>> released software (not everybody software projects works like this of
>>>>>> course).
>>>>>>
>>>>>> The main issue with master right now is that it moves really fast as a
>>>>>> shared branch, people merge features without warning, we see regressions
>>>>>> etc..
>>>>>> By the time we release a major version, master has moved so much that it
>>>>>> feels like starting over with the next release. It's almost as if we are
>>>>>> forking our own software. CI alone (even if it were really good) will not
>>>>>> fix this.
>>>>>>
>>>>>> So assuming we have CI in place, we do need a better workflow (let's not
>>>>>> call it gitflow anymore) to self-discipline ourselves.
>>>>>>
>>>>>>>
>>>>>>> I don¹t see the use of stable master branch during the release either,
>>>>>>> as
>>>>>>> it reflects already released versions of the CS. And you never cut the
>>>>>>> release from the stable master branch; you do cut it from *develop -
>>>>>>> that¹s what the git workflow suggests.
>>>>>>
>>>>>> That's where our use case differs from gitflow. Several folks have
>>>>>> already mentioned that we are going to deviate from pure gitflow, it is
>>>>>> just a nice framework to start creating our own workflow.
>>>>>>
>>>>>> Personally, I would love to cut the release branches from master (instead
>>>>>> of develop). that way you always start from a clean slate, instead of the
>>>>>> mess with start with right now.
>>>>>>
>>>>>> Say develop is more of a staging branch, as you have advocated. We can
>>>>>> run CI/BVT on that branch (we should run it everywhere…but anyway) and
>>>>>> make sure features merged in work as advertized.
>>>>>>
>>>>>> When time comes to release, we cut from master and merge the features
>>>>>> that have been merged in develop already, then go into QA, merge the
>>>>>> fixes back to develop etc….when released, we merge back to master.
>>>>>>
>>>>>> If/since we don't do rolling releases, we branch out from the main
>>>>>> version tag and do a maintenance release that leaves on, assuming it
>>>>>> can't get merged back into master.
>>>>>>
>>>>>>>
>>>>>>>> -a clean way to merge features and bug fixes
>>>>>>>
>>>>>>> +1
>>>>>>>
>>>>>>>> -a clean way to create a release that should reduce our time to release
>>>>>>>
>>>>>>> +1 Although I still think that slowness for our release was mostly
>>>>>>> caused
>>>>>>> by the last minute regression bugs caused by missing quality control +
>>>>>>> lack of CI.
>>>>>>
>>>>>> True, but it is also due to the fact that we start a release branch from
>>>>>> a messy master where regressions happen.
>>>>>>
>>>>>>> This new way would just take off the load from RM by
>>>>>>> eliminating endless cherry-picking.
>>>>>>>
>>>>>>
>>>>>> I would love to have a workflow where the RM has a very clean job (pick
>>>>>> the features that should be in the release, pick the hot fixes release).
>>>>>> It should just be a series of git merge and that's it.
>>>>>>
>>>>>> master branch is only released software, only touched by RMs
>>>>>>
>>>>>> released branches only touched by RMs
>>>>>>
>>>>>> develop shared but merges happen only after successful CI and guarantee
>>>>>> of no regressions.
>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> *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>*™*
>>>
>>> Regards,
>>> Rohit Yadav
>>> Software Architect, ShapeBlue
>>> M. +41 779015219 | rohit.ya...@shapeblue.com
>>> Blog: bhaisaab.org | Twitter: @_bhaisaab
>>>
>>>
>>>
>>> Find out more about ShapeBlue and our range of CloudStack related services
>>>
>>> IaaS Cloud Design & 
>>> Build<http://shapeblue.com/iaas-cloud-design-and-build//>
>>> CSForge – rapid IaaS deployment framework<http://shapeblue.com/csforge/>
>>> CloudStack Consulting<http://shapeblue.com/cloudstack-consultancy/>
>>> CloudStack Infrastructure 
>>> Support<http://shapeblue.com/cloudstack-infrastructure-support/>
>>> CloudStack Bootcamp Training 
>>> Courses<http://shapeblue.com/cloudstack-training/>
>>>
>>> This email and any attachments to it may be confidential and are intended 
>>> solely for the use of the individual to whom it is addressed. Any views or 
>>> opinions expressed are solely those of the author and do not necessarily 
>>> represent those of Shape Blue Ltd or related companies. If you are not the 
>>> intended recipient of this email, you must neither take any action based 
>>> upon its contents, nor copy or show it to anyone. Please contact the sender 
>>> if you believe you have received this email in error. Shape Blue Ltd is a 
>>> company incorporated in England & Wales. ShapeBlue Services India LLP is a 
>>> company incorporated in India and is operated under license from Shape Blue 
>>> Ltd. Shape Blue Brasil Consultoria Ltda is a company incorporated in Brasil 
>>> and is operated under license from Shape Blue Ltd. ShapeBlue SA Pty Ltd is 
>>> a company registered by The Republic of South Africa and is traded under 
>>> license from Shape Blue Ltd. ShapeBlue is a registered trademark.
>>
>>
>>
>> --
>> Daan
>
> Regards,
> Rohit Yadav
> Software Architect, ShapeBlue
> M. +41 779015219 | rohit.ya...@shapeblue.com
> Blog: bhaisaab.org | Twitter: @_bhaisaab
>
>
>
> Find out more about ShapeBlue and our range of CloudStack related services
>
> IaaS Cloud Design & Build<http://shapeblue.com/iaas-cloud-design-and-build//>
> CSForge – rapid IaaS deployment framework<http://shapeblue.com/csforge/>
> CloudStack Consulting<http://shapeblue.com/cloudstack-consultancy/>
> CloudStack Infrastructure 
> Support<http://shapeblue.com/cloudstack-infrastructure-support/>
> CloudStack Bootcamp Training 
> Courses<http://shapeblue.com/cloudstack-training/>
>
> This email and any attachments to it may be confidential and are intended 
> solely for the use of the individual to whom it is addressed. Any views or 
> opinions expressed are solely those of the author and do not necessarily 
> represent those of Shape Blue Ltd or related companies. If you are not the 
> intended recipient of this email, you must neither take any action based upon 
> its contents, nor copy or show it to anyone. Please contact the sender if you 
> believe you have received this email in error. Shape Blue Ltd is a company 
> incorporated in England & Wales. ShapeBlue Services India LLP is a company 
> incorporated in India and is operated under license from Shape Blue Ltd. 
> Shape Blue Brasil Consultoria Ltda is a company incorporated in Brasil and is 
> operated under license from Shape Blue Ltd. ShapeBlue SA Pty Ltd is a company 
> registered by The Republic of South Africa and is traded under license from 
> Shape Blue Ltd. ShapeBlue is a registered trademark.



-- 
Daan

Reply via email to