Contributing to your first open source project.

I was recently asked to join the development team at CakePHP a position I graciously and excitedly accepted. And although I’m still a bit wet behind the ears, I thought I would share some of my experiences in how you can get involved with Open Source Software.

Pick your Pony

The obvious first step to contributing to an open source project is finding one that is good fit. A project that you are interested in and possibly use on a frequent basis will be a much more rewarding and engaging experience than contributing to a project you never use or don’t understand. There are tons of open source projects that we as developers use every day, so find something you are passionate about, and start contributing.

Learn and Connect

Now that you’ve chosen a project, find out where the developers hang out, are they on IRC do they have a google group, or forum they frequent. Go there, read, learn and join the community. Also familiarize yourself with the project if you are not already. Read the source code, read the documentation, and use the code. Don’t be afraid to ask lots of questions and always help out people who are less experienced than yourself.

Version Control and Issue Tracking

Most open source projects are web based, and as such use a number of common tools. These include version tracking, ticketing and wikis / community sites. Familiarize yourself with the version control system of your pet project. Version control is an important element in all modern day software development. It allows many developers to collaborate on the same codebase while not stepping on each others’ toes. Popular version control systems are are CVS , SVN, and more recently GIT.

Good things to learn regardless of the version control system is how to make a patch (diff). In Subversion this is done with svn diff.

 svn diff patchedFile.php > patchedFile.php.diff

The above is a simple example of how to generate a patch file with svn diff from command line. A patch or diff shows where lines have changed, and whether they have been added or removed. All version control systems have a similar utility. Many IDE’s and editors also have functionality to create these files.

Ticket or bug tracking is another key element in most open source projects. Popular options are trac, bugzilla and JIRA. In any case find the ticket tracker for the project, make an account and read the open tickets. If you find anything you feel comfortable tackling, write a patch and any tests that may be related and submit them.

Giving back

Open source projects provide an invaluable resource for the web developer these days. Whether it be a javascript library, PHP framework, webserver, or operating system, open source software is a fantastic resource. However, it wouldn’t exist without countless hours of work. Contributing to open source will help keep it going, and keep the repositories full of great code. Not only will giving back to open source give you that mushy good feeling, but you will also meet a lot of great like minded people who may end up connecting you with interesting paying work.


Comments are not open at this time.