rust tools for the demes specification.
This repository contains the following rust crates:
- demes implements the specification and a graph builder.
- demes-forward provides a means to handle graphs forwards in time.
- demes-forward-capi is a C interface to
demes-foward
.
git clone https://github.com/molpopgen/demes-rs --recurse-submodules
cd demes-rs
cargo test
To clone using gh,
gh clone molpopgen/demes-rs -- --recurse-submodules
- Pull requests should be rebased down to one commit.
- Commit messages for CHANGELOGs should be conventional.
- We strongly suggest running semver checks locally.
While we run these upon merge into
main
, it is better to know ahead of time if a PR breaks API. It is even better to avoid API breakage altogether!
cargo install cargo-semver-checks
cargo semver-checks check-release
- We use git-cliff
- To update a CHANGELOG for a given crate, use include paths. For example:
git cliff -u --include-path "demes/**" --tag v0.4.0 -p demes/CHANGELOG.md
The configuration file for cliff is present in the workspace root.
Any new release of any tool should have the following name:
tool-version
For example:
demes-forward-0.6.0
cargo doc --open
First, install tarpaulin
:
cargo install cargo-tarpaulin
Then,
cargo tarpaulin --tests --ignore-tests -o html
Finally, open tarpaulin-report.html
with your favorite browser.