Contributing to {baler}
Building
You need to know that {baler} pins its toolchain via rust-toolchain.toml, so a plain cargo build uses the right stable toolchain automatically.
cargo build --workspace
cargo test --workspaceEnable the GitHub-install path while working on it:
cargo build --workspace --features baler-core/networkWays to contribute
This section also explains the structure where the things live.
- Add a new CLI surface under
crates/baler-cli/src/commands/. Keep it a thin wrapper that parses arguments and calls intobaler-core. - Put the actual logic in
crates/baler-core/src/ops/, which also mirrors the command name. - Anything that touches CRAN goes in
crates/baler-core/src/cran/. - Archive read/write (under
.tar.gz) goes incrates/baler-core/src/formats/.
This split exists so baler-core stays usable outside the CLI. Don’t reach into clap types from inside ops/.
Docs
This site is built on Quarto website rooted at docs/. Preview it locally with:
quarto preview docsIt’s rebuilt and deployed by .github/workflows/docs.yml on every push to main that touches docs/**.
Changelog
User-facing changes go in CHANGELOG.md at the repo root.