openpilot is an open source driver assistance system. openpilot performs the functions of Automated Lane Centering and Adaptive Cruise Control for over 200 supported car makes and models.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2.5 KiB

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 externalization.

Most open source development activity is coordinated through our GitHub Discussions and Discord. A lot of documentation is available at https://docs.comma.ai and on our blog.

Getting Started

First contribution

Try out some of these first pull requests ideas to dive into the codebase:

Pull Requests

Pull requests should be against the master branch. Welcomed contributions include bug reports, car ports, and any open issue. 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

Car Ports

We've released a Model Port guide for porting to Toyota/Lexus models.

If you port openpilot to a substantially new car brand, see this more generic Brand Port guide.

Testing

Automated Testing

All PRs and commits are automatically checked by GitHub Actions. Check out .github/workflows/ for what GitHub Actions runs. Any new tests should be added to GitHub Actions.

Code Style and Linting

Code is automatically checked for style by GitHub Actions as part of the automated tests. You can also run these tests yourself by running pre-commit run --all.