Contribute to Open Source Projects
September 27, 2014
Have a solution to a problem that nobody's solved before? Write your own app! Somebody has something you want to build on? Find it on Github!
When you first find an open source project that looks fairly interesting, for a newbie, the idea of actually contributing to that project can be daunting. But in truth, it's not too bad. There's something to do for everybody.
- Update/write new documentation for recently added features
- Update/write new tests
- Fix a bug (check out the "issues" tab for the Github repo of your interest)
- Add new features
But wait! You forked the repo, cloned it to your local machine, updated a dead link on the
README.md, pushed the changes to your repo on Github... now what?
It's time to make a pull request! But a few tips to keep in mind:
- Have good commit messages. Make sure you've read the
CONTRIBUTING.md(or similar notes) to see what kind of standards have been set for commit messages. Oops, you messed up? Try looking into
git rebase -ito squash commits or edit the commit messages! (You may have to
git push -f origin masterto forcefully update your Github repo afterwards.)
- Only submit one commit per pull request. The collaborators of the Github project can't pick and choose your changes; it's an all or nothing deal. So give them as little code as possible to reject!
- Be very specific with your pull request message. Say what you changed, say what you didn't change, and say it again if you need to.
- Screenshots are amazing. Take one before and after your change, if it has an impact on the frontend. This helps the collaborator merging in your pull request by eliminating the need to (a) find your fork (b) clone your fork (c) run your fork locally on their machine (d) guess as to what changed (e) go back to your pull request or (f) do none of the above and just let your pull request sit around.
Following these tips won't guarantee your pull request to a open source project will be merged, BUT they'll certainly break down the initial barriers.