How to find, develop and make your first pull request, and become a contributing member of an open source project
What is Open Source?
Open Source Software (OSS) can be defined as any software that has been released for the purposes of giving other people the rights to study, use, change, contribute to, and distribute the software. There are often licenses and documentation accompanying the source code that detail specific rights and information regarding the open source project.
If you are familiar with GitHub, you are familiar with the concept of open source collaboration. The technology Git was designed precisely for this purpose. With Git and GitHub, developers have a version-control system as well as a platform to collaboratively develop and share software solutions in public.
Think of the idiom two heads are better than one. With open source software, a project idea or software feature can rapidly develop with the only requirement being that the person contributing be able to come to understand the technologies involved. GitHub repositories enable this type of collaboration through creating “issues”, as well as enabling developers to comment and reply to code submissions.
Why should I contribute / what do I have to offer?
There are many reasons to contribute to open source projects:
Increase your knowledge and skills with a particular technology
Collaborate at an international level with people you may otherwise never meet
Learn about Git workflow and how to navigate many personal skills at the intersection of coding
Contribute meaningfully to projects while supporting communities and causes you care about
I made my first contribution in October during Hacktoberfest presented by Digital Ocean. My older brother encouraged me to participate even though I was in the midst of my coding bootcamp. The first pull request I made was to add alt text to images, improving accessibility for an application. During this event I was even able to tackle an issue for a Python/Flask project, a language in which I was not familiar. With the help of my brother, as well as other sources on the internet, I developed, tested, submitted and had my request merged to the main branch!
If you are able to see a problem, then develop and test a solution to a problem, you are ready to start contributing to open source projects. However, most projects will have CONTRIBUTING.md and README.md documentation that outline how contributions should be made. It is possible to make a bad contribution. Hacktoberfest, which celebrates open source contribution, this year had to make some major changes. There was an influx of meaningless or negligent contributions being submitted as people sought out the t-shirt that comes with 5 successful contributions during the event. Before you submit a pull-request on an issue, be confident that you are providing a thoughtful addition to the codebase.
How to find Open Source projects
Hacktoberfest, where my open source journey began, has an amazing list of resources and detailed information how to make quality pull requests. I will list some of their curated resources all of which I used to begin contributing.
The following resources share repositories that curate tasks for beginners:
Awesome for Beginners
Up For Grabs
First Timers Only
Good First Issues
Good First Issue
Once you start feeling more comfortable, you can find more open source projects that can use your help through the following programs:
24 Pull Requests (like Hacktoberfest, but in December)
Discover by DeepSource
Visit this guide to find out more about how you can contribute to open source.
GitHub Training Kit
Understanding the GitHub Flow
An Absolute Beginner’s Checklist for Hacktoberfest
How open source contributions can boost your career
Contributor’s Guide to Open Source Projects
How to write a good commit message
Community help in our Hacktoberfest Discord server
How to make a pull request
The first step in contributing is finding a project that you want to work on with issues open. Many major frameworks and libraries will have hundreds of issues open at a time. You will notice tags below the issue number, many will rank the urgency of the issue and display the issue’s nature.
In the photo above, it shows issue #23 asking for help creating unit tests. Next to the title of the issue are indications that they want help solving this issue, as well as indicating it is good for first time contributors to tackle.
When you further inspect the issue, you can read a longer description of the issue’s nature as well as some direction in how to address it. You will also notice contributors commenting and suggesting how they can help. This kind of open and friendly communication has been my experience when working on open source projects.
Finally, when you have written code that solves the issue, and in accordance with the *CONTRIBUTING.md *documentation, you will open a pull-request and provide the desired information. After a review, the code may be merged into the project, or the creator of the issue may give further direction to improve the code. Once the pull-request has been approved, it is merged to the main branch and you have successfully become a contributor!
Check out this Open Source Project
Last, I’d like to shoutout an open source project started by a friendly developer, it is also the project in the images above. The Sylar Project is a repository that helps users more easily find mental health resources in their local area. Below I have linked the project itself as well as the blogs Rahat has written about the inception and the progress that has been made!
The Sylar Project
*Production Link 👉 https://the-sylar-project-6avzk.ondigitalocean.app/ You will need Node.js version 8.0 or greater…*github.com
**The Sylar Project Blog Series — Rahat Chowdhury**
Find a project that is meaningful to you, whether it is a popular framework or library you enjoy using, or for a company or cause that you believe in. Any contribution, no matter how small it may seem, helps that project move in a positive direction. You will gain valuable and practical experience and continue growing as a developer.
This is my final blog of 2020, I am excited to see what 2021 will bring!
Gabriel Hicks | Software Engineer, Web Developer
*Gabriel Hicks is a software engineer who specializes in building applications and websites using the latest…*gabrielhicks.dev
Gabriel Hicks - Flatiron School - New York City Metropolitan Area | LinkedIn
*Full-stack engineer who enjoys dynamic, responsive, and beautiful UI functionality. Passionate about helping others and…*www.linkedin.com
I am always happy to connect, you can find me on Twitter, LinkedIn, or my portfolio!
Top comments (1)
Hey @gabrielhicksdev 👋
This is really a nice blog post for people who want to get started in Open-Source.
Also, Thank you for featuring goodfirstissue.dev and DeepSource Discover in your blog. ✨
I'll share this blog with our community. 😊