Hi am Computer Science student currently in college and very interested in developing open source software especially ubuntu.Is there a one stop go-to place for reading about developing ubuntu.

For example I scoured through the official tutorial and documentation of Python and I was good to go.I could write useful applications. Is there any equivalent for Ubuntu or unity? I tried downloading the alpha 2,put kept crashing every 5 minute. I was told in IRC,it was due to some Xorg stack change.

Now I cant even look at new Unity,let alone help develop it.

Any help or guidance appreciated.


4 Answers 4


Developing for Ubuntu

Thanks for taking interest. Just some few clarifications. There is nothing such as an Ubuntu software (I know you didn't mean it). All the Ubuntu specific changes can be made available in other distros too. Their packagers have to package it.

Alpha 2 crashing

Natty is still under development and there is still a Xorg transistion under progress. I would recommend you to start working on stable releases. Use Maverick (10.10) for your development work. This way you will spend more time developing applications rather than encountering alpha bugs.

If you want to contribute to Natty or Unity, then surely you need to run Natty Alphas.

Unity Development

If you want to develop for Unity, then you need to get Natty and checkout the source code.

bzr branch lp:unity

There is a file in the checkout branch for explaining what it's dependencies are and how you can get it to build.

If you want to get your code into unity maintree, you need to sign Canonical Contributer Agreement You don't need to sign it everytime you submit your code. Once it enough

Unity Bitesize bugs

The best way to get involved is to fix small bugs in Unity. Jorge Castro keeps posting a list of Bitesize rockstars regularly. Here is a list of bitesize bugs , you might want to talk to Jorge Castro (jcastro on IRC on channels #omg!ubuntu! etc - he also hangs out in Ask Ubuntu chat) before starting if you need extra help.

Here is a documentation for Getting Involved in Unity Development

Development on Ubuntu

As Burli pointed out, Quickly is a great tool for developing. It takes care of many things. Using it on Ubuntu is very easy as it integrates with ubuntu development platforms like Launchpad, PPA etc

QUickly handles the boilerplate code and provides you with templates. Like one is for packaging. As per LWN article

Released template is ubuntu-project, which automates working 
with Ubuntu-compatible code (using Bazaar for version control, 
Debian packaging, and Launchpad.net Personal Package Archives (PPA) 
for releases).

You can also read about it on this Ars Technica article from Ryan Paul

Language of Choice

Python is the most famous choice of development as I can see. I might be wrong since many also like to develop on Gtk/C or Boost/C++.

There are also other languages like Vala using which you can have native applications but have a higher level language.

If you know C#, you can use it for creating applications using Gtk# for UI.

  • 2
    Not be forgotten developer.ubuntu.com . Feb 18, 2011 at 13:01
  • 1
    @Gaurav: It is under development. Might take time Feb 18, 2011 at 14:45
  • 1
    I've found that the best way to learn is to start doing. Get involved a project that you find interesting (or start your own) and get your feet wet. You'll run into lots of problems, but you'll learn just as much. Good luck!
    – Erigami
    Feb 18, 2011 at 17:01

This is sort of related, and I debated whether to post it.

One of the easiest ways for a student to get into open source development (and see code you wrote show up in Ubuntu) is to get involved in Google Summer of Code. Adding a new feature to an existing piece of software is an experience you won't get in school, but it will change the way you look at programming. Student participants are paired a mentor from an open source project who will help them get started and can help them with the difficult bits.

Plus, you get paid and it looks nice on your resume. It's great experience. I strongly recommend checking it out.

  • I heard about it.But I heard it was extremely difficult to get. Mar 5, 2011 at 15:01
  • There's more competition than there used to be, especially for larger projects like Ubuntu or Mozilla. But if you find a smaller project, talk to the developers (and read their wiki!) beforehand to find out what they're looking for, and have a really nice writeup, your chances are decent. You may have to try a few projects; the first one I queried didn't pan out. Having a few patches under your belt also helps, although I guess that's what this question was about. :-) FWIW, I didn't know much more than basic C++ and some data structures going in.
    – James
    Mar 6, 2011 at 6:08
  • Where did you,do your Gsoc? Mar 10, 2011 at 11:19
  • AbiSource. One of my classmates, the person who encouraged me to get into GSOC, had a project on CMS Made Simple.
    – James
    Mar 10, 2011 at 15:39

A good starting point might be the Ubuntu Wiki. Especially for Unity take a look at the Ayatana Project


[EDIT] If you like Python also take a look at Quickly


This is a Project Management system with some special features like packaging and distributing the sourcecode on launchpad.net, which is also a good place to look for informations


Well, my answer maybe is useless, but the only I followed: just start reading the unity (and related project like compiz, nux...) sources and try to work on what you're intrested. grep could be also a nice friend when it comes to work on simple modifications.

Not the answer you're looking for? Browse other questions tagged .