On Fri, Aug 13, 2010 at 11:06 PM, Loïc Minier loic.minier@linaro.org wrote:
On Fri, Aug 13, 2010, Andrew Stubbs wrote:
I think it's relevant to consider two things around this tracking: - we're tracking a feature or a bug fix
There's no automatic way to determine this, but it could be tracked using launchpad tags. Updating the tags might be tedious though.
- we want to track updates to this new feature or this bug fix
Again, there's no automatic way to do this, but it's easy enough to do it manually. We would modify one of the tracking tickets to reference both parts of the patch (and close the other ticket, or mark it a duplicate).
Sorry, wasn't clear, the part of my email which you quote above was meant to underline the properties of the patch tracking system that I care about rather than suggesting a design. The bottom of my original email has more ideas on how we could make sure we don't miss anything.
Before we dive into implementation questions such as Launchpad tags, or tickets, or new software to be developed, I think it's important to understand the fundamental goals of the tracker and the data it would be working on.
I personally think the processes should act on upstream mailing-list threads, on upstream checkins in various branches, and on our checkins in our branches. Launchpad bugs/tickets could indeed play an important part of that, but I suspect we'll need more on top of Launchpad, and the relation might be anywhere from zero Launchpad bugs for a patch which is in Linaro and upstream, up to many bugs for a single feature getting developed upstream, then backported to Linaro, or vice-versa.
For instance, we want to make sure we review all upstream commits and all upstream emails with patches, but we might not want to open one bug/ticket per upstream email or email thread.
I'm worried about this getting too big. Our immediate needs are: * Being able to send patches upstream and track what happened to them * Being able to do work upstream and track the upstream version where they landed
These two together lets us track what patches need to be brought forward on a rebase.
I wrote up the basic classes some time ago: https://wiki.linaro.org/WorkingGroups/ToolChain/PatchTracking
It's done as a set of reduced classes as they're easier to understand than use cases.
This captures the case where patches are accepted as is, modified before landing upstream, or rejected. It doesn't handle patches later being refined or obsoleted but that is outside scope and can be treated as a new feature.
There's a separate question about tracking other upstream changes and deciding what to backport. We shouldn't backport everything, only those that have either a performance gain or clear correctness gain.
Implementation-wise, I can see two good uses for Patchwork: * It provides a rolled-up summary of any of our patches. Easier than trawling through notes on a Launchpad bug * It (may) provide a shared way of making sure we've reviewed every patch for a potential backport.
Note that reviewing upstream patches for backport is a new feature and outside the scope of the Linaro patch tracker.
-- Michael