Releases¶
GWZ releases are distributed through GitHub Releases for the gwz-cli
repository:
https://github.com/owebeeone/gwz-cli/releases
The hosted documentation is built from
the tag of the most recently published release, so its command model matches
the released CLI rather than unreleased work on main.
Unreleased Compatibility Notes¶
- First-class merge JSON and JSONL include the complete current merge-response
key set, including finalization progress. Structured errors include
target_kindand retain member id/path context even for whole-operation preflight failures. Because GWZ is pre-1.0, strict consumers must tolerate additive keys. - Merge status rows expose durable pending-action reconciliation as
NotStarted,ExpectedConflict,CompletedExactly, orAmbiguous. Ambiguity is also reported as dedicated structured drift and remains mutation-blocking. - Merge and
pull --sync mergereject source and target commits with unrelated histories, matching Git porcelain. GWZ does not implicitly allow unrelated histories. - While a coordinated merge is open, the accepted workspace lock remains the exact pre-merge baseline. Clean, conflicted, failed, and unattempted outcomes are retained in the local durable operation record rather than published as a partial composition.
- Merge commits use the quoted message
Merge '<source>' into '<target-branch>'withGWZ-Merge-IDandGWZ-Operation-IDtrailers. A request that creates a commit supplies its author/committer identity when present; otherwise the target repository identity is used. - Coordinated merge start, dry-run, status, continue, and safe abort are
available together. Successful changed merges publish a checked root
composition commit; interrupted finalization resumes idempotently.
Recovery must not substitute raw
git merge --abortfor the coordinated operation.
Install Latest¶
macOS or Linux:
curl --proto '=https' --tlsv1.2 -LsSf \
https://github.com/owebeeone/gwz-cli/releases/latest/download/gwz-installer.sh | sh
Windows PowerShell:
powershell -ExecutionPolicy Bypass -c "irm https://github.com/owebeeone/gwz-cli/releases/latest/download/gwz-installer.ps1 | iex"
Install A Pinned Version¶
Replace latest with a concrete tag:
https://github.com/owebeeone/gwz-cli/releases/download/v0.9.0/gwz-installer.sh
https://github.com/owebeeone/gwz-cli/releases/download/v0.9.0/gwz-installer.ps1
Verify Assets¶
Release assets are checksummed and have GitHub artifact attestations. For stronger verification:
- Download the release archive and checksum file.
- Compare the archive SHA-256 with the checksum.
- Verify the GitHub artifact attestation.
- Run
gwz --version. - Run
gwz --help.
Smoke Test A Unix Installer¶
tmp="$(mktemp -d)"
curl --proto '=https' --tlsv1.2 -LsSf \
https://github.com/owebeeone/gwz-cli/releases/latest/download/gwz-installer.sh \
-o "${tmp}/gwz-installer.sh"
GWZ_UNMANAGED_INSTALL="${tmp}/bin" \
GWZ_NO_MODIFY_PATH=1 \
sh "${tmp}/gwz-installer.sh"
"${tmp}/bin/gwz" --version
"${tmp}/bin/gwz" --help
Smoke Test A Windows Installer¶
$ErrorActionPreference = "Stop"
$tmp = Join-Path $env:TEMP "gwz-test-$([guid]::NewGuid())"
New-Item -ItemType Directory -Force -Path $tmp | Out-Null
$installer = Join-Path $tmp "gwz-installer.ps1"
Invoke-WebRequest `
"https://github.com/owebeeone/gwz-cli/releases/latest/download/gwz-installer.ps1" `
-OutFile $installer
$env:GWZ_UNMANAGED_INSTALL = Join-Path $tmp "bin"
$env:GWZ_NO_MODIFY_PATH = "1"
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
& $installer
$exe = Join-Path $env:GWZ_UNMANAGED_INSTALL "gwz.exe"
& $exe --version
& $exe --help
Local Release Checks¶
From the development workspace:
cargo fmt --check
cargo test
cargo run -q -p gwz -- --help
python scripts/generate_cli_reference.py --check
When changing command docs, inspect the generated reference and spot-check command help for the affected commands:
scripts/release.py runs the generated CLI reference check by default before it
commits the release worktree. If the release must proceed while docs are being
reconciled separately, pass --no-doc-check; otherwise update the reference
with: