Skip to content

Latest commit

 

History

History
64 lines (44 loc) · 2.41 KB

CONTRIBUTING.md

File metadata and controls

64 lines (44 loc) · 2.41 KB

Contributing

We warmly welcome contributions to the project. Let's discuss ideas or questions in Github discussions. Please feel welcome to open GitHub issues, pull requests, or comment for example on RFC tagged issues.

Contributor License Agreement

All contributions are accepted under the terms of the MIT No Attribution License. Please note that you must have written the contribution 100% yourself and that no rights have been transferred to third parties (e.g. your employer). In any other case, please let us know.

When opening a pull request, you will be asked to sign a Contributor License Agreement (CLA).

Internal documentation

Coding Style

For the Rust portion of the code base, we enforce the coding style via rustfmt. The rustfmt.toml in the root direction is used to configure the style.

For the C++ portion of the code base, we enforce the coding style via clang-format, via the .clang-format file in the root directory.

Tooling

Pre-commit is a tool intended to help you in your local development, it is not enforced on the repository side!

pre-commit is set up and ready to be used in this repository. Simply install the pre-commit python script using:

> pip install pre-commit
> pre-commit install

and the pre-commit git hooks will be active and do basic sanity checks on your code whenever you commit something.

Not all parts of the code base are pre-commit clean, so use it as an early warning system: See what it reports, fix any issue you introduced (as those make sense to fix), and then feel free to skip pre-commit module still failing using

SKIP="module1,module2" git commit

Typical modules to skip include: cspell, check-json and prettier.

Testing

All changes submitted to the repository are automatically built and tested via Github Actions and the corresponding workflow defined in the rust.yaml file.