[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Development suggestions from an ENSIME developer

From: Eli Zaretskii
Subject: Re: Development suggestions from an ENSIME developer
Date: Fri, 22 Jul 2016 17:38:21 +0300

> From: Stefan Monnier <address@hidden>
> Cc: address@hidden (Phillip Lord),  address@hidden
> 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 <foo>", 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

reply via email to

[Prev in Thread] Current Thread [Next in Thread]