How to start contributing to Open Source
Every contribution is meaningful 💖
There are no contributions which are to tiny
Seriously, [documentation] is mega-important. The documentation so far has been great and has been a killer feature of Babel. There are sections that could certainly use some work and even the addition of a paragraph here or there is extremely appreciated.
– Sebastian McKenzie
What could you contribute?
Improvement of documentation
– even fixing typos and dead links –
– even compressing images –
– e.g. outdated browser workarounds –
How to choose a project to contribute
Choose something you love and use regularly
Check the following before diving in
How well is the project maintained?
- Latest commit
How welcoming is the project?
- Do the maintainers respond helpfully to questions in issues?
Are people friendly in the issues, discussion forum, and chat
Do pull requests get reviewed?
Do maintainers thank people for their contributions?
Watch the repository for while
Get notified of all conversations
- Get to know community members, before doing work that might not get accepted.
What to do before contributing
Check the most important files
- Contribution Guidelines
- Code of Conduct
Talk to the maintainers
If you go to an issue tracker and things seem confusing, it’s not just you. These tools require a lot of implicit knowledge, but people can help you navigate it and you can ask them questions.
Maintainers are busy persons who spent a lot of their spare time to create and improve software you are using for free
- Issues are like starting a conversation or discussion
- Pull requests are for starting work on a solution
- For lightweight communication, such as a clarifying or how-to question, try asking on Stack Overflow, IRC, Slack, or other chat channel
Thinks to consider when communicating
💚 “X doesn’t happen when I do Y”
❌ “X is broken! Please fix it.”
💚 “I’m not sure how to implement X. I checked the help docs and didn’t find any mentions.”
❌ “How do I X?”
Do your homework beforehand
💚 “I’d like to write an API tutorial.”
❌ “I was driving down the highway the other day and stopped for gas, and then I had this amazing idea for something we should be doing, but before I explain that, let me show you …“
Keep requests short and direct
💚 “Thanks for looking into this error. I followed your suggestions. Here’s the output.”
❌ “Why can’t you fix my problem? Isn’t this your project?”
It’s okay to ask questions (but be patient!)
💚 “I’m disappointed you can’t support my use case, but as you’ve explained it only affects a minor portion of users, I understand why. Thanks for listening.”
❌ “Why won’t you support my use case? This is unacceptable!”
Respect community decisions
Explore the project 👨🔬
- Code Style
Start with an easy bug or feature
See resources on the last slide
Get ready to contribute
Open an issue to
- Report an error you can’t solve yourself
- Discuss a high-level topic or idea
(eg. community, vision, policies)
- Propose a new feature or other project idea
Make sure to check for existing before to prevent duplicates!
Tips for communicating on issues
- If you see an open issue that you want to tackle, comment on the issue to let people know you’re on it.
- If you opened an issue, but figured out the answer later on your own, comment on the issue to let people know, then close the issue.
- If an issue was opened a while ago, it’s possible that it’s being addressed somewhere else, or has already been resolved, so comment to ask for confirmation before starting work.
Open a pull request to
- Submit trivial fixes (eg. a typo, broken link, or obvious error)
- Start work on a contribution that was already asked for, or that you’ve already discussed, in an issue
– Hint –
A pull request doesn’t have to represent finished work.
It’s usually better to open a pull request early on, so others can watch or give feedback on your progress.
Just mark it as a “WIP” (Work in Progress) in the subject line. You can always add more commits later.
Steps to open a pull request
- Fork the repository
- Create a branch
- Contribute in the style of the project
- Add commits
- Test your changes!
- Create the pull request
- Describe your changes
- Reference any relevant issues
- Include screenshots of the before and after if applicable
- Remember that pushing new commits to your branch will update the pull request
Congratulations on becoming an open source contributor
Finding beginner issues
Articles related to getting started with OSS
Additional links regarding OSS
How to start contributing to Open Source
By Michael Kühnel