Hello, +1 for 2.0 branch. I totally agree with Parth that for the fast progress of a feature (like RM) which can break the backward compatibility of an existing functionality, maintaining a separate branch is better.
Thanks, -Hanu On Mon, Mar 4, 2019 at 11:44 AM Parth Chandra <par...@apache.org> wrote: > The wisdom of the ancients says that if you want fast progress while a new > code base is in development, CTR is the way to go. Once the code is out in > a release, stability becomes important and you want to review before > committing it. > > With CTR you are allowed to - > Not worry about style. > Not worry about clean implementation. > You don't even have to make sure the code compiles. > Have non committers work alongside committers without having to wait. > > While it is up to each group of developers to have a common policy to which > they will adhere, as a project we can relax the rules and make sure that > those who want to move fast are able to do so without process getting in > the way. > > Either way, we should go ahead with the new branch and evolve the commit > policy as works starts/continues on 2.0 > > > > On Sun, Mar 3, 2019 at 9:18 PM Sorabh Hamirwasia <shamirwa...@mapr.com> > wrote: > > > Hi, > > +1 for 2.0 branch. From RM perspective since we will be adding support > for > > more richer configuration to support multiple queues, the existing > > functionality will be deprecated. This will result in breaking backward > > compatibility hence 2.0 branch will be preferred. I think it will be > > confusing and also extra work to keep support for both existing and new > > queues support for RM. > > However I would still prefer the commit process in 2.0 branch to be same > as > > that in master branch. Review and approved by a committer before check in > > and all tests should pass. If we follow these steps then during > integration > > of the entire feature into master branch, review of 1 big fat PR will not > > be required. > > > > Thanks, > > Sorabh > > > > On Sun, Mar 3, 2019 at 7:35 PM Aman Sinha <amansi...@gmail.com> wrote: > > > > > Catching up on this thread since I was traveling and am currently in > > India > > > time zone. > > > Interesting suggestion about the C-T-R policy for a potential 2.0 > branch. > > > I don't recall we have done this for any prior releases. > > > In the past, my experience with a separate feature branch (not on > apache > > > but in a private repo) was that we still did the review-then-commit > > > since that's what everyone is accustomed to and most Drill developers > > tend > > > to want early feedback. This depends on the folks working on the > > > specific features. > > > > > > For the branching, it sounds like people are more inclined towards > option > > > (a). Parth does make a good case for 2.0 branch and it would be > > > inevitable at some point in future especially for the > > > compatibility-breaking functionality. We would expect the feature > > > developers to indicate when > > > that time comes. > > > > > > I believe at least partial support for Arrow is a 2.0 objective. > > Hopefully > > > one of us can free up from other commitments and start working on it. > > > > > > Aman > > > > > > On Thu, Feb 28, 2019 at 9:56 AM Parth Chandra <par...@apache.org> > wrote: > > > > > > > +1 for a 2.0 branch. > > > > Feature specific branches can be created off the 2.0 branch, and > should > > > > ideally be merged periodically. > > > > I would also suggest that we adopt a C-T-R policy [1] for the 2.0 > > branch > > > > until it is at a stable point. > > > > Finally, I would assume that it is up to the feature developers to > > decide > > > > whether the feature will maintain backward compatibility or not. 2.0 > is > > > an > > > > opportunity to break backward compatibility so it would be quite > > > acceptable > > > > for some major features to break compatibility. > > > > One major question backward compatibility for 2.0 would be Arrow. If > we > > > > decide we want to have Arrow support, we would probably break > backward > > > > compatibility in may ways. If we don't do Arrow support in 2.0, we'll > > > > probably never do it. We could, of course, do partial support. For > > > > reference see the Spark effort [2] > > > > > > > > [1] https://www.apache.org/foundation/glossary.html#CommitThenReview > > > > [2] https://jira.apache.org/jira/browse/SPARK-26413 > > > > > > > > > > > > On Thu, Feb 28, 2019 at 9:26 AM 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 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >