cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alena Prokharchyk <>
Subject Re: [VOTE] git workflow
Date Wed, 06 Aug 2014 17:30:38 GMT
Rohit, thank you for the explanation. So we cut the maintenance release
from the master branch, not *develop as opposed to the major release

One more open question. Its clear that we cut the maintenance release from
the master branch, but what would be the right way to merge it back if
this is a maintenance release for say 4.2, and 4.4 is the top of the
master branch? Where would the 4.2.1 tag appear? It can’t be on a top of

All the above should be documented in the proposal. The original proposal
didn’t mention anything about how we are going to do maintenance branches.
And we were originally thinking about leaving the release branches around.


On 8/6/14, 10:16 AM, "Rohit Yadav" <> wrote:

>On 06-Aug-2014, at 6:58 pm, Alena Prokharchyk
><> wrote:
>> Why implement something that doesn¹t serve any practical purpose for
>> We should adopt only things that would address current CS problems -
>> regressions, unstable releases, etc. That would mean - running the
>> automation (CI, BVT) on *develop branch, cut the *fix branches for hot
>> fixes/critical/feature bugs only and run BVT on them before merging to
>> *develop; merge only stable code from *develop to master branch.
>> There would be no use for master branch if it reflects the latest
>> branch, which will always be present in CS model as opposed to what
>> original article suggests. Below the explanation from the other email
>> thread on why the release branches can¹t be removed in CS model:
>> Rohit:
>> ================
>> "IMO We ³should" remove the release branches when done. Instead there
>>is a
>> support workflow with git-flow (see support
>> and also in the tooling
>> flow support etc. though experimental).²
>> Alena:
>> ==========
>> If we remove the release branches, how are we going to handle
>> releases for older versions of the code? It wouldn¹t work as its
>> impossible to cut a maintenance release from develop branch.
>When you merge --no-ff a release/any branch on master/target branch, the
>version history stays with it.
>Not only we merge it on master, we do a tag on it as well. Now to get the
>history/branch back you can always checkout the tag: git checkout <tag>
>and see the history:
>git log --graph --decorate --pretty=oneline --abbrev-commit —all
>So, it’s safe to delete a branch when it’s merged to a target/master
>If you have never deleted a feature branch once it was merged, you should
>try and see for yourself. At the end of the day, git is all but link-list
>logic at the core. The branch too tracks just the HEAD, if you’ve
>refs/tag/sha of a branch you can checkout to get the branch back.
>When a branch is merged, git allows you do delete the branch with: git
>branch -d <release>, if branch is not merged you’ve to force it with -D:
>git branch -D <release>
>To cut a maintenance release from a release version, all you’ll have to
>do it:
>git checkout -b <support-branch> <tag>
>> I think the model the article proposes, fits the products like SAS, when
>> there are no maintenance releases and support is provided just for the
>> latest release.  Then of course, to get the latest stable release, it
>> would make sense to access master branch which is always stable. In case
>> when multiple releases are being maintained at the same time - like CS -
>> it would make sense to keep release branches. Otherwise how are you
>> to handle this situation:
>> 4.2, 4.3 and 4.4 are released
>> Master reflects 4.4
>> Maintenance 4.2.1 and 4.3.1 releases are needed
>> Questions:
>> How do you create those releases, from what branch?
>> How do you merge and tag them into master branch considering that the
>> latest version there is 4.4?
>> Thanks,
>> Alena.
>> On 8/5/14, 11:36 PM, "Daan Hoogland" <> wrote:
>>> Exactly Rajani, and other solutions are possible. The issue is not how
>>> branches are called ;)
>>> On Wed, Aug 6, 2014 at 8:29 AM, Rajani Karuturi
>>> <> wrote:
>>>> I am just wondering if the shift to a new develop branch is causing
>>>> problems. Its a simple branch shift and should be no different from
>>>> current master.
>>>> may be we should leave the master as is and create a Œstable' branch
>>>> which would act like master in git-flow ?
>>>> ie)
>>>> ACS master -> develop in git-flow
>>>> ACS stable -> master in git-flow
>>>> ~Rajani
>>>> On 06-Aug-2014, at 10:56 am, Daan Hoogland <>
>>>> wrote:
>>>>> Hello devs and especially committters,
>>>>> I see some -1s coming by, days after the vote was closed. That is
>>>>> disturbing as it means we accepted a proposal that will not be
>>>>> supported by the community. So let me try to find that support in
>>>>> hindsight;
>>>>> The argument of Animesh that we are shifting the burden from one
>>>>> branch to another is real and present danger. I share his concern. It
>>>>> is not the only feature of this proposal and in it self does not
>>>>> warrant a -1. It does not worsen the situation at hand or add to our
>>>>> workload in any way. If there is no advantage to you and no
>>>>> disadvantage either then why -1 something that others do find useful?
>>>>> This is 'kind of' a rhetorical question. It is a real concern,
>>>>> though not the biggest at this moment.
>>>>> branching is recommended but as people are rightfully wondering
>>>>> "should I make a branch for a single line fix". I would, probably but
>>>>> maybe not always. That doesn't mean you must. In case you are making
>>>>> fix on a release then yes you do. It is how the git-flow workflow
>>>>> goes.
>>>>> Committers can merge and commit where ever they feel the need. That
>>>>> doesn't exempt them from thinking if it is a good idea. It doesn't
>>>>> and it won't in the future. Doing what your boss tells you to do can
>>>>> be a crime!
>>>>> Reverting something should only be done when the code that is a
>>>>> culprit has been identified. Reverting a big change or even a bunch
>>>>> changes is a cowards way out. We shouldn't do it now or using
>>>>> It is not really related to git flow or its use. So we shouldn't
>>>>> penalize developers that didn't cause a problem or ones that did. We
>>>>> should help them help us make a better system.
>>>>> The question of why this process isn't implemented on master is
>>>>> It could. It isn't however. It is a choice the authors of gitflow
>>>>> made. I think it is not really the time anymore to be nitpicking
>>>>> this. Unless we find a very valid reason to alter the accepted
>>>>> proposal we should all try and implement it as good as possible. I
>>>>> have been RM for 4.4.0 and one thing I don't want anymore is people
>>>>> share a 4.4-forward to cherry-pick commits from. It caused me a lot
>>>>> headaches.
>>>>> The release is what drives the merges back to master according to
>>>>> git-flow. We can decide that we define a number of prerelease dates
>>>>> which we merge as well. We don't have to do it at that date but can
>>>>> decide to do that the next day or week as well. This would kind of
>>>>> resemble Alena's #1 (as opposed to the more pure gitflow #2). An
>>>>> argument for #2 is that I don't think every customer greps the rpms
>>>>> for some release. I know our operators at Schuberg Philis investigate
>>>>> the code and check it out from git. They like to compare release and
>>>>> look at the latest easily. just checking out master would be very
>>>>> convenient for them. Of course they can check out a branch as well.
>>>>> But I doubt if they know exactly what to checkout then. I usually see
>>>>> them just look at the latest for a branch.
>>>>> All in all, I am very skeptic on whether this will work as planned.
>>>>> is us who need to work neatly and only if we do that we can help
>>>>> ourselves with improving our process. I do feel that the present way
>>>>> of working, mainly the use forward branches but in general the lack
>>>>> using branches to test individual changes, is hindering us in doing
>>>>> releases. The proposal at hand is very good but can only work if
>>>>> supported by the people that need to work with it. It doesn't do our
>>>>> release process for us. We still need to do it and not just program
>>>>> some code and check it in. That will never work in any process. Your
>>>>> code is not done until somebody somewhere finds it worth running it
>>>>> a production environment. So let's keep discussing and educating each
>>>>> other.
>>>>> done ranting, feel free to react or contact me in person
>>>>> Daan
>>>>> On Wed, Aug 6, 2014 at 3:15 AM, David Nalley <> wrote:
>>>>>> On Tue, Aug 5, 2014 at 7:44 PM, Erik Weber <>
>>>>>> wrote:
>>>>>>> On Wed, Aug 6, 2014 at 12:55 AM, Prachi Damle
>>>>>>> <>
>>>>>>> wrote:
>>>>>>>> I fail to understand how will this model help us with the
>>>>>>>> maintenance
>>>>>>>> releases?
>>>>>>> That's what gitflow support branches is for.
>>>>>>> I find this quite descriptive:
>>>>>>> CuKT0J
>>>>>>>> For CloudStack we also keep working on prior releases and
ship out
>>>>>>>> maintenance releases.
>>>>>>>> I suppose we will be cutting the maintenance releases from
>>>>>>>> release
>>>>>>>> branches? So we will have to keep around the release branches
>>>>>>>> that
>>>>>>>> purpose.
>>>>>>> I've asked earlier, but what is the policy on old releases? How
>>>>>>> do we
>>>>>>> support them?
>>>>>> Today (e.g. subject to change) we claim to support as a community
>>>>>> two
>>>>>> most recent feature releases. (for instance, we just stopped support
>>>>>> the
>>>>>> 4.2.x line with the release of 4.4.0, and currently support 4.3.x
>>>>>> 4.4.x) We support those feature releases with bug fix releases that
>>>>>> contain
>>>>>> no additional functionality.
>>>>>> --David
>>>>> --
>>>>> Daan
>>> --
>>> Daan
>Rohit Yadav
>Software Architect, ShapeBlue
>M. +41 779015219 |
>Blog: | Twitter: @_bhaisaab
>Find out more about ShapeBlue and our range of CloudStack related services
>IaaS Cloud Design &
>CSForge – rapid IaaS deployment framework<>
>CloudStack Consulting<>
>CloudStack Infrastructure
>CloudStack Bootcamp 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.

View raw message