Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great.
Contributions to this project are released to the public under the project's open source license.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
- Fork and clone the repository
- Set up a local build
- Create a new branch:
git checkout -b my-branch-name
- Make your change
- Push to your fork and submit a pull request
- Pat yourself on the back and wait for your pull request to be reviewed and merged.
Here are a few things you can do that will increase the likelihood of your pull request being accepted:
- Write tests.
- Keep your change as focused as possible. If there are multiple changes you would like to make that are not dependent upon each other, consider submitting them as separate pull requests.
- Write a good PR description
- Write a good commit message.
Make sure you have rust toolchain installed on your system and then:
cargo build && cargo test
Run clippy and fix any lints:
cargo fmt --all -- --check
cargo clippy -- --deny warnings -D clippy::unwrap_used
cargo clippy --tests -- --deny warnings -A clippy::unwrap_used
If you are one of the maintainers of this package then follow this process:
- Create a PR for this release with following changes:
- Updated
CHANGELOG.md
with desired change comments and ensure that it has the version to be released with date at the top. - Go through all recent PRs and make sure they are properly accounted for.
- Make sure all changelog entries have links back to their PR(s) if appropriate.
- Update package version in Cargo.toml.
- Get an approval and merge your PR.
- Run ./script/publish from main
branch
supplying your token and version information.
Repository administrators will need to manage the authentication keys for publishing to crates.io.
-
All the administrators of the repo should also be made owners of the crate, follow cargo-owner command guide to add additional owners of the crate.
-
The token is generated by one of the repository administrators and placed under
CRATES_IO_TOKEN
repository secret, all the actions dealing with publishing need to use this secret for publishing to crates.io.