Return-Path: X-Original-To: apmail-ignite-dev-archive@minotaur.apache.org Delivered-To: apmail-ignite-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 1065218C94 for ; Tue, 28 Jul 2015 07:32:24 +0000 (UTC) Received: (qmail 11906 invoked by uid 500); 28 Jul 2015 07:31:49 -0000 Delivered-To: apmail-ignite-dev-archive@ignite.apache.org Received: (qmail 11863 invoked by uid 500); 28 Jul 2015 07:31:49 -0000 Mailing-List: contact dev-help@ignite.incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ignite.incubator.apache.org Delivered-To: mailing list dev@ignite.incubator.apache.org Received: (qmail 11842 invoked by uid 99); 28 Jul 2015 07:31:49 -0000 Received: from Unknown (HELO spamd2-us-west.apache.org) (209.188.14.142) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 28 Jul 2015 07:31:49 +0000 Received: from localhost (localhost [127.0.0.1]) by spamd2-us-west.apache.org (ASF Mail Server at spamd2-us-west.apache.org) with ESMTP id 190081A79D0 for ; Tue, 28 Jul 2015 07:31:49 +0000 (UTC) X-Virus-Scanned: Debian amavisd-new at spamd2-us-west.apache.org X-Spam-Flag: NO X-Spam-Score: 3 X-Spam-Level: *** X-Spam-Status: No, score=3 tagged_above=-999 required=6.31 tests=[HTML_MESSAGE=3, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=disabled Received: from mx1-us-east.apache.org ([10.40.0.8]) by localhost (spamd2-us-west.apache.org [10.40.0.9]) (amavisd-new, port 10024) with ESMTP id 5_ucrUfgnfyx for ; Tue, 28 Jul 2015 07:31:42 +0000 (UTC) Received: from mail-la0-f47.google.com (mail-la0-f47.google.com [209.85.215.47]) by mx1-us-east.apache.org (ASF Mail Server at mx1-us-east.apache.org) with ESMTPS id F3BD143816 for ; Tue, 28 Jul 2015 07:31:41 +0000 (UTC) Received: by lagw2 with SMTP id w2so63124676lag.3 for ; Tue, 28 Jul 2015 00:30:55 -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=XROOBrmjeP/AghOEe6W/17QPD2hwUWpQiVWrI4mV4Zc=; b=kqTTgGGnrC4C68u3NcGsFvm65+HCaTq2A2+85MsBD+z2yBWq+sHOIUQTs/qC76DmYm vZKxQuY9oXbUSyykfxlXd83SmLJshjANbOz2FwMubMJ5lXksX9yinROYaxvW+V4QSdXI 51ERY4wtoS8luVixFUDncmUpPEkOrsEocVwf4Zek98vgf+lQWryDrXlwxR+fEquxB+Bw UWiSd7hREpRaLW8CWd2/E4TBezng51Mb+cZsSlV9SCw2IFoypHv2iVaH562EPfln28ls g9HnFo6Y9E6ZBsgi/byCy7E6myKlzU3OSnUvNzg0nsl/j7VC5j9AHAw6tUTn9uOWUwYq 1OpA== X-Gm-Message-State: ALoCoQnwGbkyCWCxJwKXNFOHxzhiJ43gj8iEvLT/lUrDm6+MYOExvdHjsrcqFQggbzsfYtCDttkr MIME-Version: 1.0 X-Received: by 10.152.45.9 with SMTP id i9mr30874417lam.105.1438068655860; Tue, 28 Jul 2015 00:30:55 -0700 (PDT) Received: by 10.112.218.70 with HTTP; Tue, 28 Jul 2015 00:30:55 -0700 (PDT) In-Reply-To: <20150727233005.GW30506@boudnik.org> References: <55B5DE2B.5040300@apache.org> <55B5E066.3080003@apache.org> <55B5E2BB.4030303@apache.org> <9F2777E4-9AA2-4FD8-8464-B800B7D09EB5@apache.org> <55B6BA2F.2000106@apache.org> <20150727233005.GW30506@boudnik.org> Date: Tue, 28 Jul 2015 14:30:55 +0700 Message-ID: Subject: Re: Jira Process From: Alexey Kuznetsov To: dev@ignite.incubator.apache.org Content-Type: multipart/alternative; boundary=001a11c2750a6543e5051bea73ac --001a11c2750a6543e5051bea73ac Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable In my experience RTC is better. As I can see Ignite evolving very fast with this model. Why some one expects that RTC will slow down development? I'm for RTC. On Tue, Jul 28, 2015 at 6:30 AM, Konstantin Boudnik wrote: > On Tue, Jul 28, 2015 at 01:09AM, Branko =C4=8Cibej wrote: > > On 27.07.2015 18:29, Sergi Vladykin wrote: > > > Guys, > > > > > > I would say Ignite is quite a big and quite complex project. > > > > This has absolutely nothing to do with trusting developers. FWIW, > > Subversion is also very complex, I'll dare say that its object model an= d > > working copy semantics are more convoluted than anything you'll find in > > Ignite. We make do with CTR quite well. > > > > > > > Also we have > > > really tough requirements for performance, stability, backward > > > compatibility, etc... > > > > Write them down. Make sure new contributors understand them before > > offering them commit access. That's a prerequisite for growing an open > > community anyway. > > > > > Having said that it is really easy to break something > > > even with minor change like switching type of collection to another > one. > > > > So? Stuff like that should be documented in the code, if it isn't no > > amount of prior review will help, since how do you know that the > > reviewer happens to remember such details a few years from now? > > > > > And I personally feel safer when my code has been reviewed before I > merge > > > it to master. > > > > So ask for a review if you think you need it. I never said *all* review= s > > should be post-commit: I said that the default mode should be CTR and > > it's up to the developer to ask for more eyes on their code. > > > > > Also when thousand lines change set is merged and there are > > > conflicting change sets merged after, it is quite hard to rollback th= is > > > first change if it was wrong. And we have conflicting changes all the > time. > > > > Apparently you need to learn to use the version control tool you > > selected, or adjust your workflows for the failings of said tool. Or > > change the tool, who knows, you might find that's a good move. :) > > > > Regardless of which tool you use, conflicts should *ALWAYS* be resolved > > on the development branch, not on the mainline: the workflow should be: > > > > 1. create branch from mainline > > 2. make changes on branch > > 3. merge mainline to branch and resolve conflicts (repeat as needed) > > 4. run tests on branch code > > 5. merge branch to mainline > > > > Skipping step 3 (and 4) is going to be a constant pain regardless of > > which tool you use. Also for trivial changes it makes no sense at all t= o > > even create a branch; just fix it on the mainline, your version history > > will be a lot easier to follow. > > > > > My opinion is that correct trade off for us now is having slower but > more > > > predictable development. RTC approach here definitely fits better. > > > > RTC has an additional problem that it can (and often does; look at one > > of the most famous ASF projects if you don't believe me) create tension= s > > in the community. It makes sense to use it for maintenance branches, bu= t > > not for new development. > > Needless to say, I agree with everything just said (except for the VCS > change > proposition, which I found to be outright crazy, of course ;) > > And to pile more on top: I've experienced the consequences of the very > situation, described in the very last paragraph. The RTC lead to a totall= y > nuts situation in Hadoop, where fellas who wanted to reject a small patch= , > not > based on the technical merits of the fix, had came up with an excuse that > the > reviewer (a full committer) didn't have enough expertise to review the > code in > question. The silliness was quickly put down by the sane community member= s, > but you see where I am going with it... > > In other words: if you don't trust a committer to make the changes in the > VCS > system - that committer shouldn't be having the commit-bit in the first > place. > Intricacies of roll-backs aren't an excuse and most often than not could = be > fixed by changing the process hygiene. CTR attitude leads, in general, to= a > higher quality of the contribution because ppl are trying to avoid public > scolding, inevitable in case of forced-reverts. With RTC the blame would = be > shared between the author and the reviewer, which make situation more > bearable > (falsely, of course). And guess what - reviewers are humans and make > mistakes > all the time, but that was already pointed out. > > Cos > > --=20 Alexey Kuznetsov GridGain Systems www.gridgain.com --001a11c2750a6543e5051bea73ac--