views:

118

answers:

3

I'm interested in contributing to a Linux distro, but regarding the various distro's developer communities, I'm having a bit of trouble figuring out which one I'd most like to join.

What languages I know: C, C++, Lua, Python, and fairly familiar with Perl (though I wouldn't say I "know" it). In particular, I have very little experience with x86 assembly besides hacking stuff together for performance tweaks, though that will be partially rectified soon.

What I'm looking for: A community that provides plenty of opportunities for developers to work on various aspects of the distribution. To be honest I'm most interested in reading and working on the kernel source (in which case the distro doesn't matter), but it's pretty daunting and I figure getting into the Linux community and working with experienced Linux developers might give me a better idea of how to jump into the guts(let me know if this is bogus, or if you have any advice regarding that).

So...

Which distro has the "best" developer community in terms of organization, people who are fun to work with, and opportunities to contribute?

I've read various "Contributing to XXX" pages and mailing lists for distros like Ubuntu, OpenSuse, Fedora, etc. but I'd rather get a more personal testament from an actual developer.

+1  A: 

Somebody correct me if I'm wrong, but I think that contributing to Ubuntu can be very easy and fun if you use Launchpad. I haven't tried contributing code, but I contribute translations and file bugs on some projects.

Igor Zinov'yev
+1 for Ubuntu. It's built upon Debian, which has remarkably well-organized and well-documented tools, practices and policies. It offers user-friendly tools beyond Debian, including Launchpad and Personal Package Archives. It enjoys a very wide audience of beginners and supergeeks, desktop users and server installations. The code of conduct (which the Ubuntu community actually does seem to follow most of the time) encourages collaboration, respect, and helping others: http://www.ubuntu.com/community/conduct
Forest
+1  A: 

If you want to work with the kernel then you shouldn't be picking a distribution, but rather working upstream.

Ignacio Vazquez-Abrams
I will definitely look into this.
Big Al
+1  A: 

Unless you have a specific desire to learn the ins and outs of various packaging formats you would probably be better off contributing directly upstream to applications/libraries that you find interesting. While individual distributions often have a few management applications that are unique(ish) to them most core applications and libraries are shared between them.

As you have expressed an interest in guts it would make sense to stick to one of the main community distros (Fedora and Ubuntu/Debian) as the rest tend to be variations on a base distro. The other option is to choose a source based distribution which have a number of advantages to developers although you may find yourself spending a bit of time keeping your machine trim.

As I'm a developer I personally use Gentoo which gives me a number of things:

  • Rolling release: New versions of applications are generally available soon after release
  • Stable/Unstable mix: I can run stable core with bleeding edge on upstream packages I care about
  • Development ready: Any installed package is by default a "dev" package, the distinction between buildtime/runtime dependencies is blurred
  • Packaging is easy: If it's a simple as "configure/make/make install" writing and ebuild is very easy.
  • Contribution is easy: Contributing new ebuilds is fairly painless, from there you can get as involved as you like

Of course there are downsides, not least of all your machine spends a considerable amount of time building things and if your run a large selection of "unstable" packages you may find you occasionally need to fix-up your machine. However I find these disadvantages minor compared to giving me an up to date platform with which to contribute to upstream from.

stsquad