+1 for option a.
I think backward compatibility can be handled via temp options, for interfaces 
since we use Java 8 default methods can be used.
In case of more extreme cases, they should be postponed till 2.0 branch is 
created.

Kind regards,
Arina

> On Feb 28, 2019, at 7:25 PM, Pritesh Maker <pma...@mapr.com> wrote:
> 
> I think option (a) is better in terms of maintaining branches. With option
> (a) how do we handle a situation where one of these features breaks
> backward compatibility or deprecates some functionality?
> 
> Pritesh
> 
> On Wed, Feb 27, 2019 at 4:23 PM Abhishek Girish <agir...@apache.org> wrote:
> 
>> My opinion would be option (a) as well. It's easier to maintain a single
>> master branch. With a separate v2 branch, it's twice the effort to test
>> common commits going in (either directly or via later via rebase).
>> 
>> On Wed, Feb 27, 2019 at 12:40 PM Aman Sinha <amansi...@gmail.com> wrote:
>> 
>>> My personal preference would be option (a)  as much as possible until we
>>> get to a situation where it is getting too unwieldy at which point we
>>> re-evaluate.
>>> 
>>> Aman
>>> 
>>> On Wed, Feb 27, 2019 at 12:35 PM Aman Sinha <amansi...@gmail.com> wrote:
>>> 
>>>> Hi Drill devs,
>>>> There are couple of ongoing projects - Resource Manager and the Drill
>>>> Metastore - that are relatively large in scope.  Intermediate PRs will
>> be
>>>> created for these (for example, there's one open for the metastore [1].
>>>> Another one for the RM [2].  These don't currently break existing
>>>> functionality, so they have been opened against master branch.
>>>> 
>>>> The question is, for future PRs,  would it make sense to create a
>>> separate
>>>> Drill 2.0 branch ?  There are pros and cons.  Separate branch would
>> allow
>>>> development on these features to proceed at a faster pace without
>>>> disrupting others.  However, in Drill we typically have only created a
>>>> separate branch close to the release, not up-front.  It simplifies
>>> testing
>>>> and maintenance to have a unified master branch.
>>>> 
>>>> Another option is feature specific branch.
>>>> 
>>>> What do people think about the 3 options:
>>>> a)  Merge intermediate PRs into Apache master as long as they don't
>>> break
>>>> existing functionality.  In some cases, temporary config options may be
>>>> used to enable new functionality for unit testing.
>>>> b)  Create a Drill-2.0 branch which will be work-in-progress and be
>>>> periodically sync-ed with master branch.  Code reviews will be done
>>> against
>>>> this branch.
>>>> c)   Have a feature specific branch - e.g for RM, for Metastore etc.
>> such
>>>> that collaborators can do peer reviews and merge intermediate commits.
>>>> These branches will also need to be periodically sync-ed with the
>> master
>>>> branch.
>>>> 
>>>> Please share your choice of one of these options and any additional
>>>> thoughts.
>>>> 
>>>> [1] https://github.com/apache/drill/pull/1646
>>>> [2] https://github.com/apache/drill/pull/1652
>>>> 
>>> 
>> 

Reply via email to