[20:58]  * jcastro taps on the mike
[20:58] <jcastro> 2 minutes!
[21:01] <jcastro> ok, I'll give it a few more minutes for the last minute stragglers
[21:01] <jcastro> wave if you plan on participating in this class please!
[21:04] <jcastro> ok let's get started
[21:05] <jcastro> this session is Adopt an Upstream/Package
[21:05] <jcastro> I'm Jorge Castro
[21:05] <jcastro> by day I work at Canonical on the Ubuntu community team
[21:05] <jcastro> by night I fight crime. ( Just kidding )
[21:05] <jcastro> This session is going to be for people who are interested in strengthening our relationship with upstream projects by means of doing bug work
[21:06] <jcastro> So let's start off with the basics, what exactly is an "upstream"
[21:06] <jcastro> if you think about it like a river it makes sense
[21:06] <jcastro> there are projects out there like GNOME, KDE, Firefox, gwibber, openoffice, etc. that are independent software projects
[21:07] <jcastro> what a distribution does is put all those together, add some polish, and ship it as an os that we call "Ubuntu"
[21:07] <jcastro> so, these projects are what we call upstreams
[21:07] <jcastro> for many of these we derive the packaging from Debian, so in a way Debian is also an upstream to us.
[21:08] <jcastro> and for derivatives that build off of ubuntu, they're downstream from us, and we're their upstream
[21:08] <jcastro> so it's like a big river
[21:08] <jcastro> sometimes these relationships get complicated, so for most users they might not understand where the software comes from
[21:08] <jcastro> so when we get bugs they might not be something Ubuntu can fix
[21:09] <jcastro> but since we distribute this software, it's our responsibility to make sure that user bugs and things are reported, especially if those bugs contain a patch.
[21:09] <jcastro> For major projects we have instructions on how to "forward" these bug reports.
[21:10] <jcastro> https://wiki.ubuntu.com/Bugs/Upstream
[21:10] <jcastro> however, we have lots of users
[21:10] <jcastro> and upstreams usually have finite resources
[21:10] <jcastro> so what we need in abundance are people who are skilled enough to filter out the bad bugs, and ensure that upstreams are getting the high quality bug reports.
[21:11] <jcastro> We purposely don't do anything like automatically forwarding bugs, because that would get out of control quickl;y
[21:11] <jcastro> we need an actual human being to check each bug report and make sure it doesn't suck before considering forwarding it upstream
[21:11] <jcastro> so, we created a program for people to be able to say "I want to do this!"
[21:11] <jcastro> so we created Adopt a Package
[21:11] <jcastro> https://wiki.ubuntu.com/BugSquad/AdoptPackage
[21:12] <jcastro> This is basically when someone says "I care about this program, and I want to help fix it."
[21:12] <jcastro> So on this page we list programs that could use the help
[21:12] <jcastro> Let me show you an example of one.
[21:12] <jcastro> https://bugs.edge.launchpad.net/ubuntu/+source/gwibber
[21:12] <jcastro> this is a program that has been getting love lately
[21:13] <jcastro> and yet there are still 61 bugs in the "new" state
[21:13] <jcastro> that means there are 61 opportunities to either confirm a bug, mark it a duplicate, or maybe it's not a bug at all
[21:13] <jcastro> http://status.qa.ubuntu.com/qapkgstatus/gwibber
[21:13] <jcastro> now if we look at this graph
[21:14] <jcastro> we can see that the amount of triaged bugs is going up
[21:14] <jcastro> but we can probably do a better job taking care of the "new" bugs.
[21:14] <jcastro> So as you can see here this is a package that people have started to take care.
[21:14] <jcastro> So really, what's required to "adopt" a package
[21:15] <jcastro> Well, the one fundamental thing you really need is to care about it
[21:15] <jcastro> I usually tell people to pick a program they're passionate about
[21:15] <jcastro> be it your pet mp3 player or something else
[21:15] <jcastro> then really you can just dive in the open bug reports.
[21:15] <jcastro> many of these are low hanging fruit
[21:15] <jcastro> for example as we get towards beta many people will start reporting bugs
[21:15] <jcastro> but might not have enough information to be useful
[21:16] <jcastro> so just by asking people to use apport or to add more detail in the bug report can be useful.
[21:16] <jcastro> Remember that the more information we can have in a bug, the better
[21:16] <jcastro> so if we can have people just adding more information that can save time later on when a developer is trying to solve the problem
[21:17] <jcastro> also, as we get later in the betas people tend to report more duplicates
[21:17] <jcastro> one can spend days just marking duplicates, so that is something you can do.
[21:17] <jcastro> when you get a good quality bug report and it's been triaged
[21:18] <jcastro> sometimes a developer will mention that it's probably a bug in the upstream software
[21:18] <jcastro> but they might not link it to the upstream bug report
[21:18] <jcastro> another possible place to help bugs is when they have patches attached
[21:18] <jcastro> https://bugs.edge.launchpad.net/ubuntu/+source/gwibber/+patches
[21:18] <jcastro> on any person, project, or package in launchpad you can add a +patches to the URL
[21:19] <jcastro> and it will show you any patches that people might have attached to a bug.
[21:19] <jcastro> many packages have tons of old patches that might be sitting there throughout the years or months
[21:19] <jcastro> so keeping an eye on the +patches for a package is something that can be done
[21:19] <jcastro> sometimes it might be old or doesn't apply
[21:20] <jcastro> or sometimes it just needs some testing
[21:20] <jcastro> and in some cases asking the person to push the patch upstream can be helpful
[21:20] <jcastro> remember that while it's nice to fix it in ubuntu it needs to go back to the original project!
[21:20] <jcastro> this is a good idea for a number of reasons
[21:20] <jcastro> a) It's just the right thing to do to help improve their software
[21:20] <jcastro> b) Less maintenance and delta from upstream is always a good thing
[21:21] <jcastro> c) Sending it upstream fixes it for everyone long term instead of for one release of ubuntu
[21:21] <jcastro> Any questions so far?
[21:21] <jcastro> qense: anything to add?
[21:22] <jcastro> one thing I like to do, when watching the +patches view
[21:22] <jcastro> is taking note of that "age" column
[21:22] <jcastro> if someone has taken the time to write a patch for something
[21:22] <jcastro> and it's been sitting there for months and no one has responded, then that's pretty rude!
[21:22] <jcastro> so I usually try to remind a maintainer if a patch has been rotting in lp
[21:23] <jcastro> many maintainers have tons of things to do
[21:24] <jcastro> so if someone does that filtering for them that gets the important things filtered from the chaff, then that's more time they can spend to help make ubuntu better,
[21:24] <jcastro> any questions so far? That's basically it
[21:25] <jcastro> as always, feel free to ask someone in #ubuntu-bugs if you have questions on how to be a better adopter
[21:26] <jcastro> and thanks for your time!
[21:28] <charlie-tca> Question: does this apply only to packages in main?
[21:28] <leftyfb> oh, I thought the questions were asked in the other room
[21:28] <leftyfb> damn
[21:29] <leftyfb> I don't think this went well
[21:29] <jcastro> ah sorry
[21:29] <jcastro> let's start over with the questions
[21:29] <charlie-tca> they were
[21:29] <jcastro> leftyfb | who do we get to push patches and how?
[21:29] <jcastro> so usually this might be a maintainer
[21:30] <jcastro> but it can also be a team
[21:30] <jcastro> so for example, let's say you're looking at patches in gqibber
[21:30] <jcastro> er, gwibber
[21:30] <jcastro> https://bugs.edge.launchpad.net/ubuntu/+source/gwibber/+patches
[21:30] <jcastro> so in this case I would ping the maintainer, ken-vandine
[21:31] <jcastro> but, we know that gwibber is on the desktop by default now
[21:31] <jcastro> so we can probably poke the team
[21:31] <jcastro> so let's say ken get's hit by a bus and doesn't respond
[21:31] <jcastro> (poor ken)
[21:31] <jcastro> in that case we could ping someone on the ubuntu desktop team, by either using their mailing list or irc channel
[21:31] <jcastro> charlie-tca | QUESTION: are we only applying this to packages in main?
[21:31] <jcastro> this actually applies to everything in the archive
[21:32] <jcastro> in fact, it's those odd packages in universe that not many people use that usually need the most help!
[21:32] <charlie-tca> Okay
[21:32] <jcastro> this happens to me sometimes
[21:32] <jcastro> I'll meet someone and they'll say "no one cares about my cli mp3 player written in lisp!"
[21:33] <jcastro> but when you show people how to forward bugs to the right place they usually figure it  out
[21:33] <jcastro> actually, now that you asked that it brings up another possible place to collaborate, debian.
[21:33] <jcastro> when you push a patch upstream this benefits debian as well
[21:33] <jcastro> however with certain fixes
[21:34] <jcastro> like packaging fixes, it makes sense to ensure that that fix gets to debian
[21:34] <jcastro> in fact you'll see many sponsors ask if the patch has been sent to debian as part of the sponsorship process.
[21:34] <jcastro> which is a good thing
[21:34] <jcastro> so we can use tools like "submittodebian" for things like this
[21:35] <jcastro> http://udd.debian.org/cgi-bin/ubuntu_usertag.cgi
[21:35] <jcastro> when we do that we tag the bugs
[21:35] <jcastro> so in this report you can see that we've forwarded 1557 bugs to debian
[21:35] <jcastro> 1265 have some form of patch attached
[21:36] <jcastro> so as you can see we can do some good there by keeping debian in the loop for patches
[21:36] <jcastro> however for some packages it may just be appropriate to send it upstream and debian/ubuntu just pick it up the next sync
[21:36] <jcastro> any other questions?
[21:37] <charlie-tca> thanks
[21:38] <leftyfb> sorry one more
[21:38] <jcastro> hah, I've been looking for a reason to use the ultimate debian database for something
[21:38] <charlie-tca> yes, I looked at claws-mail. There is a developer from claws-mail subscribed to the bugs. It is still a candidate for adoptapackage?
[21:38] <leftyfb> what if it's in Fenian and sourceforge?
[21:38] <jcastro> don't be sorry I am here to please!
[21:38] <leftyfb> submit to both?
[21:38] <jcastro> which project?
[21:38] <leftyfb> gstm
[21:38] <jcastro> I submit to whichever one upstream uses most.
[21:39] <jcastro> if you're unsure I fire off an email to a developer
[21:39] <jcastro> because sometimes they have different requirements
[21:39] <jcastro> for example, some want patches submitted a certain way
[21:39] <leftyfb> the sf project seems to be dead
[21:39] <jcastro> some want patches in bugzilla, and some want them on a mailing list instead.
[21:39] <jcastro> heh, no surprise there!
[21:39] <jcastro> submit it to where upstream is looking the most.
[21:40] <jcastro> this can change too, it's not totally uncommon when I might mail someone and ask
[21:40] <jcastro> and it ends up they abandoned that bug tracker or something
[21:40] <leftyfb> Fenian being the upstream right ?
[21:40] <leftyfb> deviant sorry
[21:40] <leftyfb> iPhone and driving :)
[21:40] <jcastro> hah, I am looking for it now
[21:41] <jcastro> hmm, all the data in the package points to SF
[21:42] <leftyfb> right but emmet told me upstream is debian I think
[21:42] <jcastro> so probably abandoned upstream?
[21:42] <leftyfb> no clue
[21:43] <jcastro> yeah, the last release says 2006 on the tarball
[21:43] <jcastro> heh, this appears to be one of those cases where you might wake up one day and be the upstream. :p
[21:44] <jcastro> charlie-tca: yeah
[21:44] <jcastro> charlie-tca: usually if an upstream cares enough to watch distro bugs then he probably needs help doing it
[21:44] <jcastro> charlie-tca: usually just asking him for help can be fruitful there.
[21:44] <charlie-tca> works for me, I guess I'll grab that one then
[21:44] <jcastro> you can split up things, especially for large packages
[21:45] <jcastro> or maybe you can tackle a certain class of bugs for him or something
[21:45] <jcastro> charlie-tca: the "idea" I try to convey to upstreams is, when they have a problem that they have "our guy over at ubuntu"
[21:45] <jcastro> charlie-tca: sometimes it could be as simple as just answering questions for them
[21:46] <charlie-tca> It's just a handful of bugs for claws-mail. I will get with him on them.
[21:46] <jcastro> about things like the release schedule
[21:46] <leftyfb> ok, now i'm on a real computer :)
[21:46] <jcastro> or "I have a security fix I need to get out to my users, where do I go?"
[21:46] <jcastro> and then you point them to the security page or something
[21:47] <charlie-tca> A lot of the non-main packages seem to just sit, with the bugs getting missed completely
[21:47] <jcastro> with alot of those smaller upstreams it's a good idea to remind them when freezes are
[21:47] <jcastro> because sometimes they are in debian too
[21:47] <leftyfb> ok, so jcastro  ... how would one find out who is the upsteam? By looking at apt-cache policy for the package? In gstm's case it says sourceforge. Should we then be just checking debian just in case? And in this case, hasn't been touched since 2006 so the upstream is???  Now part of ubuntu since all further development has been done with us?
[21:47] <jcastro> so I tell them like "hey, freeze is on this date, so if you want to get a release in for Lucid you should probably target around this date"
[21:48] <jcastro> leftyfb: ok, so this is what I do
[21:48] <jcastro> apt-get source gstm
[21:49] <jcastro> then cd into that dir
[21:49] <jcastro> in there most programs have an AUTHORS file and a ChangeLog file
[21:49] <jcastro> http://pastebin.com/DhQwaxy0
[21:49] <jcastro> is what I see in the authors
[21:50] <jcastro> the ChangeLog file in the root is usually the upstream changelog
[21:50] <jcastro> the debian/changelog will be the person that put it in debian/ubuntu
[21:50] <ClassBot> There are are 10 minutes remaining in the current session.
[21:50] <jcastro> leftyfb: so, I've done this a bunch of times
[21:51] <jcastro> and let me share with you what I think will happen
[21:51] <jcastro> you'll email those two guys and they'll say "oh yeah, I remember when I worked on that, people still use that? awesome!"
[21:51] <jcastro> and then you'll ask what's up with a new release or something
[21:51] <jcastro> and next thing you know, you are the upstream maintainer for gstm!
[21:52] <leftyfb> Original-Maintainer: Ryan Niebur <ryanryan52@gmail.com>
[21:52] <leftyfb> what about that from apt-cache show
[21:52] <leftyfb> ?
[21:52] <leftyfb> how does he fit in?
[21:52] <jcastro> that's likely the guy who put it in Debian and now maintains it
[21:52] <jcastro> he probably contacted the two guys from AUTHORS
[21:52] <leftyfb> so I should be contacting him first?
[21:52] <jcastro> yeah
[21:52] <jcastro> I would say something like
[21:52] <leftyfb> ok
[21:53] <jcastro> "hey I saw you in the maintainers field, are you just maintaining this in debian or are you doing upstream work?"
[21:53] <jcastro> "and if so, is the SF project dead or what?"
[21:53] <leftyfb> ok, makes sense
[21:54] <jcastro> there are plenty of packages maintained like that in debian
[21:54] <jcastro> so in that case you could just file the bugs directly in the debian BTS
[21:54] <jcastro> if he's not looking at the SF bugs then the homepage field in the package needs to be updated
[21:55] <ClassBot> There are are 5 minutes remaining in the current session.
[21:56] <jcastro> charlie-tca: I see claws has a ppa too
[21:56] <jcastro> nice
[21:56] <charlie-tca> I'm learning
[21:57] <leftyfb> still a lot to learn with all this
[21:57] <jcastro> yeah sometimes they need help setting up PPA
[21:57] <leftyfb> but i'd love to get the package all cleaned up and up to date
[21:57] <jcastro> leftyfb: you can always just ask questions
[21:58] <jcastro> but if you can have a good relationship with the debian guy that's always ideal
[21:58] <leftyfb> #ubuntu-bugs <~~ in there?
[21:58] <jcastro> sure
[21:58] <jcastro> when I am not around you can always ping qense
[21:59] <jcastro> ok I need to eat dinner, any last questions!
[21:59] <leftyfb> thanks
[21:59] <jcastro> good thing I looked in -chat, sorry about missing it the first time!
[21:59] <jcastro> I was like "man bummer, no one came to my class", lol
[22:00] <charlie-tca> heh, Thank you very much for doing this
[22:00] <migul> jcastro, thanks for this session
[22:00] <migul> still learning...
[22:00] <migul> :-)
[22:00] <jcastro> don't worry, with openweek coming up in a few weeks we'll do it again