👍🎉 First off, thanks for taking the time to contribute! 🎉👍
The following is a set of guidelines for contributing to the Inamata Controller Firmware. The repository is hosted in a private GitLab repository and synced with this public GitHub repository. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
Beside reporting bugs and suggesting enhancements, we are always open to supporting new hardware in the mainline firmware.
The best place for general support is the forum (to be created). This is especially true if you're looking to ask about approaches regarding the entire Inamata platform.
To report bugs, create an issue with the bug report template.
To request features, create an issue with the feature request template.
The firmware can be flashed directly to the ESP32 (or ESP8285 with 2MB flash) from VS Code with the PlatformIO extension. This allows you to quickly iterate on code changes. As connection settings are saved to a separate partition, it is possible to reuse them without configuring them after flashing a new firmware. Additional information can be found in the doc folder.
The process of upstreaming pull request changes follows the steps below.
- Open a pull request
- A team member will review it
- Iterate changes until it is acceptable
- A team member will upsteam the branch to our internal GitLab repository and publish changes
- New commit is automatically downsteamed to this GitHub repository
- The new firmware is made available on the platform
Commits are squashed and rebased. A commit message using the following template is created:
Some awesome title
Why:
- ...
This change addresses the need by:
- ...
Include the above template in your merge request description. Once the merge request has passed review, we will push the changes to our upstream GitLab repository and commit the changes. This will include you as author of the commit.
The code is formatted with clang-format with the Google C++ style.
Please use English, avoid profanity and ensure legibility 😄