Makes sense to me.

On Mon, Jul 13, 2015 at 11:03 AM, Stephen Mallette <[email protected]>
wrote:

> Thanks for your thoughts Matt....I'm ok with that model as well.  Under
> that model, we would create tp30 to maintain the 3.0.x line then commit
> everything else to master (which would be the 3.1.x line), merging back to
> master from tp30 as needed.  In suggesting the approach that I did, I guess
> I sorta thought that the place "where most people are
> working" post-GA would be the 3.0.x line.  I think we would be looking to
> avoid breaking change in the immediate term, so 3.0.x==master made sense to
> me.
>
>
>
> On Mon, Jul 13, 2015 at 1:45 PM, Matt Frantz <[email protected]>
> wrote:
>
> > +1
> >
> > A roughly symmetric branching strategy would assign the master branch to
> > the role of "where most people are working".  Release branches, e.g.
> 3.0.0,
> > would be created when we "feature freeze" them.  Bug fixes go there, and
> > those release branches are periodically merged to master.  When
> development
> > stops, those branches can be tagged and deleted.
> >
> > On Mon, Jul 13, 2015 at 4:20 AM, Stephen Mallette <[email protected]>
> > wrote:
> >
> > > I think it's worthwhile for us to do something we've not really done
> > before
> > > with any of the TinkerPop projects: use branches. We typically tend to
> > use
> > > branches for major refactoring that we might throw out, but not really
> > for
> > > release management. As we look past release 3.0.0, I think we will want
> > to
> > > have the capability to do more frequent minor releases (e.g. 3.0.1,
> > 3.0.2,
> > > etc) while still being able to do work for a future 3.1.x line of code.
> > >
> > > I think we can do this without too much change if we introduce a simple
> > > branch system.  Release branch rules would be simple - we create a new
> > > branch from master called tp31 for the 3.1.x line of code.  Any changes
> > > that are "breaking", introduce significant risk, a "major" feature,
> etc.
> > > would be committed there.  All other changes, bug fixes, non-breaking
> > > refactoring of major APIs, "minor" features, etc. would simply commit
> to
> > > master.  the master branch effectively becomes the 3.0.x line of code.
> > > Under this approach the merge process is pretty simple in that we just
> > > merge forward (i.e. master merges to to tp31).
> > >
> > > When the day comes that we're ready to release 3.1.0, we merge tp31
> back
> > to
> > > master and create tp32 and use the same model where the 3.1.x line is
> > > master and the 3.2.x line is tp32.  Of course, under this model we are
> > > really supporting just the previous minor version, which for right now
> > > seems acceptable to me.  That's more than what we've ever really done
> > well,
> > > so that feels like a good starting point in my book.  After we release
> > > 3.1.0 we can revisit and decide if a more complex branching strategy is
> > > needed.
> > >
> >
>

Reply via email to