You may want it.
You may dream about it.
You have been reading everywhere that open source is the best, that contributing makes software better, that google does open source and Tux rocks when it is shared.
Somehow … you have been always wondering: How the hell do i contribute to open source?
How could i get my name on that v0.7 alpha release?
How could i be a programmer?
This was something i was having trouble with myself.
Since i was 12 i always heard wonders about open source. Now with 25, i found myself with 0 contributions to open source.
But that changed.
And when you finish this post, it will likely change for you too.
Let’s go straight to the point. You want to do this, you crave to do this. So, how do you start doing it?
Unfortunately, there are not many resources that describe in detail the whole process of contributing to open source, so let’s start by defining them in these steps:
1.- Find a good issue to fix
2.- Code solution
3.- Make a Pull Request and socialize with the repo’s people.
And let’s go
1.- Find a good issue to fix
This is by far the greatest problem i think everyone has.
You think: Ok, i would like to contrbute … but, is there anything i could help out with?
There is, bro (or sis!).
It took me a while to figure out a good process to look out for thing i could get my hands on and start helping out with, so i’m going to share it in clear detail now.
The process goes like this:
a) Find a niche you would like to contribute.
As aspiring contributers, we would LOVE and idealize contributing to every repo out there. What about the dolphin emulator? Oh! Look! That is the brand new google project everyone has been talking about, i would love to contribute there! …wai … wait! is that the WordPress Core ? oh man i would love to hack it!
This is indeed, a terrible mistake. A huge one actually.
What you should do instead is: find a subject you really like to and go from there. So for example, if you love jQuery, you should stick to solving jQuery related issues, or maybe you like security, then you should go see what’s up with s WordPress security plugins.
It is tempting to let the idea of contrbuting to everywhere run into your head, but soon you will realize, that you are doing anything but contributing.
b) Find reputable companies/people that have open repos.
It is better to contribute to a plugin that is used by 100,000 people, than one that is used by 100.
Also, by looking at professional companies, you almost guarantee that your contribution and code legacy will last long enough, as plugins developed by huge companies are constantly getting updates.
c) Look through the issue tab on github and grab something that is fine for current your level.
We would like to fix that 5 year bug on our first contributions, but let’s be honest: it’s probably not happening.
Being honest with yourself is very hard when it comes to finding a good issue, but the more you stick to your self-knowing, the more you will self-develop. Don’t feel bad if the only thing you can do at the moment is add some PHP Doc blocks at the time. This will fire up your motivation to start learning new things and you will catch to other people’s level in no time.
In general, look briefly at an issue and if you don’t understand a heck of what’s the issue about, you should probably look out something else.
Real life Example:
Let’s go and follow the process described above. I highly suggest you go and do the same so you really learn how contributing is done.
a) Defining our niche.
Since i’ve been coding mostly with PHP and WordPress, it makes sense that i choose WordPress as my coding niche.
b) Finding good companies.
Ok, so how do you find companies that make good things for everybody?
For example: you could try digging the plugin section of WordPress.
So let’s see popular companies that make cool plugins:
Right off the bat, a name poped in.
And it’s no other than the company who develops most of WordPress : Automattic.
Would be pretty cool to contribute to one of their repos, wouldn’t it?
So now that we have a cool company we would like to contribute, let’s dive in into Automattics github to see what are they up to lately:
It seems amp-wp and wp-calypso have been getting a lot of love lately!
c) Looking through repos for the best match for us to contribute
After checking for a while the issues both repos have, i’ve found something i decided i’ts withing my scope of fixing and that i would actually like:
We have our perfect match here: something i can fix and that also will teach me through.
So far, we have covered the first part of the process. We went through the process of finding where our help could be used and we selected an issue to work on. In the upcoming articles, we are going to talk about the actual coding and doing your first Pull Request so you can fully wear the contributor badge on your belt.
Until next time 😉