Appearance
Getting Started
Prerequisites
gitavailable inPATH- Nix (
nix-shell) for the pinned dev environment (required for this repository) - Rust toolchain for source builds (
cargo)
Install
Local source install
bash
nix-shell
cargo install --path .Development shell
bash
nix-shellnix-shell is used for all development tasks.
Bootstrap a Workspace
bash
mkdir -p .harmonia
cp config.example.toml .harmonia/config.toml
# or use a single-file workspace config:
# cp config.example.toml .harmonia.tomlThen edit .harmonia/config.toml:
- Set your repo names under
[repos] - Set
[repos].<name>.ecosystem(rust,python,node,go,java, or custom) - Add explicit
urlvalues or configure[forge].default_groupand[defaults].clone_protocol - Optionally set default
[groups] - Optionally declare repo-level dependency order with
[repos].<name>.depends_on
First Commands
bash
harmonia clone --all
harmonia refresh
harmonia status --long
harmonia graph show --format=treeFirst Change Flow
bash
# implement changes first, then:
harmonia submit
# optional message override:
harmonia submit -m "feat: example"
# after merge, reset and update everything:
harmonia refreshsubmit defaults commit message to updates when -m/--message is not provided.
Manual flow (if you want explicit per-step control):
bash
harmonia branch feature/example --create --repos app --with-all-deps
harmonia test --changed --graph-order --fail-fast
harmonia lint --changed
harmonia plan
harmonia mr create --title "feat: example"Smoke Check
bash
cargo test --all --tests --libNext
- Configuration details:
/configuration - Command reference:
/cli/ - Merge workflow:
/plan-and-mr