We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's:
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Adding support for new hardware
- Becoming a maintainer
Be sure to follow the naming conventions used throughout the project (e.g., variable names, function names, file names, etc.).
Also make sure the commit messages are clear and concise, following the Conventional Commits.
If you find a bug in the project, please open an issue on the project's GitHub repository. When opening an issue, please provide as much information as possible, including the version of the project you are using, the operating system you are using, and any relevant error messages and logs.
If you would like to contribute code to the project, please follow these steps:
- Fork the project on GitHub.
- Create a new branch for your changes.
- Make your changes on the new branch.
- Write tests for your changes.
- Run the tests to make sure they pass.
- Submit a pull request to the project's GitHub repository.
- Create necessary documentation for your changes, for example, how to use the new feature, how to configure it and preferably design docs.
That's it! We will review your pull request and provide feedback as soon as possible.
If you would like to add support for new hardware to the project, please follow these steps:
- Fork the project on GitHub.
- Create a new branch for your changes.
- Make your changes on the new branch.
- Write tests for your changes.
- Run the tests to make sure they pass and perform necessary hardware tests.
- Submit a pull request to the project's GitHub repository.
- Create documentation for the new hardware, describing features, installation and usage.
- (Optional) Write some guidelines on how to use, handle and maintain the new hardware.
For more details, check out the hardware support guidelines.
In short, when you submit code changes, your submissions are understood to be under the same MIT License that covers the project. Feel free to contact the maintainers if that's a concern.
This document was adapted from the open-source contribution guidelines for Facebook's Draft