Skip to content

Latest commit

 

History

History
28 lines (22 loc) · 1.19 KB

CONTRIBUTING.md

File metadata and controls

28 lines (22 loc) · 1.19 KB

Thanks for looking into contributing to the project! There's not much out of the ordinary for this project. The essentials are

  • Test with cargo test
  • Format code with cargo fmt
  • Fix lints found with cargo clippy
  • Benchmarks can be performed with cargo bench (optionally cargo criterion)

and the third-party cargo extensions used are

  • cargo-insta for snapshot testing
    • Interacted with cargo insta review when needed
  • cargo-fuzz for fuzz testing
    • Fuzzing is run in CI and shouldn't need to be run locally

Cutting a Release

Releases are published for keyvalues-parser and keyvalues-serde by pushing a parser-v<VERSION> and serde-v<VERSION> respectively. This will run the test suite, all fuzzers, and then publish the library to crates.io. Before publishing at the very least the following checklist should be covered

  1. Before Publishing
    • Bump the version in Cargo.toml
    • Bump the version in the crate's README.md
    • Run the benchmarks and update the results in BENCHMARKS.md
  2. Push the appropriate tag as noted above
  3. Write up the release notes and post them to GitHub