How I started contributing to Debian

I always wanted to involve myself in the community: I did some push requests here and there, opened bug reports and issues, lurked on IRC, but never dived head first.

I was lucky enough to be at the 2015 annual Debian Conference (DebConf) in Heidelberg, Germany, for around 2 weeks this past August. I didn't know anybody there, and found that the ~700 people there were very welcoming, nice, fun, and warm.

Debconf family foto

I met Debian Developers, Maintainers and contributors from all around the world, learnt a lot, had a blast, and experienced how much they cared about what they were doing. It really felt like a big family, and experimented in first person how diverse everyone was, while they were all there rowing and pushing forward the same boat. So it just cemented my will to get involved.

Thanks to attending, I enjoyed a couple of sunny afternoons were a DD colleague seated me by the benches outside and made me watch his workflow when fixing bugs and maintaining packages, which made everything clearer. And after that, he joyfully sponsored me to get involved in Debian (thanks again!), and we had quite the laughs from our own silly jokes we shared those days. It felt more like a camp than a conference, and I can't be happier for all the laughs, the talks, the field trips and all those evening beers half the conference had in the biergarten or the bar to space out and rest the mind :).

Now, don't get me wrong. Of course there are dark spots in the FOSS community, as everywhere. Since FOSS normally isn't paid work, people mainly get involved because either they truly believe in its ideals, want to learn, want recognition, or a spectrum in between. You will find dark corners in the project where nobody wants to contribute because they don't get recognition from it. You will find careless developers (or blatant saboteurs) who want to sit on their acquired status quo and don't do much. Or maybe you don't connect personally on how someone treats people, works, or takes decisions. You will feel thankless: everybody expects everything to work. Or maybe other people or projects use your contributions or your project's, and they don't even acknowledge it. In the future, you may ask yourself "why am I doing this again?".

You will sometimes forget to think that "Your Kink Is Not My Kink But Your Kink Is Okay" when coming by other parts of your community, or the global FOSS one. Just close whatever you have read, and think that we are rowing in the same direction.

You will need a thick skin to work on FOSS, since you expose yourself in every way.

But there's good news. Even if you only do a tiny bit of work (like me):

  • You will silence whatever demons you have inside about the current state of computer technologies. You will feel that you are already lifting your weight. And you'll want to get even more involved.

  • You will be surrounded by nice people.

  • You will learn a lot.

  • You will get some recognition (which is nice!).

As the Debian community (or the FOSS one) is big, if you don't feel right at one place you can just move.

A good side effect of all of this is that you will be spending less time talking in forums, etc, and more time working and learning. Every time you read something that you deeply know is wrong about your community (or the global FOSS one), you maybe will write a couple of words, close the window, and go do something productive instead. For me it was a real eye-opener how talking and discussing in forums produces nothing, and only the ones that do something get something done. The world is spun by the doers. Everybody says "just do it yourself, get involved". Sounds cliché but I find it is a big truth.

And for a beginner, what are some good pointers or steps to go in that direction?

Just scratch your own itch. Find something you use everyday and feel it's awful, and improve it.

I can't talk about non-community projects, but in Debian's case it is quite easy as you can plug yourself into any part of the project. If you are thinking on contributing to Debian, here it is what worked for me (I have a CS background and wanted to maintain packages to get a good understanding of how all works):

  1. Start using Debian Testing and/or Unstable if you don't use them already (have a look at the recommendations).
  2. Use a sane mail client and configure it to max 80 char width, plaintext only, and answer after quotes.
  3. Get a grasp of the Bug Tracking System: submit bugs that you found in Debian, either by mail or by using reportbug.
  4. Go through the slides on packaging-tutorial. Do the exercises, but don't sweat it much, don't try to understand everything you are doing, just do it and see that it corresponds.
  5. Now that you've got the ball going, read the New Maintainers' Guide.
  6. Start packaging something seriously (but not something too big for you), or submitting patches for something that already exists. Scratch you own itch, and contribute to some software you already use. Install how-can-i-help and see if there's something you fancy in the list.
  7. Once you know what a RFP, ITP, etc means, subscribe to debian-mentors@list.debian.org and debian-devel@lists.debian.org.
  8. Look up also debmake-doc, debian-policy and developers-reference for more extensive info.
  9. Go to #debian-mentors @oftc IRC or debian-mentors@list.debian.org and ask your questions there (after you have looked up in manuals, googled, etc).
  10. ???
  11. You have packaged something and learned a lot. Profit :)

Cheers!

Víctor Cuadrado Juan

I'm Víctor Cuadrado Juan, a developer and FOSS enthusiast, in love with Linux. Currently living in Nürnberg, Germany. Feel free to waste your precious time around here, or to contact me: me at viccuad.me .