Journey to the Center of the Open-Source World
This post started a while ago, when my wife and son were heading back to Utah to visit family for a wedding, and I was left at home alone for a week. I had a choice to either binge-watch The Office, seasons 1-7 (sorry, Robert California, but Pam and Jim’s issues are too much for me), or do something productive. My goal was to document the process of finding and contributing to an open-source project. I’ve contributed to open-source projects before, but they’ve only been projects for school, work or ones I’ve started myself. I want to document the process from finding the project all the way to successfully merging a pull request. We’ve all been intimdated at one point or another by this community of people who choose to write software for free, and in most cases, in their spare time. My hope is that this post will show that you don’t need to know what you’re doing to get started.
The world of open-source software can be a strange and intimidating one. It’s hard enough to keep up with projects at school or work, why would anyone write software for free? On top of that, most of these people are making these contributions in their own time? And aren’t they giving up the chance to make stacks on stacks on stacks by not keeping the code to themselves and releasing it to the world?
Well, to answer some of those questions, here is a great article about the benefits of open-source software.
Before getting started with OSS, most of us (if not all) have had the impression that all the people that do contribute to these projects are super-geniuses that never break builds, name variables poorly or leave code undocumented. That is just not true. The reason we have open-source communities is because we know that everyone makes mistakes, and by pulling back the covers to see what’s really in the code, we can collectively correct each other’s mistakes, make the product better and make ourselves better in the process.
Step One: Find a project
In the past, this has always been the roadblock for me. Of course I have lots of interests and I
Resources for finding an open-source project:
Things I’m currently interested in that will help in finding a project:
- Cloud (specifically Azure)
Step Two: Find a bug (bias to action)
Step Three: Set up your environment