Contributing on open source projects can be fun. However, if you have never made a pull request on GitHub, it can be unnerving. I am sharing my experiences and a short list of how to get started.
As most developers know, a GIT repository provider supports a community where millions of people learn, share, and work together to build software. These providers are built using a version of git, an open source distributed version control system. There are several providers, namely, GitHub, Gitlab, and Bitbucket. Although I have used all three service providers, I will be referring in this article to GitHub as it represents a larger market share.
I have been a coding hobbyist for years. You can read more of my journey here:
Even with a desire to learn, I have discovered, one of the hardest parts of starting to contributing is starting. In my case, I had taken some online tutorials at KnowTheCode that were interactive, and I knew the overall process. At the time I was developing WordPress sites and downloaded a Genesis template to try. The install script did not work for me and I found the problem in the source code. I knew this would be a problem for others so I opened an issue at the GitHub repository. The developer was very kind, thanked me, and told me he would fix the problem, but encouraged me to read his CONTRIBUTING page, which was very detailed. He even listed me as a CONTRIBUTOR, which was very encouraging. So how do you get started?
I will cover a few basics below, but it you are not familiar with the Git Workflow, it would be important to work through a tutorial to learn your way around the process. Here are a few suggestions:
- Git 2.5, including multiple worktrees and triangular workflows
- This a descent interactive Tutorial by GitHub
I am asked many times by new developers: "Where do you contribute?" I can easily answer this with another question: "What software packages do you use?" I am not trying to be cavalier, but it can be that simple. Let me share an example for my own journey.
When I first started learning React, I used Bootstrap for styling so I could focus on learning React. I had used Bootstrap enough to recognize that the documentation in Create React App's documentation was incomplete. So I submitted a pull request.
So, "Where do you contribute?" Starting by looking at rough spots in the software in which you use. If you are a new developer, look at the documentation with fresh eyes and get started supporting open source software. This in invaluable experience as you move forward into a development career.
To contribute to a project you need to become familiar with the Triangle Workflow
The basics are as follows:
- Fork the repository you will contribute to your GitHub account.
- Clone your fork of the repository to your local computer.
- Make a new descriptive branch to work on (see document below).
- Commit changes to your local branch and push to your repository.
- Go to your repository on GitHub and create a pull request.
These are only the basics. The GitHub tutorial mentioned above is a good interactive example to get you use to the process. Also, I use a CONTRIBUTING document on most of my repositories which I downloaded from the first project I contributed. I continue to develop this document but fork this Gist as a reference and learn: Sample CONTRIBUTING.md.
How do you contribute? Just get started.