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.
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).
- Development guide
- Building Slint from sources in this repository
- Testing
- GitHub issues triage and labels
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.
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
.
All changes submitted to the repository are automatically built and tested via
Github Actions and the corresponding workflow defined in the rust.yaml
file.