Thanks for your interest in contributing to tracing-active-tree! This document outlines some of the conventions on building, running, and testing tracing-active-tree, the development workflow, commit message formatting, contact points and other resources.
tracing-active-tree is mostly written in Rust, We are currently using the Rust nightly toolchain.
To build tracing-active-tree you'll need to at least have the following installed:
git- Version controlrustup- Rust installer and toolchain managermake- Build tool (run common workflows)
git clone https://github.com/tikv/tracing-active-tree.git
cd tracing-active-treerustup is the official toolchain manager for Rust, similar to rvm or rbenv from the Ruby world.
tracing-active-tree is pinned to a version of Rust using a rust-toolchain file. rustup and cargo will automatically use this file. We also use the rustfmt and clippy components, to install those:
rustup component add rustfmt
rustup component add clippyDuring interactive development, you may prefer using cargo check, which will parse, borrow check, and lint your code, but not actually compile it:
cargo check --allnextest is necessary for make test & make unit-test to work. Install the crate with:
cargo install cargo-nextest --lockedYou can run the test suite alone, or just run a specific test:
# Run the full suite
make testtracing-active-tree follows the Rust community coding style. We use Rustfmt and Clippy to automatically format and lint our code. Using these tools is checked in our CI. These are as part of make check.
make checkFollowing the Commit Message and Pull Request Style will help with the review process by making your change easier to understand.
The project uses DCO check and the commit message must contain a Signed-off-by line for Developer Certificate of Origin.
Use option git commit -s to sign off your commits. The bot will group and distinguish the signatures from all your commits in the pull request and append them to the final commit message body.
Thanks for your contributions!