Return-Path: X-Original-To: apmail-infrastructure-dev-archive@minotaur.apache.org Delivered-To: apmail-infrastructure-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 E58217635 for ; Wed, 21 Dec 2011 07:06:14 +0000 (UTC) Received: (qmail 28646 invoked by uid 500); 21 Dec 2011 07:06:13 -0000 Delivered-To: apmail-infrastructure-dev-archive@apache.org Received: (qmail 28555 invoked by uid 500); 21 Dec 2011 07:06:12 -0000 Mailing-List: contact infrastructure-dev-help@apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: infrastructure-dev@apache.org Delivered-To: mailing list infrastructure-dev@apache.org Received: (qmail 28545 invoked by uid 99); 21 Dec 2011 07:06:11 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 21 Dec 2011 07:06:11 +0000 X-ASF-Spam-Status: No, hits=0.7 required=10 tests=SPF_NEUTRAL X-Spam-Check-By: apache.org Received-SPF: neutral (athena.apache.org: local policy) Received: from [209.85.213.50] (HELO mail-yw0-f50.google.com) (209.85.213.50) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 21 Dec 2011 07:06:06 +0000 Received: by yhoo22 with SMTP id o22so5491854yho.23 for ; Tue, 20 Dec 2011 23:05:45 -0800 (PST) Received: by 10.236.155.194 with SMTP id j42mr8088453yhk.34.1324451145124; Tue, 20 Dec 2011 23:05:45 -0800 (PST) Received: from [10.0.0.10] (CPE-58-168-87-138.lns5.ken.bigpond.net.au. [58.168.87.138]) by mx.google.com with ESMTPS id q16sm12263267anb.19.2011.12.20.23.05.42 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 20 Dec 2011 23:05:43 -0800 (PST) Sender: Brett Porter Content-Type: text/plain; charset=iso-8859-1 Mime-Version: 1.0 (Apple Message framework v1251.1) Subject: Re: @apache.org commit address requirement (Was: Git hosting is go) From: Brett Porter In-Reply-To: Date: Wed, 21 Dec 2011 18:05:38 +1100 Content-Transfer-Encoding: quoted-printable Message-Id: <42D5DEC8-3AC0-46FD-AA29-BB95FFBD20A8@apache.org> References: <8FFCC1B8-280E-4003-90C2-24246AAA1EDD@gbiv.com> <3CDC4B29-BE30-45CE-A28A-22C171FC45CA@yahoo.com> To: infrastructure-dev@apache.org X-Mailer: Apple Mail (2.1251.1) [snip a whole lot of very useful information about contributions, CLAs = and the license that I agree with Roy about] On 21/12/2011, at 2:57 PM, Roy T. Fielding wrote: > The CLA has requirements on submitting third-party contributions > that must be adhered to when pushing stuff to Apache. We expect > that those requirements will be satisfied by the commit log. > As it turns out, that is best accomplished by ensuring that the > original committer and author identifiers remain those of the > original author and not that of the pusher, even if it is the > same person (with different IDs on different repos). If not, > the pusher needs to change the log in order to add a > "Submitted-by: ..." note and whatever else needs to be said in > accordance with the CLA. This is independent of how the > contribution is originally submitted to Apache, and it is the > PMC's responsibility to ensure all its committers do so when > appropriate. TL;DR summary: given that, I think the check is still useful (summary & = question at the end if you don't wish to educate me on git) I am a relative newbie to git, so I may just need someone to explain = something to me more. In some situations Roy has suggested changing the commit log would be = required. My understanding is that requires something like: $ git rebase -i This will also change the "Committer" field, leaving "Author" intact. Jukka has suggested "Signed-off-by:", which I understand can be done = with: $ git --amend -s This will also change the "Committer" field, leaving "Author" intact, = making the change fairly pointless for our purposes. It can't be done = easily to commits > 1 deep in the history. Unless I'm missing something, any change to the commit logs means = Committer is made to be your own address. Is that right? If so, we are only talking about examples where the commit log remains = 100% intact. Working through an example: A pull request referred to by Jukka: = https://github.com/callback/callback-ios/pull/36 Contains a commit: = https://github.com/forcedotcom/callback-ios/commit/1c3a5b3d70ede5853f1cae3= 5a6159d48192685cb ----- commit 1c3a5b3d70ede5853f1cae35a6159d48192685cb Author: Todd Stellanova AuthorDate: Fri Nov 11 14:20:52 2011 -0800 Commit: Todd Stellanova CommitDate: Fri Nov 11 14:20:52 2011 -0800 refractor PhoneGapDelegate to allow teardown and reinit of web view ------ My understanding is that doing this is normal: $ git fetch forcedotcom $ git merge forcedotcom/master $ git push origin master That would leave the commit message above intact. As a project member, that information seems unhelpful, as we need to go = to another source (apparently from the git server ref-update.log) to = find out which ASF committer actually put it into the tree. The mail = notification may indicate that (I haven't checked what we do there), but = it's still detaching some important information from the source control. Adjusting the committer ID is easy: $ git rebase --no-ff (or if just a few need to be handled, git rebase -i) This does mean all the commit IDs get changed (same as if you have to = edit a commit log above, or you alter the commit stream it in some other = way). But the downstream user can still work with that, either with: $ git merge origin/trunk (some extra commits in the local repository) $ git rebase origin/trunk (catch up with origin again) There is the case of someone different from the author committing to the = other repository: we would overwrite some information in this case. I = can't, however, think of a use case where we care about that = information. The author is important, and the ASF committer is important = - in a trade off, I would take the ASF committer information over the = some-other-repo committer. Summary - I see the committer check with the following pros: - ensure commits contain information about which ASF committer was = involved (not for provenance, but for project members to know what is = going on with a commit) - prevent accidentally committing rubbish information (default server = email address, work email address you didn't mean to publish on the web) And cons: - inconvenience of rebasing - losing track of committers to other repositories that are not the = author. I would presume "committer check" means allowing any name & email that = they elect to use, as Paul has described. I think it also means not = requiring rebasing of commits from other ASF committers. On the weight of that, I would find the check worthwhile. I also see no = advantage in replacing it by a signed-off-by check. Do others disagree with this conclusion but agree on the data points, or = have I missed some data, pros or cons? Thanks, Brett -- Brett Porter brett@apache.org http://brettporter.wordpress.com/ http://au.linkedin.com/in/brettporter http://twitter.com/brettporter