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.
> 

Reply via email to