Contribution Guidebook
Last updated
Last updated
There are many ways to contribute to an open-source project, even if you are not a programmer or developer. Here are some suggestions on how you can start.
Start small: If you are new to open source, start with small contributions such as reporting bugs, fixing documentation, or helping with translations.
Read the documentation: Read the project's documentation to understand how it works and what needs to be done.
Join the community: Join the project's community, ask questions, and get to know the developers and other contributors.
Contribute code: If you are a programmer, you can contribute code to the project. Start by looking for "good first issues" or "beginner-friendly" issues that are easy to fix.
Write documentation: If you are good at writing, you can help improve the project's documentation by writing tutorials, guides, or documentation.
Test and report bugs: Help the project by testing it and reporting bugs. This helps the developers identify and fix issues.
Engage with the community
You can engage using Discussions for general questions, Ideas & Enhancement suggestions, Show & tell, etc.
Create an issue (or a ticket)
Provide sufficient details i.e. Title, Description, Screenshots, Videos, Environment, etc
In the community repo by selecting the issue type (template) - Bug, Feature, Security Vulnerability
Find issues to contribute
Look for issues/items tagged as “Good first issue”. If there are no good first issues, check out the roadmap.
From the Roadmap, look for Priority items that are not already in a Sprint
Navigate using the components (labels) to find items relevant to your skillset/area of interest
Comment on the ticket by tagging at least the current assignee and the reporter to get more clarity if needed or validate your approach to solving the issue. If you are clear on what needs to be done, you can go ahead & create a Pull Request to contribute code.
Processes and Rituals
Assume you have identified a ticket you wish to contribute
Self-assign the ticket
Ensure it has sufficient details
Meaningful Title e.g. As a <user persona>, I should be able to <do something>, so that <I benefit from it>
Clear Description e.g. What is the problem?, Proposed Solution, Implementation Approach
Acceptance criteria or Test cases
Labeled appropriately to tag the Component, Priority, Issue Type
Assigned to someone/you - only one person ideally
Estimated time/days for completion, Target date
Tagged to a Sprint
Tag the Component owner/maintainer to review the implementation approach, code contribution
Governance
Working Group
Triage team
Product council
Architecture council