First timers’ Practical Guide to Open Source Contribution
An Open Source Software source code is public with everyone having the freedom to understand how the program functions. You can also modify it by fixing issue(s) or bug you noticed, propose a new features or even interact with makers of the project.
- What is Open Source
- General approach to open source contribution
- Step-by-step guide for Open Source Participation
- Practical Steps to take before making an Open Source contribution for Code newbies
- Non-coding approaches to Open Source
What is Open Source?
Open Source simply implies code that is freely and publicly available for anyone to use, inspect, modify or enhance.
As a first timer, you will get scared and confused on how to contribute to open source projects. I assure you will find a way after going through this article.
General approach to open source contribution
Find open source projects on GitHub: Search for Open source project built with your preferred programming language.
Pick an open issue: Choose an issue with “first-timer”, “beginner-friendly”. If you are interested in fixing the issue, add a comment stating you would be working on it.
Work on the issue: Go through the `CONTRIBUTING.md` file to know how to contribute.
Submit your Pull request: Make sure you follow the conventions stated in the CONTRIBUTING.md file while submitting a pull request (PR). Add Good commit message too.
Wait for feedback: The Open source maintainer(s) will review the PR or suggest changes if there’s need before it’s merged.
Step-by-step guide for Open Source Participation
There are two basic ways of contributing to Open Source;
a. Create your own Project Publicly:
This involves starting your own project and hosting on github.
Open the terminal or command line interface locally in your computer and follow the steps below:
cd desktop/yourProjectFolder (To change directory to a folder for your project)git init (To initialize empty respository)git remote add origin https://github.com/yourusername.git (To agit remote -v (To sync with the github respository)mkdir foldername (To create new folder)Code (To open in favorite Code editor e.g VS Code, Atom, Bracket, Sublime Text etc)git add . (To add all changes)git status (To confirm changes added)git commit -m”Short description of the changes made or files added”git push -u origin master
b. Contribute to existing Open source projects:
Before participate in open source contribution you need to understand the project and the codebase. the following will help you to make the first step;
Practical Steps to take before making an Open Source contribution for Code newbies
- Find a project you would like to contribute
- Go through the README file
- Read the Code of Conduct
- Read the Contributing Guideline
- Read the Development setup instructions
- Read how to setup the project
- Indicate you are will work on an issue by commenting
- Fork and clone the project into your computer locally
- Submit a Pull Request
- Your Pull Request is reviewed and merged.
These steps will be a guide to download the project locally, make changes and then push online for review:
cd your-local-directorygit clone https://github.com/projectname.git (To clone the project)git checkout -byour-branch-name (Create a new branch and switch to the branch)import into your code editorgit status (To check tracked files in the directory)git add . (To apply your changes)git commit -m”Short description of the changes made” (To commit your change)git push origin your-branch-name (To push changes to github)Log in to github and click on `Compare and Pull request`
Non-coding approaches to Open Source
There is a common misconception that one should know how to code in order to contribute to an Open source project. Fortunately, most contributions are “code-free”. Below are ways to contribute even without knowledge of Code:
- Submit Bug reports
- Ask questions by getting involved in the discussions
- Answer others question and respond to users that need help
- Write blog post on Open Source
- Being an advocate/evangelist of Open Source project(s)
- Writing Tests
- Help with design
- Support Open Source project(s) financially through sponsorship
- Write/improve Documentation.