Skip to content

CONTRIBUTE

Jesse edited this page Sep 21, 2025 · 16 revisions

Contributing

Contributions are always welcome! Please open up an issue before putting too much work into a PR. If you would like clarification on any tickets, be sure to ask! I also enjoy supporting people newer to Rust and am happy to review PRs and give pointers.

All development work should happen on a fork or separate branch and requires a PR review before merging.

Setting up for development

You will need to install tarpaulin with cargo install cargo-tarpaulin before running ./test.sh locally.

New Contributors and Rustaceans

If you are new to Rust Development, we have a few tools and things you should be familiar that can help with ensuring you have good quality code.

Required

  1. All PRs must pass all test cases. We recommend using nextest. Run cargo nextest run --all --all-features and ensure they pass.
  2. All commits must be in Conventional Commit format. Ensure commits are in that format.
  3. Any new code requires test cases to be added. Codecov will check for coverage of test cases. For any assertions, use pretty_assertions
  4. Commits must pass Gitleaks checks to ensure no API keys or similar sensitive data is uploaded.

Rusty-hook

If you are new to Rust Development, installing the Rusty-hook automatically creates a Git Hook to format and parse the code prior to commit, helping avoid failing CI tests.

To install, simply run cargo install rusty-hook and rusty-hook init within the directory.

Conventional Commits

Commits to branches and forks can use any method, but commits that are fully integrated into code (main branch) must meet Conventional Commit specifications.

Commitizen

If you are new to Conventional Commits, using Commitizen is an easy way to ensure your commits match Conventional Commit Specifications.

Install Git-Commitizen by running cargo install git-commitizen

Debug (Verbose) Logs

For any issues, remember to output a verbose debug) log with tod -v <command>

If testing code, use cargo run -- -v (as the first -v will pass to cargo, not to tod)

Cargo Crates

When adding Cargo Creates, please use exact version (i.e. 0.1.2). Dependabot will automatically update these as needed.

Clone this wiki locally