If you're feeling uncertain about contributing to an open source project for the first time, I understand. Navigating the open source space can feel intimidating. Recently, I overcame my fear of contributing, and I documented the experience here. I gained the assurance I needed to make my first contribution by:
- asking for help
- interacting with the community
- thoroughly reading the documentation
- and trusting my skillset
I found that contributing to open source expanded my network, improved my reputation, boosted my confidence, and increased my technical skills.
You don't need to be a technical expert to contribute to open source - the tips below can help you!
Tip #1: Read the Contributing.md
The Contributing.md is a markdown document often found at the root of an open source project. The existence of a Contributing.md can indicate that a project is welcoming, inclusive, and organized. For new contributors, this is an optimal way to orient yourself with the project initially. Every open source project may follow slightly different rules, but there's no need to guess what this project's maintainer prefers. If you read the Contributing.md, you'll learn how to:
- Set up your developer environment
- Format your code
- Style your components
- Pick up issues
- Create pull requests
- Communicate with other project contributors
Here's an example of what Contributing.md look like:
Read the Contributing. md, and if you still have questions, reach out to the community!
Tip #2: Join the Triage Team
Perhaps you're still new to coding or unfamiliar with the programming languages and tooling that the project uses. Fortunately, coding isn't the only way to make an impact. One option is to join the triage team. Taking on a triage role is valuable for both you and the maintainer. Your responsibilities may include:
- Identifying needed features
- Recording bugs
- Writing issues
- Organizing, labeling, and prioritizing issues
- Reviewing code
- Testing contributor's pull requests
- Suggesting functionality or coding improvements for pull requests
Maintainers always need assistance with the above tasks. By performing these tasks, you'll stand out and gain transferable skills for QA or Product roles. Eventually, you may even feel comfortable contributing code to the project.
Not all projects have a triage team. Reach out to the maintainer to ask if they do!
Tip #3: Link Your Pull Request to an Issue
By linking a pull request to an issue, you can automatically reflect the progress of an issue based on the pull request, which reduces the workload for you and the maintainer. This allows other collaborators to track the progress of an issue as well. You can do this by adding the keywords closes, resolves, or fixes followed by the issue number inside the pull request's description.
You can also do this manually (shown in the gif below).
Read this guide for more details on linking your pull request to an issue.
Once you are comfortable contributing to open source, you can step up your game with these tips!
Tip #4: Leverage Multi-line Comments for Suggestions
GitHub enables you to highlight multiple lines in a pull request diff and add a comment. You can use this feature while reviewing a collaborator's pull request. If you highlight multiple lines and suggest code changes, the collaborator can directly commit those suggestions to their branch.
Tip #5: Save Your Replies
As your involvement within the project increases, you may feel like there's not enough time in your day to compose a response to every collaborator.
Within GitHub, you can create and save reusable responses to specific issues and pull requests. If you ever become the project maintainer or writer, you can also benefit from the saved replies feature.
Tip #6: Automate Your Workflows with GitHub Actions
GitHub Actions is a tool that conveniently enables you to automate custom workflows inside of your GitHub repository. You can trigger a workflow to run a set of jobs when a specified event, such as a pull request or a push to a particular branch. The next time you find yourself or your collaborators manually repeating tasks, implement GitHub Actions to enhance your CI/CD pipeline.
For inspiration: Read about how I used GitHub Actions to sync an AWS S3 Bucket with my GitHub repo.
For more context: Check out Brian Douglas' YouTube tutorials to learn more about GitHub Actions!
Want to get started now? Here’s a list of beginner-friendly issues for Hacktoberfest 2021!