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.
- How to get started?
- I know x,y,z languages. Which project should I contribute?
- 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
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 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
Getting started with Mozilla is darn simple. Mozilla has multiple gateways for new fellow contributors.
This site suggests projects based on the programming skill you select. Once you decide your project, it takes you to the respective Mozilla project.
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.
- 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
- Getting Involved DevTools - https://wiki.mozilla.org/DevTools/GetInvolved
- Getting Involved Mozilla.org - https://wiki.mozilla.org/Webdev/GetInvolved/mozilla.org
- Getting Involved AMO -https://wiki.mozilla.org/Webdev/GetInvolved/addons.mozilla.org
- Getting Involved SUMO -https://wiki.mozilla.org/Webdev/GetInvolved/support.mozilla.org
- Getting Involved MDN -https://wiki.mozilla.org/Webdev/GetInvolved/developer.mozilla.org
- Getting Involved Socorro - https://wiki.mozilla.org/Webdev/GetInvolved/crash-stats.mozilla.org
- Getting Involved Mozillians - https://wiki.mozilla.org/Webdev/GetInvolved/mozillians.org
- Getting Involved ReMo - https://wiki.mozilla.org/Webdev/GetInvolved/reps.mozilla.org
- Getting Involved input.mozilla.org -https://wiki.mozilla.org/Webdev/GetInvolved/reps.mozilla.org
- Getting Involved careers.mozilla.org -https://wiki.mozilla.org/Webdev/GetInvolved/careers.mozilla.org
- Getting Involved QUMO - https://quality.mozilla.org/docs/webqa/get-involved/
Here is another link for Bugzilla Mentored Bugs list - https://bugzil.la/sw:mentor
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.
- Getting Started - http://techbase.kde.org/Contribute
- Building a KDE Application - http://techbase.kde.org/Getting_Started/Build
- KDE Guide for a new contributor - http://flossmanuals.net/kde-guide/
- IRC - #kde-devel on Freenode
- Mailing List - https://mail.kde.org/mailman/listinfo/kde-devel
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."
- Getting Started - https://wiki.openstack.org/wiki/How_To_Contribute
- If you are a developer -https://wiki.openstack.org/wiki/How_To_Contribute#If_you.27re_a_developer
- Documentation - docs.openstack.org
- IRC - #openstack-101, #openstack on Freenode
And to find the low-hanging fruits? Click here!
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!
- Getting Started - http://www.mediawiki.org/wiki/Gerrit/Getting_started
- How to become a Mediawiki Hacker -http://www.mediawiki.org/wiki/How_to_become_a_MediaWiki_hacker
- Installing Mediawiki on local system - http://www.mediawiki.org/wiki/MediaWiki-Vagrant
- IRC - #mediawiki
Now this link is important:
- Annoying little bugs - http://www.mediawiki.org/wiki/Annoying_little_bugs
“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:
If you want to build the code, then just build it from here: https://wiki.gnome.org/GnomeLove/JhbuildIntroduction
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:
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.
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.
- READ: http://docs.python.org/devguide/fixingissues.html
- Issue Tracker: http://bugs.python.org/
- Easy Issues: http://goo.gl/NzJuDp
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.
- Getting Involved in Django: https://code.djangoproject.com/#Gettinginvolved
Like most of the open source projects, Django also has easy fixes for the new contributors.
- Little Easy Improvement - https://code.djangoproject.com/wiki/LittleEasyImprovements
- Easy pickings - https://code.djangoproject.com/query?status=!closed&easy=1
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.