Skip to content

Install And Upgrade

Use this playbook when you want a consumer repository to run wap-flow from an installed binary instead of a vendored Rust workspace.

This is the default consumer shape and the shape expected for live acceptance sandboxes such as code4focus/test-salp.

  1. Install the CLI from the source repository: cargo install --path flow/wap-flow --force
  2. Bootstrap the repo pack into the consumer repository: wap-flow repo-pack bootstrap --source <source-root> --target <consumer-repo> --json
  3. Inspect drift without writing when needed: wap-flow repo-pack diff --source <source-root> --target <consumer-repo> --json

repo-pack bootstrap copies the manifest-controlled files, installs hooks, pins the current binary path, and runs strict doctor.

Installed-binary consumers do not need to vendor flow/playbooks/**, flow/live-sandbox*.yml, or top-level tools/**. For live sandbox validation, the current source repository that supplied the installed binary remains authoritative, and the canonical sandbox repo should keep its default branch free of tracked flow/**.

The repo pack includes flow/support-policy.yml. doctor --json --strict validates that support policy and reports local provenance for repo shape, manifest path count, current repo revision, hook path, and pinned wap-flow binary state.

Use vendored source only when the consumer repository intentionally needs the Rust workspace under flow/Cargo.toml and flow/wap-flow/**.

  1. Keep the same tracked installed-binary repo pack listed in flow/repo-pack-manifest.txt.
  2. Add flow/Cargo.toml and flow/wap-flow/**.
  3. Run the same operator check: wap-flow install-hooks wap-flow doctor --json --strict

Do not treat accidental or stale flow/Cargo.toml and flow/wap-flow/** content in a live sandbox clone as proof that the sandbox is intentionally vendored-source. For live acceptance, the sandbox default branch should be cleaned back to infra-only state before rerunning the proof.

  1. Reinstall the CLI from the source repository: cargo install --path flow/wap-flow --force
  2. Upgrade the consumer repository from the source repository: wap-flow repo-pack upgrade --source <source-root> --target <consumer-repo> --json
  3. In the source repository that publishes the pack, re-run the release procedure in flow/playbooks/release-readiness.md before calling the new pack ready.

For live sandbox work, always upgrade from the source repository first and reinstall the binary from there. Do not use a sandbox-local vendored copy of flow/wap-flow/** as the upgrade authority.