Skip to content

Install And Upgrade

Use this playbook when you want a consumer repository to run 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/salp-flow --force
  2. Bootstrap the repo pack into the consumer repository: flow repo-pack bootstrap --source <source-root> --target <consumer-repo> --json
  3. Inspect drift without writing when needed: 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 flow binary state.

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

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

Do not treat accidental or stale flow/Cargo.toml and flow/salp-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/salp-flow --force
  2. Upgrade the consumer repository from the source repository: 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/salp-flow/** as the upgrade authority.