From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.devel Subject: Re: Development suggestions from an ENSIME developer Date: Fri, 22 Jul 2016 17:38:21 +0300 Message-ID: <83twfhwxeq.fsf@gnu.org> References: <87wpke3kdj.fsf@russet.org.uk> <83h9biyek4.fsf@gnu.org> <877fce3flr.fsf@russet.org.uk> <83d1m6xint.fsf@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1469198321 23408 80.91.229.3 (22 Jul 2016 14:38:41 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 22 Jul 2016 14:38:41 +0000 (UTC) Cc: emacs-devel@gnu.org, phillip.lord@russet.org.uk To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Jul 22 16:38:34 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1bQbb0-0003LO-44 for ged-emacs-devel@m.gmane.org; Fri, 22 Jul 2016 16:38:34 +0200 Original-Received: from localhost ([::1]:47522 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bQbaz-0001il-C1 for ged-emacs-devel@m.gmane.org; Fri, 22 Jul 2016 10:38:33 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:48788) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bQbap-0001h0-73 for emacs-devel@gnu.org; Fri, 22 Jul 2016 10:38:24 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bQbak-0006gD-Ss for emacs-devel@gnu.org; Fri, 22 Jul 2016 10:38:23 -0400 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:40390) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bQbak-0006g1-QA; Fri, 22 Jul 2016 10:38:18 -0400 Original-Received: from 84.94.185.246.cable.012.net.il ([84.94.185.246]:1731 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_128_CBC_SHA1:128) (Exim 4.82) (envelope-from ) id 1bQbai-0008VL-Gs; Fri, 22 Jul 2016 10:38:17 -0400 In-reply-to: (message from Stefan Monnier on Fri, 22 Jul 2016 09:35:41 -0400) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4830:134:3::e X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:206028 Archived-At: > From: Stefan Monnier > Cc: phillip.lord@russet.org.uk (Phillip Lord), emacs-devel@gnu.org > Date: Fri, 22 Jul 2016 09:35:41 -0400 > > 1a- You look at the patch in your email > 1b- You look at the patch in your the MRS > 2a- You think it looks good > 2b- You think it looks good > 3a- You M-| it to "git am; git push" > 3b- You accept the request For me, most of the work is between 1 and 2. The decision whether the patch looks good is often times not an easy one, it requires reading more code than is directly affected by the patch, consult the documentation, sometimes reading past discussions and bug reports, sometimes trying the patched version. That's the most time-consuming part of patch review, and it isn't going to go away, nor (it seems) will it be helped by the proposed changes in any way. > But in my experience, step "3a" all too often doesn't work out so > nicely, because the patch is not quite in the right format. With some > luck it's been word-wrapped or worse. In practice I find "3a" to be > surprisingly time-consuming. The merge-request flow avoids > those pitfalls. For me, the annoying part is not the failure to apply the patch. It's the last touches I need to apply to the patch to make it up to our standards. In many cases, I hesitate to ask the submitter to do that, either because there were already several iterations of the comments and reviews, and I don't want to drive them off, or because explaining what should be changed and how will take more time and effort than just doing it and telling the submitter "look what I did and try to follow in the future". I don't expect these aspects to be helped in any way, by any system. > Also, the "1a" step can be fairly different from "1b" because the tool > knows it's a patch, it knows against which branch in which repository it > applies, etc... so "1a" can precompute specialized extra info, such as: > - the result of a tentative build (compilation warnings and regression > tests, tho that depends on having such a system setup and having the > resources to run it for every merge-request (and every update of it)). > - a diff w.r.t the previous version of that same merge request. > - info about the fact that the patch doesn't apply against "master" > any more. These are non-issues for me. They seldom happen, and when they do, it's easy to handle them. > - hopefully/ideally the tool could have already checked copyright.list > for you. Is there any system that does? I doubt that. > - "3b" can just mark the request as "reviewed by ", so you can give > "half-commit" rights to some users. > - it sometimes makes it easier for 3rd parties (or for the reviewer) to > update the merge request directly (instead of adding comments). Does the above really make sense in a project where most patches get reviewed by a single person? > Of course, there's also the effect on the side of the patch-submitters, > where the precise flow is often made easier for them because there's no > doubt about where to send the patch, in which format, etc... I envision more complaints from submitters about the complexity of the process...