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

Reply via email to