Raphaël Hertzog: How to start contributing to Debian?
I often get requests of persons who would like to contribute to Debian but who don t know where to start. Let s try to answer this question properly so that I can give out this URL the next time that I am asked.
The Debian website has a page explaining how to help Debian. While it provides no less than 10 suggestions in a daunting text-only list, it s difficult to know what to do next once you picked up something that you could do.
I will try to fix this by providing concrete information for each cases in upcoming articles but in the mean time I propose you another approach to start with. Before answering your question ( what can I do for Debian ), we need to know some information about you.
What motivates you?
You re a volunteer, you re not doing stuff for Debian because someone told you so. You must have some intrinsic motivation and the ultimate motivation is usually that you re enjoying what you re doing.
So what are you enjoying and/or what are your motivations ?
- Is there something that you would like to learn? A new programming language? Packaging? Coding? System administration? A specific software?
- Do you want to interact with smart people?
- Do you like to help users?
- Do you like to fix software just so that it works for you?
- Do you like to build something remarkable and useful for millions of people?
- What languages are you fluent with? Are you confident to write documentation or translate documentation in those languages?
- Are you a programmer? If yes, which languages do you know?
- Can you diagnose problems? Can you debug problems with strace and/or gdb?
- Can you triage bugs?
- Do you know some Debian packaging?
- Are you an artist and/or a web designer?
- Do you know how to work with VCS (subversion, git, bzr, )?
Find something to do
At this point you have a generic idea of what you d like to do but you re still missing a concrete objective. Let s try to find one, we ll explore several ways to do this.
Scratch your itch
The best objectives are those that satisfy your own needs. Here are some examples:
- Did you notice a missing feature? Try to implement it.
- Have you been annoyed by a bug? Try to fix it.
- Did you lose too much time on something because there was no documentation? Write the missing documentation and submit it where appropriate.
- File bug reports for the things that you can t fix yourself. Even wishlist bug reports for new features.
- Do you use software that are not packaged for Debian? Create the package(s) and maintain it/them.
- Do you need a newer version of a package compared to what s in Debian unstable? Contact the maintainer and propose your help to update the package.
- Do you need a newer version of a package compared to what s in Debian stable? Contact the maintainer and propose your help to create a backport.
If you don t have a specific itch to scratch, you might want to focus your work on a specific team. Head over to wiki.debian.org/Teams and browse the list of teams.
You ll surely find one that works in an area that you like. If you select a packaging team, pick one that works on packages that you re actually using.
Some of the teams have instructions for newcomers, follow them when that is the case. Otherwise join the mailing list and the IRC channel, and get a feel of how the team works. See if it suits you, you can follow several teams at the same time and pick the one that you prefer after a few days/weeks.
Once you have lurked a bit, if you still don t know how you could help, then just ask on the mailing list. Include all the answers you have collected to the 3 questions on your motivations, your skills and your time available.
Focus on a specific package
You can concentrate your work on a specific package even if you re in a team, it s often a good idea. But I list it separately because not all packages are team maintained and you might want to help maintain a package where there s a single maintainer currently. I leave it up to you to find a way to select a package that interests you
Then head over to the package tracking system: http://packages.qa.debian.org/dpkg (replace dpkg by the name of the package that interests you)
Fill in the form in the bottom-left corner with your email and select opts in the drop-down list, then click go . You get a new form where you can select the information that you ll receive, I recommend you to keep everything except upload-binary and to validate the form.
From now on, you get the same mails than the maintainer (and a bit more actually), and it s a good idea to inform the maintainer that you subscribed and that you re going to help a bit. Maybe he s willing to grant you commit rights immediately, maybe he will ask you to send patches for a start. The important thing is to create a good relationship. In any case (even if you did not get any answer from the maintainer), you should be free to help triage existing bugs and to help deal with the flow of incoming bugs (including forwarding bugs when appropriate).
Help a Debian developer
Paul Tagliamonte once blogged Hey, DDs, need help?. He offered his help to overworked Debian developers . His post was missing all the information required (cf motivations/skills/time) but the approach is a good one.
The best way to start contributing is to work with existing Debian developers. Even if you just want to be sponsored for your own pet package, you should consider that mentoring is a burden for many Debian developers and that you re more likely to get a sponsor if you have an existing relationship with a Debian developer that you helped. Pick a developer that works in an area that is of interest, and offer him your help.
To simplify things even further, I have created a wiki page where you can find out how you can help me and thus build a relationship with me.
That s it for now, I hope this article will help you to start contributing. Don t forget to subscribe to my newsletter to not miss future articles for new contributors. Note that you can refer to this article with the following URL: http://raphaelhertzog.com/go/contributing/ (easier to type and remember).
13 comments Liked this article? Click here. My blog is Flattr-enabled.
Today I was made aware of bug
* Alas. Not going to DebConf 11
After testing Emacs, Eclipse, KDevelop and CodeBlocks for writing C++ code, I decided to stick with Netbeans. It seems to be the most simple to configure and yet full of features and plugins. I was having one problem with it that when I focused out the window, and then focused on it again, it would not really grab the focus, in the sense that I would not be able to type without first clicking with the mouse. At first I thought the problem was with Netbeans, then with the JRE. I tried using sun-java6-jre, I tried upgrading my openjdk-6-jre, and nothing worked. I searched a little bit more and got to
Trying the BitTorrent DHT
A month ago, noticing that there was a lack of a good BitTorrent tracker
software (good meaning complying with my random requirements ), I
When traveling I usually try local brands of beer. This became some sort of hobby, and usually gives me a good possibility to get in contact with the locals. For
I'm coming as well! Really looking forward to meet the people from Debconf9 again. Also people from the Games Team and the buildd and kfreebsd folks. And ideally there will be some more people interested in (Common) Lisp as well, we'll see
... is now working.
It isn't finished yet; there are still some loose ends. But at least
it works; if you combine
I am involved in developing something coined as the
For some years, tech media has tried predict when Linux have reached
momentum for ordinary users. That current or next year was to become
I have bought a
I've been in Europe for the last couple weeks but pretty occupied with
things like attending my brother wedding and a series of outdoor
excursions in Spain.
Today
I've taken a tiny step towards getting together
a prototype toolset for developing an initial development iteration
of the NAS functionality of the FreedomBox.
Here's what I am trying to do:




Two weeks ago, I updated the packages containing the BioPerl modules