Thank you for considering contributing to Rimage! This document will guide you through the process of contributing to the project. Please read it carefully before you start.
Rimage is committed to fostering a welcoming community. Everyone participating in the project is expected to adhere to the Code of Conduct.
To get started with contributing, you'll need to:
- Fork the repository on GitHub.
- Clone your fork locally.
- Install Rust and Cargo (if you haven't already).
- Install CMake and NASM for C libraries build.
- Run
cargo build
to ensure everything builds properly.Note: On Windows, use a Visual Studio build environment like Developer PowerShell for VS 2019/2022.
Once you have a working environment set up, you can start making changes. Before you start, make sure to:
- Create a new branch for your changes.
- Write tests for any new functionality (optional, but recommended).
- Ensure that all tests pass before submitting a pull request.
- Ensure that your code adheres to the project's style guidelines (run
cargo fmt
to automatically format your code). - Ensure that your code passes Clippy's linter (run
cargo clippy
). - Commit changes according to the conventional commits.
Once you've made your changes and ensured that all tests pass, you can submit your changes by:
- Pushing your changes to your fork.
- Creating a pull request against the
main
branch of the main repository. - Wait for feedback from the maintainers.
When submitting a pull request, please:
- Include a clear description of the changes you've made.
- Include a reference to any relevant issues or pull requests.
- Ensure that your code is well-documented and easy to understand.
All contributions to Rimage are dual licensed under either the Apache License 2.0 or the MIT license. Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.
We appreciate all contributions to Rimage, no matter how small. If you have any questions or concerns, please reach out to us on the project's issue tracker.