We heard from Ubuntu maintainers and upstream developers that it was too easy to lose track of patches in bugs filed on Launchpad — or, put another way, that Launchpad wasn’t doing enough to bring patches to developers’ attention.
According to the Launchpad Upstream Improvements Spec that came out of a recent UDS:
Upstreams frequently complain that it is difficult for them to find Ubuntu patches. patches.ubuntu.com is a diff between Ubuntu and Debian, so it’s not really useful to some upstreams. We want an upstream patch report that shows patches in packages and their age, so we can act on them. …
To help solve this problem, we’ve added two new features to Launchpad.
1. The upstream report now shows bugs carrying patches.
The upstream report now shows the number of bugs carrying patches — see the rightmost column in this screenshot:
(click image to enlarge)
If you click on the number in that column, it brings you to a listing of the bugs with patches.
2. A new “patch report” is available wherever bugs are available.
The second feature is a new patch report available for projects, project groups, source packages, people, teams, distributions, and distroseries. It lists bugs that have patches attached — for those of you who’ve seen Bryce Harrington’s mockup, this is the same thing implemented directly in Launchpad.
The goal of the patch report is to make it easier for packagers and upstream developers to find patches that could be upstreamed, and, especially, to enable them to evaluate those patches quickly.
You can reach the patch report from a new link on any bugs page. On the project bugs page below, for example, see the link “7 bugs with patches” in the portlet on the right (and you can click on any of these screenshots to get a larger version):
Clicking on the “7 bugs with patches” link appends “+patches” to the URL (hint, hint) which takes you to the corresponding patch report. There, patches are listed by bugtask, sorted by the age of the most recent patch in each bug, on the theory that new patches are probably more interesting than old ones:
But you can sort by other things as well — say, by bugtask importance:
Sorting applies across all applicable patches, not just the ones that happen to be on the current page of a potentially multi-page list. Thus changing the sort order might change the set of bugs visible on the current page:
When you hover over a patch, a popup shows details about that patch (who uploaded it, the patch’s filename, and its attachment message):
The patch report for entities like distributions and distroseries arranges patches by source package, since the same bug may have a different bugtask for each package, and each bugtask may have its own status, importance, etc:
You can also view the patch report on a particular source package:
Note that distroseries, persons, teams, and project groups all support this feature too. I didn’t include screenshots for them, to save space, but their patch reports can be reached in the expected way.
Naturally, clicking on a patch takes you straight to the diff:
These patch reports are new in Launchpad 10.02. About a month after they go live, we’re going to look at the stats on how people have been using them, and we’re going to survey some upstreams and Ubuntu maintainers to see what they feel can be improved. Please also file bug reports as you use these new features, of course (if you feel like going the extra mile, tag your bug report with the patch-tracking tag — it’ll save us some time).
Finally, please feel free to help improve the features yourself! The bug links below will lead you to the branches on which these changes were made, so you can see what the code looks like. The Launchpad development wiki is the place to start for hacking on Launchpad.
The Bugs/PatchTracking page in the Launchpad Development Wiki
Bug #283097 is about adding a ‘has patch’ column to the +packagebugs page.
Bug #283941 is about showing patches in the upstream report (see linked branch for code change).
Bugs tagged with story-patch-report are about the patch report (again, see linked branches for code changes).
Things we didn’t get to this cycle, but that we’re thinking about:
Finding patches in other distributions (but see Daniel Holbach’s amazing Harvest tool).
Showing patches in upstream trackers. Such patches might be downstreamable, or they might be the same as patches Launchpad already has; either way, it’d be good to know. See bug #403443.
Package ↔ Branch equivalence. Really, a branch attached to a bug is equivalent to a patch attached to a bug (assuming the base source can be easily located, which it often can be). Ideally, we could represent either one as the other, and treat them as the same in filters and reports.