How to contribute¶
Our software is open source so you can solve your own problems without needing help from others. And if you solve a problem and are so kind, you can upstream it for the rest of the world to use. Check out our post about open-sourcing and externalization. Development activity is coordinated through our GitHub Issues, GitHub Discussions, and Discord.
Getting Started¶
- Setup your development environment
- Read about the development workflow
- Join our Discord
- Docs are at https://docs.sunnypilot.ai and https://www.sunnypilot.ai/blog
What contributions are we looking for?¶
sunnypilot's priorities are safety, stability, quality, and features, in that order. Aligning with comma's ideals, part of sunnypilot's mission is to solve self-driving cars while delivering shippable intermediaries, and all development is towards that goal.
What gets merged?¶
The probability of a pull request being merged is a function of its value to the project and the effort it will take us to get it merged. If a PR offers some value but will take lots of time to get merged, it will be closed. Simple, well-tested bug fixes are the easiest to merge, and new features are the hardest to get merged.
All of these are examples of good PRs:
What doesn't get merged?¶
- arbitrary style changes: code is art, and it's up to the author to make it beautiful
- 500+ line PRs: clean it up, break it up into smaller PRs, or both
- PRs without a clear goal: every PR must have a singular and clear goal
First contribution¶
Check out any good first issue from commaai's openpilot to get started.
What do I need to contribute?¶
A lot of sunnypilot work requires only a PC, and some requires a comma device. Most car-related contributions require access to that car, plus a comma device installed in the car.
Pull Requests¶
Pull requests should be against the master
branch. If you're unsure about a contribution, feel free to open a discussion, issue, or draft PR to discuss the problem you're trying to solve.
A good pull request has all of the following:
- a clearly stated purpose
- every line changed directly contributes to the stated purpose
- verification, i.e. how did you test your PR?
-
justification
- if you've optimized something, post benchmarks to prove it's better
- if you've improved your car's tuning, post before and after plots
-
passes the CI tests
Contributing without Code¶
- Report bugs in GitHub issues.
- Report driving issues in the
#general
Discord channel. - Consider opting into driver camera uploads to improve the driver monitoring model.
- Connect your device to Wi-Fi regularly, so that comma can pull data for training better driving models.
- Run the
staging-c3
branch and report issues. This branch is likemaster
but it's built just like a release.