Ubuntu Open Week - Upstream Bug Workflow - Jorge Castro - Thu, Apr 30th, 2009
(05:01:21 PM) jcastro: ok, let's get started (05:01:28 PM) jcastro: welcome to all 251 of you! (05:01:44 PM) jcastro: My name is Jorge Castro and I will be running this next session on upstreaming ubuntu bugs (05:02:08 PM) jcastro: So before I get into that let me explain exactly what "upstream" is and why it's important to ubuntu (05:02:37 PM) jcastro: First off, what we call "Ubuntu" is an amalgamation of different software projects from around the free software ecosystem (05:03:03 PM) jcastro: some of these projects include things like Firefox, GNOME, KDE, OpenOffice, and the programs that you use on your desktop or server (05:03:20 PM) jcastro: it also includes a bunch of smaller projects most people have never heard of before (05:03:47 PM) jcastro: Ubuntu takes all these projects, bundles them onto a CD and repositories and this is what people know as "Ubuntu" (05:03:59 PM) jcastro: We ship Ubuntu every 6 months. (05:04:25 PM) jcastro: Projects that ship an out-of-the-box Linux system are referred to as distributions, so Ubuntu is a linux distribution (05:04:40 PM) jcastro: some other distributions you might be familiar with include Fedora, openSUSE, and Foresight (05:05:10 PM) jcastro: since we ship a bunch of projects as part of Ubuntu, as users find bugs or have feature requests, they file bugs in our bug tracker, Launchpad. (05:05:38 PM) jcastro: The responsibility of the distribution is then to ensure that these bug reports, patches, and requests find their way to the upstream project. (05:06:01 PM) jcastro: So for example if you want rhythmbox to turn purple when it plays a certain song, this would be a feature request (05:06:13 PM) jcastro: that we would forward to the rhythmbox project (05:06:20 PM) jcastro: Any questions so far? (05:06:56 PM) jcastro: Ok, moving on (05:07:30 PM) jcastro: So as bug people like pedro triage bugs, along the line we make the determination wether the bug is an ubuntu problem that we introduced, or a problem with the upstream project (05:07:59 PM) jcastro: we then create a link in launchpad to the bug in the upstream bug tracker so that the developers of that project can see it (05:08:47 PM) jcastro: this can be confusing to someone who hasn't done it before (05:08:51 PM) jcastro: so let me show you some examples (05:09:06 PM) jcastro: First off, here are the directions from the wiki: https://wiki.ubuntu.com/Bugs/Watches (05:09:36 PM) jcastro: Since "Ubuntu" is made of a diverse set of projects, each one has little differences that we document here (05:09:41 PM) jcastro: however, the basics are the same (05:10:03 PM) jcastro: like with all bug reports, the more clearer your description is and your followup, the better chance of it getting fixed is (05:10:37 PM) jcastro: < YokoZar> QUESTION: It would be nice if I could filter a package bug list for ones that have upstream links and ones that don't. It would also be nice if I could mark a bug as something that shouldn't go upstream (since it's our bug) and thus not appear on that filter...is there a way to do this? (05:10:49 PM) jcastro: Interesting question. (05:11:06 PM) jcastro: First off, we keep a report of our upstream linkages here: (05:11:16 PM) jcastro: https://edge.launchpad.net/ubuntu/+upstreamreport (05:11:28 PM) jcastro: This is the "Top 100" projects in ubuntu sorted by open bugs (05:11:55 PM) jcastro: Unfortunately there's no way to arbritrarily get these numbers for any given package in the archive (05:11:59 PM) jcastro: (however it's on the TODO) (05:12:23 PM) jcastro: what you can do, is pick one of those projects, then click on the number, and then go back and munge the URL for your package (05:12:47 PM) jcastro: While I have you looking at this report, this shows you how well we're linking to upstream projects (05:12:59 PM) jcastro: so let's look at evolution real quick (05:13:18 PM) jcastro: Right now it has 554 open bugs, 468 of which have been determined to be upstream (05:13:30 PM) jcastro: of those 465 have bug watches in the upstream bug tracker (05:13:33 PM) jcastro: which is good! (05:13:45 PM) jcastro: that means that 465 of those bugs have been found upstream, and then linked. (05:14:02 PM) jcastro: which means that we can no directly connect our bug reporters to the developers (05:14:27 PM) jcastro: when bugs get filed in launchpad and they're not linked to upstream, they tend to languish and upstream developers have to go hunting for them, which is less than ideal (05:14:44 PM) jcastro: ideally we are providing a service to the upstream project by forwarding good, detailed bugs. (05:15:06 PM) jcastro: < SiDi> QUESTION: when i link a bug to an aditional project on Launchpad, i'm asked wether i have an URI/contact for upstream bug, or wether "i know its upstream but i don't know how to link". Why is there no option to mention it's not upstream ? (might be duplicate of above) (05:16:05 PM) jcastro: Ok, so, on any given bug in Launchpad there is a little + button and a link called "Also affects project" (05:16:29 PM) jcastro: when you click that it asks for the URL of the upstream bug tracker (05:16:53 PM) jcastro: the reason there is no option to upstream is because you should only open a task on a project if it's upstream (05:17:02 PM) jcastro: so for example, if you're reporting a bug in Evolution (05:17:11 PM) jcastro: in launchpad it shows up as "Evolution (ubuntu)" (05:17:25 PM) jcastro: if you open a task for "Evolution" that's for evolution the upstream project. (05:17:49 PM) jcastro: < SiDi> jcastro: my point is that if i want to register to another project for which upstream is hosted on launchpad, the fact of not having such an option in the list of radio buttons is irrelevant (05:17:54 PM) jcastro: oh I see (05:18:13 PM) jcastro: right, so really, the linking works best for bug trackers outside of launchpad. (05:18:25 PM) jcastro: I can see where that is confusing though, I will note it down and tell the bug team (05:19:02 PM) jcastro: ok, so what does a link look like? (05:19:14 PM) jcastro: https://bugs.edge.launchpad.net/ubuntu/+source/gnome-terminal/+bug/188565 (05:19:22 PM) jcastro: so let's look at this bug here (05:19:39 PM) jcastro: so mario reported this bug (05:19:53 PM) jcastro: and as you can see in the comments, Pedro recognized that it's a problem with gnome-terminal (05:19:58 PM) jcastro: so he added that to the comment (05:20:06 PM) jcastro: and then clicked on "Also affects project" (05:20:12 PM) jcastro: and then pasted the upstream bug report (05:20:22 PM) jcastro: which is here (05:20:25 PM) jcastro: http://bugzilla.gnome.org/show_bug.cgi?id=514318 (05:20:34 PM) jcastro: so really, both these bugs are the same (05:20:49 PM) jcastro: pedro just linked it in launchpad, and then when he reported it to GNOME, he linked BACK to launchpad (05:21:06 PM) jcastro: so that the upstream developers could refer to the launchpad bug if they want (05:21:27 PM) jcastro: the nice thing about launchpad is that it keeps track of the status in the gnome bugtracker (05:21:38 PM) jcastro: so when the bug is marked as fixed it shows up in launchpad (05:21:56 PM) jcastro: so that ubuntu developers can routinely search for bugs fixed in an upstream tracker, but NOT fixed in ubuntu (05:22:03 PM) jcastro: this makes it easier for them to pull the fix back into ubuntu (05:22:31 PM) jcastro: so if you go to the lp bug (05:22:35 PM) jcastro: https://bugs.edge.launchpad.net/ubuntu/+source/gnome-terminal/+bug/188565 (05:22:38 PM) jcastro: you'll see 2 rows (05:22:52 PM) jcastro: one that says "Gnome-terminal" and one that says "Gnome-terminal (ubuntu)" (05:23:09 PM) jcastro: one row refers to the gnome terminal in ubuntu, and the other one is gnome-terminal upstream (05:23:28 PM) jcastro: if you see a bug where the upstream is fix released, but it's not fixed in ubuntu, then that is a prime candidate for people to fix (05:24:14 PM) jcastro: so, the loop gets closed like this (05:24:53 PM) jcastro: we have a tool called harvest, which culls all sorts of info, including bugs that are fixed upstream but not in ubuntu (05:24:56 PM) jcastro: http://daniel.holba.ch/harvest/handler.py?pkg=evolution (05:25:12 PM) jcastro: so in this example, for evolution we have these set of bugs (05:25:23 PM) jcastro: you'll note too that we look for bugs closed in other distros as well (05:25:40 PM) jcastro: there is an option in bugs to link them to other distributions (05:25:53 PM) jcastro: so for example if I find a bug in gwibber that is fedora-specific, I can do that (05:26:28 PM) jcastro: many times different distros see the same bug, and in order to help reduce duplication of effort lp let's you link to other distro bug trackers (05:26:49 PM) jcastro: Another critical piece of upstreaming bugs is when patches are attached (05:27:06 PM) jcastro: it makes no sense to fix a bug and have it stuck in ubuntu (05:27:17 PM) jcastro: it's not fun for upstream developers because they don't get fixes (05:27:35 PM) jcastro: and it's not fun for ubuntu developers because they have to carry a patch over time, which brings a maintenance burden (05:28:14 PM) jcastro: so when we do merges with Debian (like we're doing with Karmic), many ubuntu developers take that opportunity to send queued up patches to either debian or to the upstream projects themselves (05:28:27 PM) jcastro: we of course encourage this, as it's healthier for everyone involved. (05:28:38 PM) jcastro: any more questions? (05:28:44 PM) ***jcastro let's people digest (05:30:23 PM) jcastro: Ok, so what can you as a normal person do to help improve linkages? (05:30:56 PM) jcastro: well, first off, as you become a more experienced triager you'll be able to kind of figure out which problems are probably an ubuntu problem, and which ones are an upstream issue (05:31:22 PM) jcastro: One can spend hours in launchpad just looking at a bug, then opening a tab, going to the upstream bug tracker, searching for the same issue, and then finding a bug. (05:31:40 PM) jcastro: and then you just read the comments, and then link the two together (05:32:12 PM) jcastro: < pwnguin> QUESTION: do I need to get the project driver to inform launchpad when a project stops using launchpad for bug tracking? (example: cellwriter) (05:32:51 PM) jcastro: that person needs to set the project in launchpad to have it say it uses and external bug tracker (05:33:00 PM) jcastro: or, you can let me know, and I'll do it. :) (05:33:19 PM) jcastro: please send me a mail at firstname.lastname@example.org and I'll fix it up. :) (05:33:48 PM) jcastro: by the way, a little late to mention this now, but hey ... (05:33:56 PM) jcastro: I am the external developer relations guy for Canonical (05:34:07 PM) jcastro: and ensuring that linkages are healthy and going to the right place is my job (05:34:16 PM) jcastro: so if at any point you see a bug where you are confused (05:34:40 PM) jcastro: or you see something that should be made better or fixed (like the last 2 questions), you can always get ahold of me to fix it (05:35:25 PM) jcastro: creating this "bridge" between the end user bug report and the upstream developer is a crucial piece of ensure that free software gets better (05:35:52 PM) jcastro: some people start small, for example this one guy andrewski stays around banshee bugs (05:36:02 PM) jcastro: he doesn't try to forward every bug in every project in launchpad (05:36:15 PM) jcastro: he picks a piece of software he cares about and then tries to do his best in that little area (05:36:32 PM) jcastro: this is ideal because the sum of people taking care of little areas improves the distribution as a whole (05:36:46 PM) jcastro: some people purposely pick obscure or neglected projects to take care of (05:37:10 PM) jcastro: this is great too, because we can all be sure right now there are bug reports or patches rotting someplace that need to get attention (05:37:54 PM) jcastro: part of my job is also talking to upstrems (05:38:03 PM) jcastro: and one thing I always ask is how well our forwarded reports are (05:38:10 PM) jcastro: in the past comments weren't so good (05:38:17 PM) jcastro: but we are making a concerted effort to get better (05:38:25 PM) jcastro: and lately things have been improving (05:38:44 PM) jcastro: sometimes users might put a link in a comment (05:38:45 PM) jcastro: for example (05:39:00 PM) jcastro: "Hey guys, I think this is bug #123456 in KDE" (05:39:13 PM) jcastro: but some people might not be experienced triagers (05:39:20 PM) jcastro: or might not know that launchpad can link the bugs (05:39:52 PM) jcastro: so I like to go over those bugs and check to make sure that it's linked, if it is indeed the same bug (05:40:03 PM) jcastro: < pwnguin> QUESTION: should the initial reporter bear any burden on the upstream bug report? (05:40:09 PM) jcastro: Ideally, that would be great (05:40:16 PM) jcastro: if the reporter is experienced, I hope so! (05:40:30 PM) jcastro: but honestly alot of people report the bug, and they might not know what to do after that (05:40:40 PM) jcastro: so there can be some mentorship or hand holding there (05:40:55 PM) jcastro: also, if the bug is "popular", usually it doesn't need to be the reporter (05:41:05 PM) jcastro: one of the other people or a bug triager can handle that (05:41:18 PM) jcastro: of course, if you do know that it is an upstream bug, you can just report the bug upstream directly (05:41:45 PM) jcastro: what I do is right before I file a bug upstream I search launchpad as well (05:41:58 PM) jcastro: and usually there's a dupe or something I can mark or link (05:42:13 PM) jcastro: < pwnguin> somnoliento: what happens is i file a bug, upstream asks a question (05:42:14 PM) jcastro: good question! (05:42:27 PM) jcastro: usually someone will tell you to put your comments in the upstream bug (05:42:36 PM) jcastro: or sometimes the upstream developer will comment in launchpad itself (05:42:51 PM) jcastro: one thing the bugs people have made is a plugin for Bugzilla and Trac (available under the GPL3) (05:42:59 PM) jcastro: that an upstream bug tracker can install (05:43:15 PM) jcastro: this allows things like comment syncing, etc. between the upstream tracker and launchpad itself (05:43:38 PM) jcastro: so ideally, there will be nicer collaboration with upstream bug trackers (05:43:52 PM) jcastro: however, not all upstream projects have a bug tracker, or they might have some homegrown thing (05:44:06 PM) jcastro: for example, vim doesn't have a bug tracker, just a mailing list (05:44:25 PM) jcastro: so in that case we have to follow up the old fashioned way (05:44:55 PM) jcastro: But sometimes yea, the reporter will report the bug, then disappear (05:45:06 PM) jcastro: in that case, it's up to people like us to at least figure out what to do with it. (05:45:24 PM) jcastro: Any more questions? (05:45:36 PM) jcastro: < somnoliento> QUESTION: Syncing comments with upstream sounds sweet. Any major projects using it? (05:45:44 PM) jcastro: Not in production as far as I know (05:45:56 PM) jcastro: however our bugs people have been working with the kernel.org bugzilla people (05:46:03 PM) jcastro: hopefully over this next cycle (05:46:37 PM) jcastro: there is a lot of work in this area, so stay tuned (05:47:07 PM) jcastro: the plugin is OSS, so even if you're running your own trac instance for your little project, you can take advantage of it (05:47:48 PM) jcastro: So one other place where you can help (05:47:59 PM) jcastro: is by trudging through the upstream bugzilla (05:48:10 PM) jcastro: and usually, after doing bug work you kind of start to get the feel for it (05:48:26 PM) jcastro: when you read a bug report and you'll think "hmmm, I've seen that in launchpad before" and then I go dig for it (05:48:42 PM) jcastro: < charlie-tca> Can it be integrated to bugzilla.xfce.org? (05:48:45 PM) jcastro: absolutely! (05:49:03 PM) jcastro: charlie-tca: I will follow up with you after this week and link you up with the right people (05:49:03 PM) xq is now known as xf (05:49:06 PM) xf is now known as xq (05:49:44 PM) jcastro: and like I said, you'll have better success picking something you care about (start small), and then being that bridge (05:50:19 PM) jcastro: then, as upstream gets our bugs and patches you help them (05:50:28 PM) jcastro: which in turn helps ubuntu (05:50:50 PM) jcastro: this "cycle" of patches, bugs, and fixes is important to keep open and flowing (05:50:56 PM) jcastro: regardless of what desktop or distro you use! (05:51:08 PM) jcastro: more questions? (05:51:30 PM) jcastro: ok, so we can bring the discussion in here now (05:51:43 PM) jcastro: and discuss amongst yourselves. :) (05:51:50 PM) jcastro: or maybe some experiences you've had (05:52:05 PM) jcastro: < SiDi> QUESTION: we do need more triagers with the insane amount of bugs, don't we ? (05:52:08 PM) jcastro: absolutely (05:52:10 PM) jcastro: yes (05:52:33 PM) charlie-tca: thanks a lot, jcastro. I am still learning (05:52:46 PM) jcastro: yes, I learn with every link (05:52:53 PM) jcastro: especially when you get one wrong. :) (05:53:04 PM) jcastro: and the upstream is like "what is this? Go away idiot." :p (05:53:23 PM) jcastro: but generally putting the right bugs in the right pile is straightforward (05:53:45 PM) jcastro: however, it is important to know that doing something wrong can be worse than doing nothing at all (05:53:54 PM) jcastro: so if you have any doubts, ask someone in #ubuntu-bugs (05:54:05 PM) jcastro: I ask people stupid questions all the time, and I deal with bugs every day (05:55:17 PM) jcastro: ok, take 5 and the next session will begin (05:55:21 PM) jcastro: thanks so much for attending!