Strawman: eliminating debdiffs

Colin Watson cjwatson at ubuntu.com
Mon Oct 13 17:44:32 BST 2008


On Thu, Oct 09, 2008 at 08:08:34PM +0200, Daniel Holbach wrote:
> The part in our process that involves subscribing ubuntu-*-sponsors
> basically means "somebody who can upload the patch, please review it".

Right. At root, I think the thing that makes me dissatisfied with our
current process is that people who are sending us patches - things that
fundamentally need review by developers - are getting responses from
non-developers (and sometimes even told to go somewhere else by
non-developers before developers get a look-in, which is appalling). In
effect, we've set up a technical support firewall, which is always
guaranteed to annoy people who know what they're doing.

Our processes for patch handling should concentrate on funnelling them
straight through to developers in the most efficient way possible. In
theory, I can see why it's tempting for a larger group of people to try
to improve things before the small highly-contended group of developers
needs to worry about it - that's a principle we apply to bug triage work
in general - but in this case I don't think it actually helps developers
process things significantly more quickly. We do have a problem dealing
with sponsorship requests, but this doesn't seem like the solution
(except in that it might make some patch submitters give up).

> So how can we get the list of bugs with patches
> (https://bugs.launchpad.net/ubuntu/+bugs?field.has_patch=on has - 2006
> bugs right now) reasonably processed? It'd be nice if they all get
> reviews and the number of open bugs with patches down to 0.

(I see 1839 right now, so evidently somebody has been doing some good
work.)

In general I believe that anything involving a huge list of items to do
needs at least the following in order for our developers to be able to
process it effectively:

  * There needs to be a way for developers to say that they have looked
    at the item and it does not apply, without necessarily closing it
    altogether.

  * There should be a way for a developer to claim an item off the list
    to avoid duplicating work. As we've found, this works better if
    developers claim things rather than if they're assigned to them
    (where they get lost in the noise).

  * It should be concise, searchable, and ideally not divided into pages
    (so that you can use your browser's search facilities, not to
    mention the rather excellent specialised search facilities built
    into the human brain).
    https://bugs.launchpad.net/ubuntu/+bugs?field.has_patch=on is
    hopeless because it consists of 25 pages and has lots of duplicated
    bug numbers; I'm never going to skim through that looking for things
    I'm an expert on.

  * We should valiantly resist the temptation to add yet another list
    that people need to monitor regularly. I think I'm already at my
    practical limit in terms of lists I go over with my team on a weekly
    basis.

  * Some kind of incentive helps. Of course this sort of work will tend
    to accrue karma, but perhaps some way to find a list of champion
    patch integrators would help. The incentive doesn't necessarily have
    to involve your name, though; I've found that seeing the bug graphs
    at http://people.ubuntu.com/~bryce/Plots/ drop can be a great
    incentive when I'm working on a package's bugs.

  * There should be a way to get an item off the list once a developer
    has responded and it's waiting for further information. Once that
    further information is provided, it should reappear on the list,
    usually quite high up (since it is now likely that it's higher up
    the quality scale).

> Our workflow for getting some kind of patch integrated into Ubuntu is
> somewhat limited by Launchpad Bugs not offering information about the
> status of a patch. Maybe the solution is to have some kind of "patch
> triage" and a guide for how to do it. Items that come to my mind are:
>  - *is* it a patch (and not a screenshot)?
>  - does it apply against the current development version?
>  - where is the patch from?
>  - was it accepted upstream already?
>  - is it properly documented?
>  - etc.

Anything that involves judgement of the patch itself needs to be done by
people who are competent to judge it, i.e. developers. I'm afraid I've
seen far too many cases of people itching to get the bug count down for
any reason they can find rejecting perfectly good patches, and I would
be very concerned about an explicit patch triage program. I would phrase
this differently, as "what makes a good patch", but with a note that
patches that don't "comply" to the letter may well still be perfectly
useful.

> If somebody is willing to tidy up the patch, bring it into debdiff
> format, add a nice changelog entry, etc during this "patch triage" even
> better. Once this has been done, it would make sense to have some
> ubuntu-dev member review it, test it, and if it's all good upload it.

I don't object to people tidying up patches, but honestly I think there
are much better uses of their time. Trivial cleanups that anyone can do
are only going to take the developer a minute or two, and with much less
risk of error. The things that make patch review slow are not trivial
cleanups like this, but rather having to go back and forward with the
patch submitter about the intent of the patch, and the inevitable time
delays while people notice that something has been said.

Personally, it would speed my patch review up very significantly if I
could have a time-ordered list of cases where people have responded to
my comments on a patch that failed review (or even just a procmail rule
that would copy just those bug mails into my inbox or send it in the
direction of my desktop notification script). As it is, I make a comment
on a patch, the submitter replies a few days later when they have time,
and then the comment is probably lost in incoming bug mail.

> To try to workaround the limitations in Launchpad Bugs and add
> information to classify those 2006 bugs in terms of "what needs doing
> now?" we could try the following:
>  1) patch is attached and turns up on "open bugs with patches" list
>  2) patch triage happens, tag "triaged-patch" added
>  3) ubuntu-*-sponsors is subscribed, review happens
>  4) patch needs work, ubuntu-*-sponsors is unsubscribed
>  5) ubuntu-*-sponsors re-subscribed, review is good, uploaded
>  6) bug closed

If the patch triage step consisted only if "*is* it a patch (and not a
screenshot)", and also filtered out cases where a developer has already
responded giving negative feedback on the patches, I think it would make
sense for step 3) to happen en masse. I would be unhappy with any more
extensive patch triage unless it's being done by developers, in which
case you might as well just subscribe ubuntu-*-sponsors anyway.

Thanks,

-- 
Colin Watson                                       [cjwatson at ubuntu.com]



More information about the ubuntu-devel mailing list