[development] How to post bug reports and patches

Larry Garfield larry at garfieldtech.com
Sat Nov 1 09:37:55 UTC 2008


On Friday 31 October 2008 6:21:55 pm David Sterratt wrote:
> On Thu, 2008-10-30 at 11:07 -0400, Darren Oh wrote:
> > There are four bottlenecks in project maintenance:
> >
> > 1. People who complain outnumber people to read complaints.
> > 2. People who read complaints outnumber people who provide patches.
> > 3. People who provide patches outnumber people who review patches.
> > 4. People who review patches outnumber people who commit patches.
>
> A thought about widening bottleneck #3 that requires no technological
> innovation: Suppose I've submitted a patch that I'm keen to see reviewed
> and committed. Would it be socially acceptable to review two other
> patches (preferably related in some way and of a similar level of
> complexity) and ask the submitters of those patches to review my patch
> in return?
>
> You scratch my patch, I'll scratch yours.
>
> Although there would be no guarantee of my patch being reviewed by the
> other patch submitters, the fact that it might happen would give me more
> motivation to review patches.

Such a thing already happens from time to time informally in IRC, especially 
between active "known" developers.  It would probably be a bit gauche to try 
to do so in the issue queue directly, but "review swapping" via IRC is 
already common and could probably stand to become more so.

The underlying problem I see is that in the case of many many patches, most 
people are simply not qualified to give a decent review.  The amazing work 
that has gone into the automated testing server and simpletest module 
recently has, ironically, removed one of the main places where "random 
members of the crowd" can offer useful feedback; that is, "does this break 
stuff?"  Coding style reviews most people can do if they're picky enough (and 
if you're not, then you should be), but substantive reviews of non-trivial 
patches requires a knowledge of the system being modified, whether it's a bug 
or a feature request.  That's why the few people who seem to be able to 
intelligently review patches all over the system (and have time to do so) are 
worth their weight in gold.

I've actually felt for some time that Drupal has reached a size and complexity 
where we need a more tiered maintainer system.  Right now, Dries and Angie 
are the maintainers for D7, and based on the length of the recent-commit 
log[1] are doing a bang-up job.  However, they keep saying that what we need 
is to not send stuff to them until it's *really* ready, vis, RTBC should be 
rock solid and not require effort on their part anymore.  There is no one 
besides them, really, who is in a position to say when something really 
is "ready to be committed".

That's where most projects bring in subsystem maintainers.

As database system maintainer for D7, I read and respond to almost every issue 
that comes through the DB component queue.  I've also spent time with Angie 
trying to work out a good way to optimize the workflow from me to her, so 
that patches that get past me bubble up to her quickly, she knows they're 
ready, she knows where we need feedback before we can continue, etc.  I think 
we've got a decent system, but I'm sure it could be improved.  The result, 
though, is that the pace at which work is getting done in the DB layer is 
improving.

We need that for the rest of core, too.

Now, I'm not saying that to in any way malign the other people listed in 
MAINTAINERS.txt.  I am saying that there are far too people in 
MAINTAINERS.txt.  Right now, there's 12 entries in MAINTAINERS.txt[2], and 
some are the same people repeated multiple times.  There are 60 
separate "components" listed for Drupal, most of them specific modules or 
subsystems.  That leaves (oh I hate arithmetic) 48 sub-pieces of core that 
fall under the "The rest: Dries Buytaert", that is, left to random passers by 
to not just review but also keep consistent and uncrufty.  Not all of those 
components needs a dedicated person just for that piece, of course, but right 
now there's simply far too many people taking "ownership" over parts of core, 
in any version.  Hell, I can't even find someone to take ownership of the 
Postgres driver. :-)

As an extreme example, Linus Torvalds almost never reviews individual patches 
anymore.  The subsystem maintainers maintain their pieces, and then send 
rollups to Linus that he reviews en masse and/or accepts that the subsystem 
maintainer knows what he's doing and just commits it.  Of course, Linux has 
an order (or two) of magnitude more code than Drupal and they're also using a 
distributed VCS that is designed for that workflow (and no, I am NOT trying 
to bring that debate up again so don't even start), but it is a datapoint we 
should consider.

So the question then becomes how do we get more people willing to long-term 
adopt parts of core and actively maintain it, to the point that the core 
committers work mostly with the subsystem maintainers who in turn work with 
the issue queue for their part of core?  How do we streamline that process, 
*and* attract the people who can handle that job?

I don't have an answer for those questions yet (if I did, we'd have a Postgres 
maintainer by now), but I do believe those are the important questions to be 
asking.

[1] http://drupal.org/project/issues?projects=3060&states=2
[2] http://cvs.drupal.org/viewvc.py/drupal/drupal/MAINTAINERS.txt?view=markup

-- 
Larry Garfield
larry at garfieldtech.com


More information about the development mailing list