My Experience with Open-Source Contribution on GitHub as a Beginner.
Introduction to Open-Source
What is Open-Source?
Open-source is a decentralized model that makes source code to be available for inspection, modification, distribution, and enhancement under a permissive license.
A relatable explanation of open source is a kind of University scenario where a University Lecturer came up with documentation to solve a particular problem but wants the document to be accessible to the students to make meaningful contributions to it. He, thus, puts the document in a public folder on the school library portal for all to have access but before their contributions can be added, it has to be approved by the Lecturer. All edits are saved in another sub-folder to be added to the main folder upon approval.
Open-source is about collaboration. It exists to support people to work with each other to build something bigger than they can create on their own.
Worthy of note is that coding is not the entirety of open-source projects. Successful open-source projects are a combination of code and documentation contributions with conversations about these changes.
Here are a few non-coding open-source project contributions;
- write tutorials or blogs for the project.
- write a translation for the project’s documentation.
- write and improve the project’s documentation.
- start a newsletter for the project.
- Help moderate the discussion boards or conversation channels.
- Answer questions for people on open issues.
- Answer questions about the project.
- Go through open issues and suggest closing old ones
- Identify duplicate issues, and suggest new issue labels, to keep things organized.
- Ask clarifying questions on recently opened issues to move the discussion forward.
Benefits of Open Source Contribution
There are a lot of benefits that come with open-source contributions. some of them are;
- It gives one a great start as a beginner by giving the opportunity to solve minor issues like bugs or make changes to a document that improves one’s knowledge.
- contributing to open source gives one the ability to write clean and maintainable codes.
- Through open-source contributions; certain skills like programming skills, writing skills, and communication skills are sharpened.
- It provides the opportunity to be part of an active open-source community for networking and collaboration.
- It is a great way to give back to the open-source community.
What are Git and GitHub?
Git is open-source software that is used for version control. Version control means that developers can create several versions of their source codes or documentation and switch to any of the versions at any time. It helps to manage changes. Git stores the files which might contain the source code or documentation in the local repository.
GitHub is an online hosting service for the Git repository. It gives one the ability to store and access source codes or documentation outside of the local repository.
GitHub is the largest open-source community that we have now so it is the best place to look for open-source issues or to join an open-source community.
My Experience with Open-Source Contributions on GitHub
My first encounter with open source was during an online tech programme. I didn’t understand the concept but kept hearing more and more about it afterwards, so I became interested.
I belong to a tech community called web3ladies and am also a part of one of the clubs in the community, the technical writing club. Coincidentally, about a month later, the technical writing club organized a GitHub workshop that was focused on open-source contributions on GitHub.
The workshop lasted for three weeks and it was held twice a week. Tuesdays and Fridays. The Workshop was held in October which was the same month as Hactoberfest, the annual celebration of open-source projects, their maintainers and the whole community of contributors. I decided to take part in Hactoberfest and I had my first successful open-source contribution and was sent a badge by the community. This was a great accomplishment for me.
My Open Source Contribution Process
Many organizations had Hactoberfest projects on GitHub. From my GitHub account, I picked one of the projects (chimoney-community-projects) and followed the processes below:
- The chimoney-community-projects had many open issues so I read through and picked the issues I felt I could contribute to which was to suggest a better call to action (CTA) for the company’s landing page.
- I forked the repository (to fork a repository means to save a copy of the repository to my own repository). To do that, I clicked the fork button in the upper right corner as shown below:
- I cloned the repository ( to clone a repository means to save a copy of the repository in my local drive or local machine). It can be achieved with either Git or the command line.
- I used Git. Git needs to be downloaded on the device. I have Git downloaded so I click on code (which is a drop-down menu) from my forked repository on GitHub as shown below and I click on open with GitHub Desktop.
- My Git opens up and I clone the repository.
- If Git doesn’t open after I have clicked on open with GitHub Desktop, then I check to ensure that Git was properly downloaded. To check, I go to the command prompt and type git. The image below shows if it was properly downloaded. If not, then I download it again.
- After I cloned, I opened the repository in my local editor or IDE. I used Visual Studio Code.
- I searched for the file to make the changes and when found, made my contribution in the markdown language.
- I committed my changes and pushed them to the forked GitHub repository (whenever changes are made in the Visual Studio Code or IDE, Git creates a commit).
It is good practice to push changes to another branch (which can be created and given any name) and not the master branch and it is also good to give a description of the changes made.
- I go to the forked GitHub repository and refreshed the page. There is a compare and pull request button which I clicked and then it is followed by a create pull request button. The pull request informs the project maintainers of the changes that have been made to a branch of that repository. I gave a good description of the changes I made and I clicked on the pull request button.
Note: The changes I made are only in my repository and not in the main repository of the organization. Project maintainers check the changes or contributions and either approve or reject them. It is approved if it has resolved the issue, if the contribution is valid and also if it is in line with their guidelines. It is rejected if otherwise.
- When the pull request is approved, It is merged and added to the project. My pull request was approved and successfully added to the project. I got a badge from Hackerfest for a successful Pull request.
My Takeaways from the GitHub Workshop are:
- I was introduced to some open-source communities and learned the benefits of contributing to open-source.
- I learned that in open source contribution, everyone has something to offer. It doesn’t have to be something big or massive. it could be correcting a grammatical error or something related.
- I learned how to use Git and GitHub.
- I learned how to use markdown language in updating documentation.
- I learned the process of open-source contribution on GitHub and effective ways of searching for issues.
- I got the awareness that it is possible for a non-developer to contribute to open-source projects. There are many open documentation, bugs and translation issues that don’t necessarily need coding experience.
- I learned how to thoroughly read issues to understand the problem statement.
- I learned how to engage the issue owner for clarification and ask further questions if needed.
- I learned how to contribute and have a successful push request.
Conclusion
Open source projects are open to anyone in the world and it’s an important part of being a member of the development community.
GitHub has a repository for first-time contributors which will be of great help to anyone interested.
For more related content, follow me on Twitter.