DEV Community

Cover image for Make your first open-source contribution
Dinesh S
Dinesh S

Posted on • Updated on

Make your first open-source contribution

How to make your first open-source contribution?

There are many ways you can contribute to open source and it doesn't have to be exclusive to code.

You can contribute by

  1. Writing code
  2. Reporting bugs
  3. Reviewing pull requests
  4. Helping triage an issue
  5. Adding/Improving documentation

Find a project to contribute to

If you are working on a project, check out the Github repositories of the libraries you are using.

For example, if you are working on a frontend project, you can check out react-starter, Bootstrap, Tailwindcss projects.

This is a sample of dependencies from package.json. Most of these are open-source.

dependencies.png


Identifying the right thing to contribute to

Identify the type of contribution you want to make. The best place is, to look at the project's issue board. Most of the projects have labels for the issues.

Look for these labels "good first issue", "beginner", "documentation"

Label type Example
good first issue Good first issue.png
beginner Beginner.png
documentation/doc Documentation.png

Writing code

You can either fix an issue or implement a new feature. Add a test case if possible and appropriate documentation depending on the project.

Here is a PR that I created https://github.com/visionmedia/node-progress/pull/128/files.


Reporting a bug

If you have come across a bug in any of the libraries you are using, create a new issue. Provide details like steps to reproduce, version of the library you are using, browser version, OS, etc.

If a project has an issue template, follow that.

Issue template Helm.png


Requesting a feature

You can request a feature in a library by opening an issue.

Here is one such feature request that I had raised.

feature request.png


Reviewing pull requests

Don't rush into reviewing pull requests. Judge the tone of the project by reviewing past pull requests.

Be humble with your feedback and don't assume authority unless you are a frequent contributor to the project.


Triage an issue

Open source projects have a lot of issues and maintainers do not usually have time to check each one of them. It would be of great help if you can help them triage an open issue.


Adding/Improving documentation

Look for issues with the label "Documentation". You can improve existing documentation, either by updating the content or by adding more examples.

If you find a README that is unclear, create an issue and offer your help to improve it.


Project templates & coding guidelines

When you are contributing to a project, follow the coding practices of that project. Maintainers will be very particular about this and your PR won't be accepted.

If you are reporting a bug, make sure to follow the issue template.

For example, check out this contributing guide from the docker/compose project https://github.com/docker/compose/blob/master/CONTRIBUTING.md


Patience

Remember, it is an open-source project. So don't expect your PR to be merged immediately. Wait for at least a week before you comment and ask for feedback.


Communication

Once you have decided to address an issue, make sure to communicate by commenting on the issue that you want to work on it. This makes sure that no one else works on it and saves time for everyone.

start work.png

You can also create a work in progress PR and ask for feedback


Sites to help you find beginner-friendly or easy issues


Dealing with feedback

You might not like some feedback, it's ok. It happens to all of us. Don't take it personally. Be patient and understand that the maintainer might not be getting paid for their work.


Imposter syndrome

Your first PR might be intimidating. Don't let that get in your way. Take this PR as an inspiration https://github.com/playframework/playframework/pull/616

This was Kent C. Dodds's first contribution which fixes a typo.

Kent first contribution.png

Now he is a pro contributor and he has done numerous contributions.

Kent 2021 contribution.png

Discussion (2)

Collapse
alessandrogiuzio profile image
Alessandro

Thank yuo Dinesh, all new for me!

Collapse
dineshs91 profile image
Dinesh S Author

Welcome Alessandro.