[gmx-developers] Changes without reviews

Magnus Lundborg magnus.lundborg at scilifelab.se
Tue Feb 19 09:30:54 CET 2019


Hi,

I'd just like to add that it would be good to get developers used to 
abandoning patches that are no longer worth reviewing/submitting. There 
are some patches in gerrit that are over five years old and quite a few 
that are over three years old. If we want to routinely review the oldest 
changes, which I think is good in general but should definitely not be a 
rule, we really need to make sure that the oldest changes are still 
interesting to submit.

Cheers,

Magnus

On 2019-02-19 09:22, Erik Lindahl wrote:
> Hi,
>
> We actually brought that up at our internal gromacs-group kick-off in 
> January (both BioExcel and staff funded by some other projects).
>
> The first important lesson is that code review can be a relatively 
> major task that in general should be planned already when we start 
> working on a new module/feature/whatever. It takes (and should take 
> time) for several developers, but that also means it's something we 
> need to plan/prioritize based on the overall project needs and what 
> people have funding to work on, so we make it clear that one of the 
> tasks for developers X & Y the next three months is to help reviewing 
> the code for project Z.
>
> Another important caveat is that we cannot have the combination that 
> anybody can push anything to gerrit, and that also meaning a guarantee 
> that it will eventually make it into the master branch. The cost of 
> allowing anything there is that many patches will never make it (for 
> various reasons), and we might need to get better at separating 
> small/old things that have fallen between chairs from changes where 
> there are no strong incentives for the entire project to include the 
> change (in the sense of all new code/features being added liability 
> for somebody to support)
>
>
> I would say large changes tend to fall in three categories:
>
> 1) Things that are on the overall project roadmap, and where we (or 
> somebody else) have funding for people to work on it so it is both a 
> plan for long-term maintenance and other people have stepped up in 
> redmine to help with the review so it is also planned and sync:ed when 
> the changes are coming in. These tend to be reviewed quickly, although 
> the amount of comments/changes required might still mean it takes a 
> while for it to get in.
>
> 2) Other large changes that are in principle good (say, cleanup), but 
> that might not have been on people's radar. These will sometimes go in 
> within days if they are trivial, but sometimes the can take a very 
> long time to get in. The latter usually because people are busy and 
> their time is already full with things that we agreed had high 
> priority, and there might not be any time to drop those other things 
> short-term just because there's another feature that could also be 
> useful. In my experience, the best way to handle this is to be very 
> active with helping reviewing other people's code and build karma - 
> suddenly those reviews start showing up magically.
>
> 3) The third category is when somebody who has not been very involved 
> in the project before uploads a large change for a new semi-niche 
> feature, it takes ~50 changes for it to compile cleanly, and then 
> there are another ~50 rebases over the course of a year. Although it 
> might sound tough, for these changes I think the solution increasingly 
> needs to be that they will have to live outside of master branch until 
> (a) there is a clear record of the feature being widely used, (b) 
> somebody continuously involved in the project and reviewing other code 
> takes a responsibility to maintain it. Here we rather send a very bad 
> message if people just start to review any code that shows up in 
> gerrit - IMHO this type of change should NOT be reviewed unless it's 
> the result of if a Redmine thread where we agreed on a plan for 
> supporting it in the releases. That does not mean it's bad code, but 
> until the impact and long-term support is clear, it should not be in 
> master.
>
>
> So, I like the suggestions of e.g. looking at older changes and/or 
> removing reviewers who don't have time.
>
> However, I don't see that it will work with a combination of allowing 
> anybody to submit anything, assigning reviewers automatically, and 
> then saying that assignment implies it should be done within a week 
> unless explicitly declined :-) That comes with the risk of spending a 
> lot of time on minor cleanup changes, while we won't have time for the 
> large things people are funded for.
>
> There I think a better solution is to get better with the social 
> planning at the bi-weekly telcos we have - but rather than merely 
> stating what we are working on right now, we should get better at 
> coming with suggestions ahead of time and then checking (a) if other 
> people also want to prioritize that to help with reviewing, and (b) 
> what other reviewing we can help with.
>
>
> In principle we'd be delighted to have other people join our internal 
> planning, with two caveats: NDAs means we need to keep some things 
> orthogonal between vendors, and our staff resources are based on the 
> things we have funding to deliver, so if somebody needs help with 
> their feature X, we likely need them to help us review features Y & Z :-)
>
>
>
> Cheers,
>
> Erik
>
>
>
>
>
>
>
>
> On Tue, Feb 19, 2019 at 5:33 AM Schulz, Roland 
> <roland.schulz at intel.com <mailto:roland.schulz at intel.com>> wrote:
>
>     Hi,
>
>     It seems to me based on my observations (no statistics so likely
>     biased), we have a high inefficiency in that we have certain
>     patches which go months without code review, and the author is
>     forced to regularly rebase because anything not on the first page
>     of gerrit is likely to go unnoticed.
>
>     If that’s true, it seems we should have some way:
>
>     -As an owner to find out whether a change will ever get reviewed
>     or whether the owner should abandon it because it doesn’t have
>     enough interest for it to go in.
>
>     -Have a more efficient way of communicating that changes aren’t
>     abandoned and are in need of code review which doesn’t require
>     regularly rebasing them just to get noticed.
>
>     Based on these observation, I suggestion the following:
>
>     -We should make the reviewer list on a change useful. Currently we
>     have changes which haven’t seen any significant review in months
>     and have a lot of reviewers listed. I suggest, being listed as a
>     reviewer on a change starts to mean one has the intention of
>     reviewing it fully with voting in a timely manner (e.g. within a
>     week for a small change or incremental reviews and within a month
>     for a large initial review). If one is added as a reviewer (either
>     because someone else added one or  one has commented in the past)
>     and one doesn’t have sufficient time or interest in the topic to
>     do a full review in a timely manner or doesn’t feel qualified to
>     vote, one should remove oneself from the reviewer list. This would
>     allow us to find out as a reviewer: are there changes which
>     require reviewers and which changes am I expected to review. And
>     as an owner: should I ask for reviews or (after having asked) is
>     there no interest and I might need to abandon the idea.
>
>     -We should use the dashboard to check for incoming reviews rather
>     than primarily using the first page. We should usually start
>     reviewing with the oldest rather the newest changes (requires us
>     to either clean up all the old changes or have a start-date for
>     the policy).
>
>     -We should encourage owners to add others as reviewers to ask them
>     for review (if we notice some people get spammed we might need
>     some suggestions of how to avoid that). This makes it clear if
>     there is no interest if everyone removes themselves. And either
>     lets the owner abandon it or ask for more clarification regarding
>     interest per email.
>
>     -We could potentially improve the dashboard with extensions such
>     as https://github.com/openstack/gerrit-dash-creator
>
>     Do you think a change in the direction would be useful (which
>     should probably decide on the direction before discussing details
>     such as what “timely” means)? Or do have different observations
>     and/or suggestions?
>
>     TLDR: Should every reviewer one a change be expected to review in
>     a timely manner or remove themselves as reviewer from the change?
>
>     Roland
>
>     -- 
>     Gromacs Developers mailing list
>
>     * Please search the archive at
>     http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List
>     before posting!
>
>     * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
>
>     * For (un)subscribe requests visit
>     https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers
>     or send a mail to gmx-developers-request at gromacs.org
>     <mailto:gmx-developers-request at gromacs.org>.
>
>
>
> -- 
> Erik Lindahl <erik.lindahl at dbb.su.se <mailto:erik.lindahl at dbb.su.se>>
> Professor of Biophysics, Dept. Biochemistry & Biophysics, Stockholm 
> University
> Science for Life Laboratory, Box 1031, 17121 Solna, Sweden
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20190219/2b6112a5/attachment-0001.html>


More information about the gromacs.org_gmx-developers mailing list