Working in Debian, a brief primer for Ubuntu contributors
Table of Contents
1 Introduction
1.1 Who am I?
The name's Iain Lane. I've been an Ubuntu Developer since 2009, and a Debian Developer since 2011 (and a user of both for quite a number of years on top of that).
1.2 How you can broaden the scope of your Ubuntu work by contributing directly to Debian.
Debian is the project which forms most of Ubuntu. If we look at a graph showing the provenance of packages in Universe, we see that approximately 75% of all packages in Universe are unmodified Debian packages (the "Unmodified" and "Needs sync" sections of the chart). Most of the rest are Debian packages that we have customised in Ubuntu for our own needs ("Modified" and "Needs Merge").
This talk and webpage are mainly to provide you with a few pointers to information that I found useful when first contributing to Debian. I do not go into detail about how to work the tools and systems described, because this would just be too large to manage and each of them has their own documentation anyway.
2 Why contribute to Debian as well as Ubuntu
Debian is upstream to a large number of "derivative" distributions (distributions which to some extent receive their packages from Debian). By working directly upstream your work will have a larger impact; you'll be able to reach many more users.
You'll be able to benefit from some QA infrastructure, not all of which is available in Ubuntu yet.
- Regular rebuilds of your packages to catch build failures that might have emerged since your upload.
- Automated installation and upgrade tests
- Automated build log checking
- The Package Tracking System (PTS), which is a handy dashboard personalised to each package, for example here is the page for the "mono" package.
A key difference that Debian has over Ubuntu is that individual packages have their own maintainers (this may be one or more individuals or a team of people). This means that, if you are interested in helping with a package, you can (usually) get in touch with someone who is experienced in it. There are also many more packaging teams in Debian than there are in Ubuntu, which means that you can easily get hold of developers specialised in your area of interest, and possibly receive reviews of your work from experts.
3 How to help yourself
There are a great many resources available to help you to help yourself when getting started working in Debian. I'll list just a couple.
One useful document is the Debian Developer's Reference (devref). While some of the devref is only applicable to Debian Developers, the majority is useful for anyone maintaining packages in Debian. It describes the expectations that Debian has of its maintainers, and how to use some of the services that are available to help you.
The New Maintainers' guide is an interesting guide to Debian packaging. Chapter 1 in particular explains a bit about the social dynamics of the Debian world, which are a bit different to those you find in Ubuntu.
The Debian Bug Tracking System (BTS) is an extremely important tool to know how to use. It can be difficult to understand at first, because it is entirely email driven and very different from Launchpad. Make sure to read its documentation and understand the basics. The `reportbug' tool is an excellent tool to help you report bugs to Debian correctly.
Many more resources available, and a lot of them are linked from a section on debian.org.
4 Debian mentors
As a new contributor, you're likely to have a lot of questions about how to achieve some specific task. You're also likely to need sponsorship for your uploads. This is where mentors can help you out.
Mentors has a website. In particular, there is a guide that intents to explain how to get your package into Debian, how to seek sponsorship and so on.
Debian Mentors also has <irc://irc.oftc.net/debian-mentors> where you will find friendly people willing to help you with technical or process questions. :-)
5 The derivatives frontdesk
Some Debian and Debian Derivative developers have formed an initiative called the derivatives frontdesk. This is a group of people who aim to encourage all Debian derivatives to contribute their changes back to Debian directly. As an Ubuntu contributor, you can call upon the help of the derivatives team if you find yourself in any difficulty. Use the mailing list or <irc://irc.oftc.net/debian-ubuntu> to contact the team.
6 How to find things to work on
If you're interested in packages, you can look at the WNPP package (more details here) for things that either have no maintainer (are Orphaned), need help (Request for help [RFH]) or otherwise need assistance. There is a neat script `wnpp-alert' in the `devscripts' package which will show you open WNPP issues for packages installed on your system (and therefore are more likely to be interested in).
You could also try and help out with a package you like. A good way to start is to look at open bugs by visiting `http://bugs.debian.org/src:packageyouareinterestedin' and see if you are able to fix any of them. Then you can send patches by emailing the bug report (nnnn@bugs.debian.org) and attaching the file.
`rc-alert' is a further script, also in `devscripts', which alerts you to serious (Release Critical) bugs in packages you have installed. You can also use this to find bugs that it may be interesting for you to help fix.
There are other ways in which you can help Debian other than packaging. Some examples include:
- Maintaining the website
- Working on QA tools and infrastructure
- Translation
- Developing project infrastructure such as the BTS
Scan the teams page for a team that interests you and mail them or join their IRC channel to find out more (but be aware that for some of these teams you must be a Debian Developer to be able to carry out the team's duties).
7 License
This page (source) and the accompanying IRC talk are Free (ⓒ Iain Lane, 2012), and are licensed under the Creative Commons Attribution Share-Alike v3.0. Attribution is via backlink to this webpage.
Date: 2012-02-01 19:40:25 GMT
HTML generated by org-mode 6.33x in emacs 23