WorkingInDebian

Revision 1 as of 2012-02-02 09:31:39

Clear message

Dev Week -- Working in Debian -- Laney -- Wed, Feb 1st, 2012

   1 [20:00] <Laney> Hi there!
   2 [20:01] <Laney> Thanks barry (also for reminding me that I need to remember to update Tomboy in Precise :P)
   3 [20:01] <Laney> My name is Iain and I'm an Ubuntu Developer and also a Debian Developer. I've been around these parts for a few years now.
   4 [20:02] <Laney> I'm going to tell you a bit today about how you can contribute directly to the Debian project.
   5 [20:03] <Laney> There's a /lot/ (really) to know in this area, way more than I could cover in a 30 minute session, so I'll mainly be trying to give you a feel of what exists and where you can go for help. I'll provide links wherever I can.
   6 [20:04] <Laney> As you've been told in other sessions, Ubuntu is what's known as a Debian derivative. This means that most of the software that Ubuntu users use comes in from the Debian project's packages.
   7 [20:05] <Laney> We generally take what's in Debian, modify it if we need to, recompile it and then make it available to the users of Ubuntu. This process is more or less automatic depending on where we are in the cycle and depending on the particular package concerned.
   8 [20:06] <Laney> In the majority case (for Universe at least), packages are copied ("synced") automatically from Debian at the start of every Ubuntu release cycle. After this automatic period ends, developers can request copies to be performed by using a simple script.
   9 [20:07] <Laney> This https://merges.ubuntu.com/universe-now.png is an image I like to link to which shows that the majority of packages in Universe are unmodified Debian packages (the Unmodified and Needs Sync) sections.
  10 [20:08] <Laney> The Modified and Needs Merge sections are Debian packages which Ubuntu developers have modified for one reason or another. We try to keep this to a minimum as far as possible, as every Ubuntu change adds a small piece of manual maintenance.
  11 [20:08] <ClassBot> ryan___ asked: Is Ubuntu still considered a full Debian derivative even though Ubuntu uses its own shell for GNOME (Unity)?
  12 [20:09] <Laney> Hi ryan__, that's a good question. Ubuntu has always selected its own 'default' experience, even when we were shipping a more-or-less vanilla GNOME desktop.
  13 [20:09] <Laney> There will always be cases when it is necessary for Ubuntu to diverge from Debian, but the default remains that we take our packages from there, and our processes are set up for this.
  14 [20:10] <Laney> I want to outline a couple of reasons why you might want to contribute your work to Debian directly
  15 [20:11] <Laney>  - Debian is upstream to a large number (http://wiki.debian.org/Derivatives and more) of derivatives, of which Ubuntu is just one. By working up there your work will have a larger impact; you'll reach all users of Debian /and/ all derivatives.
  16 [20:11] <Laney>  - You'll also be able to benefit from Debian's QA infrastructure, not all of which Ubuntu has just yet (although we are moving more in this direction)
  17 [20:12] <Laney>  + Regular archive rebuilds to catch build failures that may have cropped up since the initial upload
  18 [20:12] <Laney>  + Automated installation and upgrade tests (http://piuparts.debian.org/)
  19 [20:12] <Laney>  + Automated build log scanning for common detectable problems (https://buildd.debian.org/~brlink/)
  20 [20:13] <Laney>  + The Package Tracking System (PTS), which is a handy dashboard that is personalised to each package. Here's the page for the 'mono' package: http://packages.qa.debian.org/m/mono.html
  21 [20:14] <Laney> You can see that there are links to details about the maintainers, automatically detected problems (as mentioned above), an overview of the bug situation and much more information. It's a really handy tool that I genuinely use all the time when checking out Debian packages (set up a browser keyword for it)
  22 [20:14] <ClassBot> ryan___ asked: Since Ubuntu is a Debian derivative, does Ubuntu contain packages that Debian doesn't currently contain?
  23 [20:15] <Laney> That's right. Being a derivative implies that a lot of the packages are the same, but not all. Some packages (e.g. unity) are so-called Ubuntu local packages meaning that they are not in Debian yet.
  24 [20:15] <Laney> The goal is to get this number as close to zero as possible, but for various reasons this isn't always so easy.
  25 [20:16] <Laney> --
  26 [20:17] <Laney> A key difference (possibly the one which has the most implications) is that of maintainership. In Ubuntu every single package is maintained by a team (either the Core Developers or the MOTUs). In Debian each package has its own maintainer. This may be one or more individuals or it may (increasingly commonly) be an organised packaging team (http://wiki.debian.org/Teams#Packaging_teams).
  27 [20:18] <Laney> This means that you always (actually only usually, as we'll see later) have a point of contact for each package, who is supposed to be an expert on that package.
  28 [20:18] <Laney> It may also be a slight disadvantage in that this person can 'block' progress if they are unresponsive for one reason or another.
  29 [20:19] <Laney> Teams are becoming increasingly common, and are a great way of finding people with a shared interest. One excellent way to get involved with Debian development is to find a team that interests you from the link above and join their IRC channel or mailing list.
  30 [20:20] <ClassBot> There are 10 minutes remaining in the current session.
  31 [20:20] <Laney> For example, if you have a Haskell package, you could post about it to the Debian Haskell Group's mailing list and you'll receive help from exactly those people who have the most knowledge about Haskell packaging. This information is, imho, much more accessible to a newcomer than the corresponsing information in Ubuntu.
  32 [20:21] <ClassBot> ryan___ asked: Are there package teams in the Ubuntu project?
  33 [20:22] <Laney> There's not so much a culture of having formal teams in Ubuntu as there is in Debian. What you might tend to find is some individuals have an interest in a package (which you can usually discover by searching the changleog)
  34 [20:22] <Laney> There are some teams though, for example the desktop team takes care of some packages and the server team some other.
  35 [20:23] <Laney> The difference, as I said, is that even though the teams exist, they do not have exclusive control of their packages. Any developer is free to develop them. This isn't really the case in Debian, where you usually have to work with the Maintainer.
  36 [20:23] <Laney> --
  37 [20:23] <Laney> Since we've only got a few minutes left I'll quickly give you some links
  38 [20:24] <Laney> One useful document is the Debian developers' reference (devref), which describes the expectations that debian has of its maintainers and how to use some of the services available to them
  39 [20:24] <Laney>  
  40 [20:25] <ClassBot> There are 5 minutes remaining in the current session.
  41 [20:25] <Laney> http://www.debian.org/doc/manuals/developers-reference/ (some iof this is only applicable to DDs)
  42 [20:25] <Laney> The New Maintainers' guide is also interesting both as a packaging guide and an introduction to the social dynamics in Debian
  43 [20:25] <Laney> http://www.debian.org/doc/manuals/maint-guide/
  44 [20:26] <Laney> The Debian Bug Tracking System (BTS) is an extremely important tool which is quite difficult to grasp at first (due to its email driven nature)
  45 [20:26] <Laney> http://www.debian.org/Bugs/Reporting and there are other documents linked fro http://bugs.debian.org
  46 [20:26] <Laney> reportbug is also a great tool for reporting bugs in debian, and `bts' in the devscripts package
  47 [20:27] <Laney> There are many mroe resources available from http://www.debian.org/devel/
  48 [20:27] <Laney> If you've got questions when getting involved with development in Debian, try contacting either the Debian mentors team (http://mentors.debian.net / debian-mentors@lists.debian.org / #debian-mentors @ OFTC)
  49 [20:28] <Laney> there are many friendly people there who will be able to help you out
  50 [20:28] <Laney> another very useful resource is the Derivatives Frontdesk http://wiki.debian.org/DerivativesFrontDesk
  51 [20:28] <Laney> This was set up to help collaboration between Debian and its derivatives. Members can be contacted on debian-derivatives@lists.debian.org  / #debian-ubuntu @ OFTC
  52 [20:29] <Laney> This is /extremely useful/ if you're an Ubuntu contributor having trouble figuring out how something in Debian is supposed to work (or need help finding a sponsor, or anything similar).
  53 [20:29] <Laney> Right, out of time. I had some more to say
  54 [20:29] <Laney> But I've made a little primer and put it up on the wbe here: http://people.debian.org/~laney/working-in-debian.html
  55 [20:30] <Laney> Feel free to email me or grab me on IRC if you have any questions.
  56 [20:30] <Laney> Happy Debianing :-)