How I made my first open source contribution
So you are starting to think about contributing to open source, but you don’t know where to start, well you are at right place. In this post, I will discuss the benefits of contributing to open source and how I started as a beginner and made my first contribution.
So why should you contribute to open source?
I know that’s why you’re but still, if you have your doubts, like why should you waste your valuable time for writing code for someone else and that too for free? Well there are many reasons you should, no matter what is your goal, here are some of them.
- Whether it’s coding, user interface design, graphic design, writing, or organizing, if you’re looking for practice, there’s a task for you on an open source project.
- You get to meet people who have similar interests and sometimes form life long friendships through their participation in open source.
- Working on shared projects teaches you many things like you get to explain how you do things and ask others for help.
- But most importantly, if you are looking for good opportunities for your career then contributing to open source helps you build a resume that stands out of the crowd and it also helps in building your online presence.
Ok, so now you have a good reason to contribute, but where to start?
Before start looking for projects you should know the workflow of a pull request, for that, I would recommend you to go complete the steps given in Roshan Jossey’s first-contributions and make your first open source contribution.
After you are done with the above steps, then you are ready to go out in the open source jungle and try to hunt some of the easy bugs. Here are some resources for the same -
- up-for-grabs is a place where you can find beginner level bugs in almost any language/framework you are interested in.
- If you want some more sources, see firsttimersonly
- Bugs Ahoy is another place where you can find beginner level bugs in many technologies in mozilla open source projects.
- Many open source projects have labels on their issues marked as
first-timers-only
,beginner-friendly
or something like that for beginners and first time contributors like us, you can take a look at those issues. - If you still have any concerns related to any project or you are still unable to find a project to contribute to you can join the slack channel of first contributions team mentioned above, and discuss it there.
Found your project!, let’s start contributing…
Once you have found an issue you would like to contribute to,go through their readme and first get know what the project is all about.
Then before you start working on the issue, just find their contributing guide and read it to know how to setup the development environment for that project.
Join any IRC or slack channel or any mailing lists in that project, introduce yourself there and tell others you would like to work on that particular issue, also don’t forget to comment on the issue that you want to work on it.
Once you have discussed the issue with the maintainers, you can follow the steps you did in first contributions project in the previous section to fix the issue and create a pull request.
Now wait for the pull request to be reviewed by the maintainers and if they suggest any changes complete those changes and commit them.
Celebrate!
If your pull request gets merged, then break out a celebratory beverage of your choice! You’re now an open source contributor!
My first contribution
I also followed the above steps to make my first contribution and I made it in freeCodeCamp, and at the time of writing this post my pull request is ready to be merged. I too wandered around many github issues of many projects till finally found this issue.
The issue was that a freeCodeCamp test was very tricky to pass because even if there is a space before/after a ;
, you won’t be able to pass it. It was using javascript regex to check if the code was correct or not.
At first when I saw the code for this issue I had no idea how javascript regex worked and I wasn’t able to understand even a single piece of that code, then I viewed the documentation for javascript regex, practiced on some online regex editor, understood where the problem actually was and finally made a pull request.
Some tips from my personal experience
- If you find an interesting issue don’t just jump and start working on it, first read the comments on that issue to check that whether it is already assigned to someone or not and check if it’s not too old. After that comment on that issue that you want to work on it and wait for someone to respond, because I too ended up on a couple interesting issues, started working on them and later realized that those issues are not active anymore, i.e., their maintainers just forgot to close them.
- Don’t get disappointed if your pull request doesn’t get merged, ask the reviewer what mistakes you made and what changes you should make in your PR get it mergable.
- Most importantly don’t lose hope, you will find many repositories that will be in your favorite framework/language but still you might not be able to understand what’s happening in the code, that’s ok, just stick a little bit longer and try to understand the code even if you have to google every function, eventually you will understand it.
I hope this helps you or motivates you in getting started with open source.
Thanks for reading ;)