Skip to content
gwmgwmgwmv1.10.0

Development

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>.md split.
  • 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.
Terminal window
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:

Terminal window
nix develop

The full background, what changed from the original tools/worktree-manager.sh and why, lives in the contributing page under “history”.

Released versions live under changelogs/<version>.md; the root CHANGELOG.md only holds the current [Unreleased] section plus an index of past releases.