# Contributing to Hexx
Contributions are welcomed ! On this repository you may:
- Report a bug by opening an Github issue
- Submit a fix by opening a Pull request
- Propose new features either in an issue or in a pull request
## Pull requests
Pull requests are the best way to propose changes to the codebase.
1. Fork the repo and create your branch from `main`.
2. If you've added code, please add unit tests.
3. If you've changed APIs, please update the documentation. If you changed the
top level documentation, sync the `README.md` with [cargo-sync-readme](https://crates.io/crates/cargo-sync-readme).
4. Ensure the test suite passes.
5. Make sure `clippy`, `rustdoc` and `rustmft` are happy.
6. Add an entry in the `CHANGELOG.md` under the `Unreleased` section describing
your changes
7. Open that pull request with a clear description of the work done
### Github Actions
When you open a pull requests, various workflows will check your contribution:
- The `Rust` workflow will check that the following checks pass, both for the
source code and examples
- `cargo clippy`
- `cargo build`
- `cargo fmt`
- `cargo rustdoc`
- `cargo test`
- The `Docs` workflow will check:
- That you added a `CHANGELOG.md` entry
- That both `README.md` and `src/lib.rs` global documentation are in sync.
## Any contributions you make will be under the Apache 2.0 Software License
In short, when you submit code changes, your submissions are understood to be
under the same [License](./LICENSE) that covers the project.