openpilot/CONTRIBUTING.md

46 lines
2.1 KiB
Markdown
Raw Normal View History

2018-03-17 01:01:50 -06:00
# 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.
2020-12-18 03:57:05 -07:00
Most open source development activity is coordinated through our [GitHub Discussions](https://github.com/commaai/openpilot/discussions) and [Discord](https://discord.comma.ai). A lot of documentation is available on our [medium](https://medium.com/@comma_ai/).
2018-03-17 01:01:50 -06:00
## Getting Started
2019-01-14 15:32:43 -07:00
* Join our [Discord](https://discord.comma.ai)
2018-03-17 01:01:50 -06:00
* Make sure you have a [GitHub account](https://github.com/signup/free)
2018-08-19 21:36:37 -06:00
* Fork [our repositories](https://github.com/commaai) on GitHub
2018-03-17 01:01:50 -06:00
2019-05-16 14:20:29 -06:00
## Testing
### Automated Testing
2020-12-18 03:57:05 -07:00
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.
2019-05-16 14:20:29 -06:00
### Code Style and Linting
2020-12-18 03:57:05 -07:00
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`.
2019-05-16 14:20:29 -06:00
2018-03-17 01:01:50 -06:00
## Car Ports (openpilot)
2018-08-19 21:36:37 -06:00
We've released a [Model Port guide](https://medium.com/@comma_ai/openpilot-port-guide-for-toyota-models-e5467f4b5fe6) for porting to Toyota/Lexus models.
2018-03-17 01:01:50 -06:00
2020-12-18 03:57:05 -07:00
If you port openpilot to a substantially new car brand, see this more generic [Brand Port guide](https://medium.com/@comma_ai/how-to-write-a-car-port-for-openpilot-7ce0785eda84).
2020-02-06 14:51:42 -07:00
## Pull Requests
2020-03-16 17:19:36 -06:00
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:
2020-02-06 14:51:42 -07:00
```
2020-12-18 03:57:05 -07:00
git submodule update --init
2020-02-06 14:51:42 -07:00
```
2020-03-16 17:19:36 -06:00
The reasons for having submodules on a dedicated repository and our new development philosophy can be found in our [post about externalization](https://medium.com/@comma_ai/a-2020-theme-externalization-13b33326d8b3).
Modules that are in seperate repositories include:
* cereal
* laika
* opendbc
* panda
2020-05-31 14:22:49 -06:00
* rednose