This document outlines the process for contributing and sets some guidelines to maintain code quality and consistency.
- Fork the repository.
- Create a new branch from
mainfor your work. - Make your changes, adhering to the coding conventions described below.
- Write or update tests as necessary.
- Update documentation as needed.
- Commit your changes, using meaningful commit messages that follow our commit message guidelines.
- Push your branch to your fork.
- Submit a pull request to the
mainbranch of our repository.
- Follow Rust's official style guidelines
- Use
cargo fmtto format your code before committing. - Ensure your code passes
cargo clippywithout warnings. - Write clear, self-explanatory code. Use comments only when necessary to explain complex algorithms or non-obvious decisions
This project follows the Conventional Commits specification. Each commit message should be structured as follows:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]Types include:
- feat: A new feature
- fix: A bug fix
- docs: Documentation only changes
- style: Changes that do not affect the meaning of the code
- refactor: A code change that neither fixes a bug nor adds a feature
- perf: A code change the improves performance
- test: Adding missing tests or correcting existing tests
- chore: Changes to the build process or auxiliary tools and libraries
Note- Everything in the commit should be written in the imperative mood.
- Ensure your code adheres to the coding conventions outlined above.
- Update the README.md with details of changes to the interface, if applicable.
- Your pull request will be reviewed by at least one maintainer. Be prepared to make changes if requested.
- Ensure the bug was not already reported by searching on GitHub under Issues.
- If you are unable to find an open issue addressing the problem, open a new one. Be sure to include a title and clear description, as much relevant information as possible, and a code sample or an executable test case demonstrating the expected behavior that is not occurring.
When code is submitted to this project its understood to be under the same MIT License that covers the project.