Skip to content
This repository has been archived by the owner on Nov 15, 2022. It is now read-only.

Latest commit

 

History

History
51 lines (35 loc) · 2.21 KB

CONTRIBUTING.md

File metadata and controls

51 lines (35 loc) · 2.21 KB

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.

Most open source development activity is coordinated through our Discord. A lot of documentation is available on our medium.

Getting Started

Testing

Local Testing

You can test your changes on your machine by running run_docker_tests.sh. This will run some automated tests in docker against your code.

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.

Car Ports (openpilot)

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. You might also be eligible for a bounty.

Pull Requests

Pull requests should be against the master branch. Before running master on in-car hardware, you'll need to clone the submodules too. That can be done by recursively cloning the repository:

git clone https://github.com/commaai/openpilot.git --recursive

Or alternatively, when on the master branch:

git submodule init
git submodule update

The reasons for having submodules on a dedicated repository and our new development philosophy can be found in our post about externalization. Modules that are in seperate repositories include:

  • apks
  • cereal
  • laika
  • opendbc
  • panda
  • rednose