Development
August 4, 2026 · View on GitHub
gwm is a small Rust crate (single binary). Build, test, and ship workflows are documented here.
- Testing: the integration test files (~1900+ tests across 75 test files, run on the ubuntu / macos / windows matrix), the mandatory red → green → refactor TDD loop, how to run a subset, and the
// regression:sentinel-test convention. - Contributing: the Gitmoji + Conventional-Commit format, branch naming, the PR checklist, and the rules around the
CHANGELOG.md/changelogs/<version>.mdsplit. - Stability: the 1.0 SemVer compatibility contract: which surfaces are covered (CLI, exit codes, JSON schemas, daemon RPC,
.gwm.toml), which are free to change (TUI, human strings, internal Rust API), the MSRV policy, and the deprecation process.
quick reference
cargo build # debug build
cargo test # ~1900+ tests across the integration files + unit tests
cargo fmt && cargo clippy -- -D warnings
cargo run # opens TUI in the current repo
cargo install --path . # install locally
A Nix dev shell is pinned in flake.nix, carrying the toolchain, rust-analyzer, clippy, rustfmt, cargo-watch, cargo-edit and the libgit2 build deps, without touching the host system:
nix develop
vs. bash script
The full background, what changed from the original tools/worktree-manager.sh and why, lives in the contributing page under "history".
changelog
Released versions live under changelogs/<version>.md; the root CHANGELOG.md only holds the current [Unreleased] section plus an index of past releases.