Because I maintain several open source projects on Github I’m constantly getting emailed questions or issues, or people are always opening up tickets with bugs, issues, complaints, etc… And I really appreciate the feedback on these projects, I really do. What I would appreciate more is if instead of just opening a ticket, or sending an email, why not fork the project, fix it, and then contact me?
Now, I know that sounds like a lot of work, but honestly it’s really not. Github has made contributing to open source projects so trivial that everyone should be doing it. Take for example a recent ticket I got for one of my projects. The gist of ticket was that if there was a space in the project name the library would throw an error. That’s a great bug! It’s also an incredibly easy one to fix. If the person who opened the ticket has actually just submitted a pull request with the fix instead the fix would already have been deployed. Granted it would’ve taken a bit more than the few minutes to open the ticket, but not that much more. UPDATE: He actually did fork the project and is trying to fix it! Awesome!
So why should you do this? Why should you take the time to fix your own issues instead of having the library owner/maintainer do it? Well, the reasons are plentiful, but here are a few of my favorites:
- You can have it now! That’s right, if you fork the project and fix the bug or add that new feature you can start using today! Even before the project owner has a chance to merge in the pull request. That’s a total win right there!
- Quicker to be released to the general public. Maintainers of open source projects are busy people and, usually, don’t spend all day working on their open source libraries. If someone submits a good patch or feature then it’s easier for them to pull it in and get it out as a proper release sooner.
- It feels good! It feels really good to contribute back to a project that you use often. After awhile you might even get commit rights to the project and won’t have to maintain a fork. That feels really good!
- Build a name for yourself. That’s one of the ways you land better jobs or contracts. People start seeing your name floating around commit messages. You get to know the people maintaining the projects, they like your work, then when they’re looking to fill a position, guess who they think of?
- It makes you a better developer. By contributing to different projects you learn different techniques. You get to understand the code of the library you’re using and learn little tricks that you might not have known about otherwise.
Those are just a few of the reasons why giving back to the open source community is great. So the question I’m going to leave you with now is are you going to be a player or a hater? Someone who just complains all day, or someone who helps to make the world a better place? I’m hoping you become the latter.