Return-Path: X-Original-To: apmail-hadoop-yarn-dev-archive@minotaur.apache.org Delivered-To: apmail-hadoop-yarn-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4F795109D8 for ; Wed, 29 Apr 2015 00:29:36 +0000 (UTC) Received: (qmail 16308 invoked by uid 500); 29 Apr 2015 00:29:36 -0000 Delivered-To: apmail-hadoop-yarn-dev-archive@hadoop.apache.org Received: (qmail 16236 invoked by uid 500); 29 Apr 2015 00:29:36 -0000 Mailing-List: contact yarn-dev-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: yarn-dev@hadoop.apache.org Delivered-To: mailing list yarn-dev@hadoop.apache.org Received: (qmail 16225 invoked by uid 99); 29 Apr 2015 00:29:35 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 29 Apr 2015 00:29:35 +0000 X-ASF-Spam-Status: No, hits=2.2 required=5.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: message received from 54.76.25.247 which is an MX secondary for yarn-dev@hadoop.apache.org) Received: from [54.76.25.247] (HELO mx1-eu-west.apache.org) (54.76.25.247) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 29 Apr 2015 00:29:10 +0000 Received: from mail-wi0-f178.google.com (mail-wi0-f178.google.com [209.85.212.178]) by mx1-eu-west.apache.org (ASF Mail Server at mx1-eu-west.apache.org) with ESMTPS id 2376525F5E for ; Wed, 29 Apr 2015 00:29:09 +0000 (UTC) Received: by wief7 with SMTP id f7so28651429wie.0 for ; Tue, 28 Apr 2015 17:28:23 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:content-type; bh=pN/Jog7OLCAmAYhHc1mveZA+IePmbCfxiDU0PtHnf5I=; b=N2aicYElJTOIfFWbiMm+E1q0E4odCInR1rJIvU8/oM1T34WjIX7WdjWjKLIPebMR8F HCMaOyzQIj6IeiWKI0qOIYC1fMDSxz0x6vf2+aBkKVgo1gemmOjVwDQWCZucQJMS4MZc 3ZX99/zLIYizv12rnWVEdE6wynGc4ftQfD0vfaRMu9Wf+edReH7fVdQMnZ066BsyqMPd n0P5Ynkc5Df/LOM4m9yHO+bQkqXApPwfyprv+qdUlfbr6Gtm7SpRCHZ2EfvqIe94GnLq vMR1lcVkKnkIe2Gp41mjpyh9XT/Y5EmfGI5Pzp3Znc5P0SD/AkzGYtH9l1DbDnnA43JB BkjQ== X-Gm-Message-State: ALoCoQneuKUbqutBRbdAPpNxOrVFIG/sY0FLEvdkiSYVzEExa5Vkxqe6Beh6TsQGsnhQrsMcbbR5 MIME-Version: 1.0 X-Received: by 10.194.142.168 with SMTP id rx8mr37656804wjb.43.1430267303865; Tue, 28 Apr 2015 17:28:23 -0700 (PDT) Received: by 10.28.143.136 with HTTP; Tue, 28 Apr 2015 17:28:23 -0700 (PDT) In-Reply-To: References: <79459119-DEA9-4D77-8BC6-86EBFF983739@altiscale.com> Date: Tue, 28 Apr 2015 17:28:23 -0700 Message-ID: Subject: Re: [DISCUSS] Developing features in branches From: Karthik Kambatla To: "yarn-dev@hadoop.apache.org" Content-Type: multipart/alternative; boundary=089e0122eaea94c9700514d20ef0 X-Virus-Checked: Checked by ClamAV on apache.org --089e0122eaea94c9700514d20ef0 Content-Type: text/plain; charset=UTF-8 On Tue, Apr 28, 2015 at 3:58 PM, Sangjin Lee wrote: > Having worked in both modes, I can see the pros and cons. The branch > definitely helps with speed of development as you don't necessarily have to > make it so that each JIRA has to work standalone and clear the higher bar > and so on. > > That said, in a way we're deferring the cost of cleaning things up towards > the end of the branch. For example, we don't get the same treatment of the > hadoop jenkins in a branch development. It's left up to the group or the > individuals to make sure to run test-patch.sh to ensure tech debt does not > accumulate. > Allen's comment above and his recent work on test-patch.sh mostly alleviates this problem. My take is the cost of cleaning things up at the end is small if all features are on branches. It is particularly hard if only some features use branches. > > I would agree that big feature developments can benefit from branch > development, but there should be enough discipline around it so we don't > miss on the quality during the development. My 2 cents. > > On Tue, Apr 28, 2015 at 11:10 AM, Robert Kanter > wrote: > > > +1 > > > > A good example of both sides of this are the ATSv1 and ATSv2. v1 was not > > done in a feature branch, and was included piecemeal in Hadoop releases > in > > various states. In the end, it's design doesn't scale and there's a few > > other problems that aren't going to be fixed; and we're already working > on > > ATSv2, which is in a feature branch this time. This means we can pull it > > in if/when it's ready. > > > > - Robert > > > > On Tue, Apr 28, 2015 at 9:59 AM, Allen Wittenauer > > wrote: > > > > > > > > For major features, yes, +1. Labels, for example, should have > > > really been done in a branch and I was shocked that it wasn't. > > > > > > Anything that helps get quality back up. The fact that our > > > "stable" branch isn't is a very very bad thing. There is way too much > > > Pokemon happening in Hadoop: > > > > > > "This feature doesn't actually work for anything but this one > use > > > case." > > > > > > "Oh, we're not finished with it yet. You haven't seen it's > final > > > form." > > > > > > 2 releases later.... > > > > > > "Oh, we stopped working on it/not a priority." > > > > > > *grumble* > > > > > > It's worth mentioning that we have a successful confirmation > that > > > the new test-patch.sh is properly testing on feature branches if patch > > > files are named appropriately and branches are named in a sane manner > > > (hint: avoid periods and use only one -). See HDFS-7859 for the > details > > of > > > a run last night on the HDFS-7285 feature branch. > > > > > > On Apr 28, 2015, at 9:26 AM, Karthik Kambatla > > wrote: > > > > > > > Hi Yarn devs, > > > > > > > > I wanted to hear your thoughts on moving to a model where we develop > > ALL > > > > features in branches. I see the following pros/cons of this approach: > > > > > > > > Pros: > > > > > > > > 1. A feature gets included in a release only after it is in a > usable > > > > state - security etc. included. e.g. SharedCache has been included > in > > > 2.7 > > > > partially. We are yet to have MR use it or enable security. > > > > 2. Since it is not in a branch a release might be cut from, feature > > > > development could move faster without having to make sure the > branch > > > is in > > > > releasable-state between commits. e.g. Working on YARN-149 was hard > > > mostly > > > > because we wanted the state between commits to be pristine. > > > > 3. Provide contributors the opportunity to review and commit code > as > > > > branch-committers. > > > > > > > > Con: The cost of merging the branch back to trunk and branch-2. It > > might > > > be > > > > painful to resolve conflicts during every rebase. However, if > > > > trunk/branch-2 have primarily bug fixes, there won't be as many > > > conflicts. > > > > > > > > From what I hear, the HDFS team has followed this model somewhat > > > > successfully. In YARN land, recent work on reservations was done in a > > > > branch and I think it went well. > > > > > > > > This is one of those cases where switching completely to a > > > > features-in-branches model is lot more convenient than trying it out > > for > > > > one-off features. > > > > > > > > Thanks > > > > Karthik > > > > > > > > -- > > > > Karthik Kambatla > > > > Software Engineer, Cloudera Inc. > > > > -------------------------------------------- > > > > > > > > > -- Karthik Kambatla Software Engineer, Cloudera Inc. -------------------------------------------- http://five.sentenc.es --089e0122eaea94c9700514d20ef0--