I think 3.3.0 will be a "big" release with many breaking changes as we
remove deprecation, upgrade certain dependencies, and make other usability
improvements. This won't be a release we want to rush as it affords us an
opportunity to make a number of things a lot better. I believe that we'd
discussed having 3.3.0 as a release for the end of 2016, but the more I
think about it, the more I wonder if that's enough time.

Anyway, I think that if we hope to get a 3.3.0 out by end of 2016 or early
2017, we will need to get started sooner than later. That of course, would
lead us to our branching model in git and how we will want to approach that.

Right now, things are pretty simple. We maintain master and tp31 branches
and tp31 merges one-way to master. If we want to start work on 3.3.0, then
I think we should begin a tp32 branch for the 3.2.x line of code and make
master be 3.3.x. Of course, that complicates our workflow slightly because
tp31 will need to merge to tp32 and then tp32 to master. While tp31
development has ceased with the exception of bug fixes, I already find
divergence between tp31 and master as things stand today and that will only
get worse as we make breaking change to master. The point is that it may be
burdensome to merge tp32 to master at times for those other than the
original author of the work being merged.

We may find that we may need a multi-pull request model to cleanly deal
with conflicts inherent to the merge. In other words, a change to tp31
would mean a separate pull request to tp31, tp32 and master (as opposed to
one pull request to tp31 with a merge at some later time to tp32 and then
at some later time tp32 to master). For a change to tp32 you would just do
a PR to tp32 and a PR to master. That would be the safest way to deal with
conflicts and not have any surprises for some poor sap doing a blind merge
from one of our release branches down the line.

Any thoughts on any of this?

Reply via email to