# Development
## Dependencies
```bash
rustup component add llvm-tools-preview
cargo install cargo-llvm-cov
# Optional: Use `nextest` to run tests
cargo install cargo-nextest
```
## Running Tests
```bash
cargo test
cargo nextest run
```
## Coverage
Collect coverage and output as `html`.
```bash
cargo llvm-cov --open --output-dir ./target/coverage
# With `nextest`:
# https://github.com/taiki-e/cargo-llvm-cov/issues/151
cargo coverage
# This is an alias defined in `.cargo/config.toml` to:
cargo llvm-cov nextest --open --output-dir ./target/coverage
```
Collect coverage and output as `lcov`.
```bash
cargo llvm-cov --lcov --output-path ./target/coverage/lcov.info
# With `nextest`:
# https://github.com/taiki-e/cargo-llvm-cov/issues/151
cargo llvm-cov nextest --lcov --output-path ./target/coverage/lcov.info
```
## Releasing
Update crate versions, then push a tag to the repository. The [`publish`] GitHub workflow will automatically publish the crates to [`crates.io`].
[`publish`]: https://github.com/azriel91/rt_map/actions/workflows/publish.yml
[`crates.io`]:https://crates.io/