How to get started with Open Source

I have been involved in Durgapur Linux Users’ Group for the last five years. I have been contributing to various open source projects for quite some time. The primary reason I contribute to open source is the feeling, the joy when you send a patch or a PR to an open source project. It makes you happy when millions of people use your few lines of code in everyday life.

After getting through Google Summer of Code and getting covered in Super Student, a lot of people contacted me. All of them had the same set of questions.

  1. How to get started?
  2. I know x,y,z languages. Which project should I contribute?
  3. How can I filter out a bug?

So, I thought of writing a blog post in which I’ll try to answer the questions. But first let us get an overview of what Open Source Software is.

What is Open Source Software(OSS)?

Open Source Software is computer software whose source code is made publicly available for modification and enhancements released under various licenses. "What is open source?" is a good read.

I believe that reading a few lines of code is worth much more than reading 500 pages of a book. When you follow code written by great programmers, you automatically tend to pick up some great practices while coding.

Even before I studied the Software Engineering as a subject in college, I had practical knowledge of version control systems, debuggers, issue trackers, continuous integration tools, and this was all because of contributing to an open source project.

You make a great résumé that stands out from the crowd. Contributing to open source software helps you build online presence.

But, these merry words really don’t help to get you started.

How do I get started?

The first thing is to choose a programming language. Once you are done with selecting it, search for a project you might be interested in.

Open Hatch is just for beginners like you. The search page of Open Hatch filters out bugs based on

  • Languages
  • Projects

Mozilla too has a wide range of projects with filters based on programming languages. What can I do for Mozilla?

How do I filter out a bug?

Honestly speaking, finding a bug for a beginner is a really hard job. I faced the same problems. But I’ll be listing down how you can find easy bugs and start contributing to a large organization.

Fedora

Fedora Easy Fix page lists down all the easy fixes you can get started with. Each project lists down whom you need to contact/maintainer of the project.

Fedora Infrastructure repositories contain some easy fixes. Look for the EasyFix label in the repository issues section. https://github.com/fedora-infra

Mozilla

Getting started with Mozilla is darn simple. Mozilla has multiple gateways for new fellow contributors.

  1. What can I do for Mozilla?

This site suggests projects based on the programming skill you select. Once you decide your project, it takes you to the respective Mozilla project.

  1. Bugs Ahoy!

Bugs Ahoy is a site for especially for the new contributors. The website categorizes the “Easy bugs” and “Mentored Bugs” based on various project like JS Engine, DevTools, Firefox OS, etc.

But, what if you don't know which project is based out of which programming language. Bugs Ahoy categorizes the easy bugs based on the programming languages too primarily Python, Java, Shell, JS, C/C++, HTML/CSS. One can combine the combination of filters to choose the perfect bug to get started.

  1. Mozilla Getting Involved Pages

Mozilla has Getting Involved which lists down the projects in a team. The projects contain

  • The mentors who can be contacted
  • Bugzilla page
  • IRC channel name
  • List of mentored bugs

Here is another link for Bugzilla Mentored Bugs list - https://bugzil.la/sw:mentor

KDE

If you want to start contributing to KDE, look out for the Junior Jobs tag. Like each organization, KDE also contains a section on how to get started with DE projects.

OpenStack

OpenStack is also a great project to start with. The OpenStack project is divided into various components: Swift, Glance, Nova, Horizon, Keystone, etc. Each component has its own page. If you head over to the OpenStack Wiki Main page, you can see the components listed separately.

Each Component page contains the link to repository, bug tracker(Launchpad), Documentation, etc. OpenStack calls its beginner bugs as "Low-Hanging Fruit."

And to find the low-hanging fruits? Click here!

Wikipedia

Most people on the planet have heard of Wikipedia but have never thought of contributing to it. Wikipedia is supported by Wikimedia Foundation. Mediawiki tag their easy bugs with the easy tag. Click!

Now this link is important:

GNOME

Gnome-love” is for the easy bugs who want to get started with the GNOME. If you ever visit the GNOME homepage: the "Getting Involved" link is clearly visible in the header menu bar. Here is the link you don't want to search

GNOME maintains a guide for the newcomers: https://wiki.gnome.org/NewcomersTutorial

If you want to know how to submit your first patch, read this:

https://wiki.gnome.org/GnomeLove/SubmittingPatches

If you want to build the code, then just build it from here: https://wiki.gnome.org/GnomeLove/JhbuildIntroduction

Documentation: https://developer.gnome.org/

Apache

Apache maintains several projects. project.apache.org lists a catalog of more than 140 projects to which one can start contributing.

The New Comers section is an easy read on how to get started in Apache:

http://community.apache.org/newcomers/index.html

Getting Involved wit Apache Software Foundation: http://www.apache.org/foundation/getinvolved.html

I have been an active Python/Django developer for a couple of years. So, I'm adding some bit about how you can start contributing to Python / Django.

Python

To start contributing to Python, just head over to the Developer's Guide (http://docs.python.org/devguide/ ). It starts with cloning the repository in your system and goes on to tell you can check for the easy fixes.

The developer guide mentions that how can you start with making documentation fixes, then move up to fix small bugs. Once you get acquainted you can start taking up easy bugs.

Django

Django is a Python-based web framework used by some really big companies like Disqus, Instagram, Transifex, etc. To start contributing in Django, head over to the page .

This page lists the links to mailing list, IRC channel, Issue Tracker.

Like most of the open source projects, Django also has easy fixes for the new contributors.

The "Little Easy Improvement" also mentions issues for which one can send patches for documentationwriting tests, or improving the codebase.

Django maintains a page to advise new contributors:

Contributing to open source means you share your work with an entire community. There are huge collections of open source projects available on websites like Github,SourceForge , , Bitbucket, etc. Open source contribution alone does not help. One needs to work on projects on the side for ideas to keep flowing.

I would also like to quote a few lines from a nice blog post.

You shouldn't become an artist so you can be famous, but because there's art inside of you that will kill you if you don't let it out. You shouldn't found a startup to make money, but because it's your life's work. And you shouldn't hack on open source projects because someone told you that your GitHub profile is your new résumé, but because you want to code socially.

Once you start contributing, you start interacting to people via IRC, mailing lists. I strongly suggest you go through the etiquette an organization follows. Go through this presentation to get a brief overview of it. http://www.shakthimaan.com/downloads/glv/presentations/mailing-list-etiquette.pdf

Even after reading this if you face any problem, feel free to reach me on twitter or shoot an email to sayan DOT chowdhury2012 AT gmail DOT com. I would also like to thank Chandan Kumar who helped me in writing this blog post. He can be reached at chandankumar DOT 093047 AT gmail DOT com.

 

About the Author

Author Post

13
77
5