-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Contributing
Thank you for contributing! Pion is a community project, and only exists because of the hard work of many different people. Contributing doesn't just involve code either, you can be involved in many different ways. Before starting here are some things to remember that will make the whole process a whole lot more fun and effective.
Don't take it personally when your work doesn't get reviewed or merged in a timely manner. Feel free to add other contributors, or send a message on Slack. People have busy schedules and it is easy to get pulled in lots of directions
It is better to get something done, then nothing at all. Try starting with a small task first, and grabbing larger things as time moves on
Check out our Goals page. We maintain a list of everything we want to accomplish. We need help in lots of different areas. Even if you don't know Go or WebRTC we have tasks for you!
Answering questions and working with the community is really important. Most community members use Slack, but it would also be helpful to work with people on Stackoverflow
We have lots of issues that have been filed, but not addressed yet.
- If it is a question, or a simple issue you might be able to fix yourself!
- If it is a bigger task add a difficulty label ('easy', 'medium' or 'hard') and the 'triaged' label
- If feedback is requested add the 'question' label. If we haven't heard in 30 days resolve. Leave a comment telling the user to re-open if they are still interested though.
It also is helpful to review old triaged issues, they haven't got the attention they need
WebRTC for the Curious is a Open Source book we are working on. Your feedback and involvement would really help the WebRTC community.
Many Open Source projects use Pion. The following projects would love your help, and please add your project if you are interested in getting outside help! See awesome-pion for a list of Pion users.
A great way to learn/get involved would be to review existing PRs. You can see them here
We should aim to have zero unmerged PRs, but sometimes they get stuck in review or the original author runs out of time.
Contributing to Pion should be an easy and fun process! After you land your first PR you will become a Pion developer, and you will have the ability to review and merge others code.
We try to have a high standard for quality, please review the Writing a good PR before selecting an issue
Time to code! To find a good task here are our open issues in order of difficulty .
-
good first issue - Issues with zero ambiguity that can be easily merged
-
easy - Issues that are technically challenging but no ambiguity
-
medium - Issues that are technically challenging and some ambiguity, a solution should be agreed on first
-
hard - Issues that are technically challenging and require a significant time investment
Talk to a developer on Slack or Github before you start work. Things may have changed since the issue was reported, so don't start work until you are sure everything will work!
The following developers are available for mentoring, and are happy to help you through the whole process.
- Sean DuBois Sean-Der
Your code will likely not be reviewed if it fails the automated checks. The code may be high quality, but most developers assume it isn't ready until the build is green.
We use GitHub Actions and all our checks can be see here. These are the commands you will need to run locally.
-
golangci-lint run
How to install go test -race ./...
You will also need to run the following scripts from Pion's common goassets:
scripts/lint-commit-message.sh
scripts/assert-contributors.sh
scripts/lint-disallowed-functions-in-library.sh
scripts/lint-filename.sh
Sign up for the Golang Slack and join the #pion channel for discussions and support
If you need commercial support/don't want to use public methods you can contact us at [email protected]