Finding an open source project and contributing to it
Tags: opensource, tutorial
Published: 2024-03-17 17:24:16

Finding an open source project is one thing and contributing to it is another. What makes a project or anything opensource is the fact that anyone is free to view it, run it, and most importantly revise and share it.Everyone has their reason to getting involved or contributing to open source and there is honestly no wrong reason because any meaningful contribution in whatsoever way goes a long way. If you're in doubt about contributing to open source, below are some great reasons you should consider it.

## Benefits of getting involved in opensource

- Improve your technical skills
- Gain more work experience
- Broaden your horizons
- More credibility as you can prove your skills
- Network with people from different backgrounds
- Turn your ideas into life
- Build your portfolio

## Finding an opensource project
If you do not have any opensource project in mind and are genuinely interested in contributing to open source, I have a tip to share. You can start by thinking about what you love doing. Could be coding, design, writing. Then you look around you; what are those tools or technologies you enjoy using or frequent day to day? Could be Firefox, Wikipedia, Git, VS Code, etc. Find out if they are open source and have a public repository. Another way to find open source projects is to participate in programs like [Hacktoberfest](https://hacktoberfest.com/), [Outreachy](https://www.outreachy.org/), [Google Summer of Code](https://summerofcode.withgoogle.com/), etc. Even if you are not actively participating, you could visit their pages and check out past projects and organizations that were involved and get started.

## Contributing to an open source project (code contibution)
Now you've found that project but you might be overwhelmed on how to get started with contributing to it. Here are some tips:
- Visit the project's website and learn all it's about. Also find information about joining their community or public chat and make sure you join. 
- Go through the README file available in the root directory of the project's Git repository.
- Download the latest release of the project and experience it first hand. Know the basic functionalities and how to navigate across the application.
- Set Up your development environment by following the instructions on the README.md file and also read the CONTRIBUTING.md file for relevant info about contributing to the repo.
- Clone the project and familiarize yourself with the code base and its documentation. The aim for this would be to help you build and run the project locally. 
- The issues are a great place to start once already familiar with the project and its code base. For newcomers, find issues labeled “newcomer” and “good first issue”.
- Once you are familiar with working on issues or some of your PR have been successfully merged into the codebase, you can continue working on more issues with other tags like “help wanted”, “bug”, “feature”, etc. 
- If you are interested in working on an issue, comment on it and indicate your interest in working on it. You will be provided with more details and any resources requested and assigned if no other individual is assigned to it.
- Fork the repository (if Github or Gitlab)
- Create a branch with a name that matches the issue (or check the project's contributing guidelines on naming branches)
- Make your changes and be sure it adheres to the coding standards/style.
- Write a meaningful commit message which mentions the changes that have been introduced. Do not make several different unrelated changes and bundle them in a single commit. 
- Push changes to your remote fork.
- Submit pull requests to the specified branch as per the contribution guidelines.
- Make sure your pull requests are descriptive and tag the issue you are resolving to align issues with incoming fixes/changes. All PRs should match specific issues.
PRs should be opened to match specific issues by tagging them. This is an important step to help align the issues with incoming fixes and changes.

Once you've submitted a PR, you wait for the review and depending on your changes, you might receive comments from the reviewer, they might request more changes or approve the PR. Address them accordingly and be able to accept a little constructive criticism. In addition, be polite in your communications and inquiries. Also make sure your questions are elaborate and you've done your research.

Making that first contribution might not be easy but as you get acquainted with the code base, it become a piece of cake and with time you will find yourself helping out new contributors find their way around. I believe it's important to contribute to project you enjoy using or those whose values and cause resonate with you so that you don't easily lose your motivation prompting you to stick around longer.