shipper-cli 0.3.0-rc.2

CLI adapter for Shipper. Install with `cargo install shipper --locked`; this crate is for embedders who want the exact CLI surface programmatically.
Documentation
---
source: crates/shipper-cli/tests/e2e_expanded.rs
expression: normalize_stderr(&stdout)
---
Clean state files (state.json, receipt.json, events.jsonl)

Usage: shipper-cli clean [OPTIONS]

Options:
      --config <CONFIG>
          Path to a custom configuration file (.shipper.toml)

      --keep-receipt
          Keep receipt.json (only remove state.json and events.jsonl)

      --manifest-path <MANIFEST_PATH>
          Path to the workspace Cargo.toml
          
          [default: Cargo.toml]

      --registry <REGISTRY>
          Cargo registry name (default: crates-io)

      --api-base <API_BASE>
          Registry API base URL (default: <https://crates.io>)

      --package <PACKAGES>
          Restrict to specific packages (repeatable). If omitted, publishes all publishable workspace members

      --state-dir <STATE_DIR>
          Directory for shipper state and receipts (default: .shipper)

      --output-lines <OUTPUT_LINES>
          Number of output lines to capture for evidence (default: 50)

      --allow-dirty
          Allow publishing from a dirty git working tree

      --skip-ownership-check
          Skip owners/permissions preflight

      --strict-ownership
          Fail preflight if ownership checks fail or if no token is available.
          
          Note: crates.io token scopes may not allow querying owners; this is best-effort.

      --no-verify
          Pass --no-verify to cargo publish

      --max-attempts <MAX_ATTEMPTS>
          Max attempts per crate publish step (default: 6)

      --base-delay <BASE_DELAY>
          Base backoff delay (e.g. 2s, 500ms; default: 2s)

      --max-delay <MAX_DELAY>
          Max backoff delay (e.g. 2m; default: 2m)

      --retry-strategy <RETRY_STRATEGY>
          Retry strategy: immediate, exponential (default), linear, constant

      --retry-jitter <RETRY_JITTER>
          Jitter factor for retry delays (0.0 = no jitter, 1.0 = full jitter; default: 0.5)

      --verify-timeout <VERIFY_TIMEOUT>
          How long to wait for registry visibility after a successful publish (default: 2m)

      --verify-poll <VERIFY_POLL>
          Poll interval for checking registry visibility (default: 5s)

      --readiness-method <READINESS_METHOD>
          Readiness check method: api (default, fast), index (slower, more accurate), both (slowest, most reliable)

      --readiness-timeout <READINESS_TIMEOUT>
          How long to wait for registry visibility during readiness checks (default: 5m)

      --readiness-poll <READINESS_POLL>
          Poll interval for readiness checks (default: 2s)

      --no-readiness
          Disable readiness checks (for advanced users)

      --force-resume
          Force resume even if the computed plan differs from the state file

      --force
          Force override of existing locks (use with caution)

      --lock-timeout <LOCK_TIMEOUT>
          Lock timeout duration (e.g. 1h, 30m; default: 1h). Locks older than this are considered stale

      --policy <POLICY>
          Publish policy: safe (verify+strict), balanced (verify when needed), fast (no verify; default: safe)

      --verify-mode <VERIFY_MODE>
          Verify mode: workspace (default), package (per-crate), none (no verify)

      --parallel
          Enable parallel publishing (packages at the same dependency level are published concurrently)

      --max-concurrent <MAX_CONCURRENT>
          Maximum number of concurrent publish operations (implies --parallel)

      --per-package-timeout <PER_PACKAGE_TIMEOUT>
          Timeout per package publish operation when using parallel mode (e.g. 30m, 1h)

      --webhook-url <WEBHOOK_URL>
          Webhook URL to send publish event notifications to

      --webhook-secret <WEBHOOK_SECRET>
          Optional secret for signing webhook payloads

      --encrypt
          Enable encryption for state files

      --encrypt-passphrase <ENCRYPT_PASSPHRASE>
          Passphrase for state file encryption (or use SHIPPER_ENCRYPT_KEY env var)

      --registries <REGISTRIES>
          Target registries for multi-registry publishing (comma-separated list) Example: --registries crates-io,my-registry

      --all-registries
          Publish to all configured registries

      --resume-from <RESUME_FROM>
          Optional package name to resume from

      --rehearsal-registry <REHEARSAL_REGISTRY>
          Name of a registry (from `[[registries]]` in `.shipper.toml`) to rehearse the publish against before live dispatch.
          
          See issue #97. Plumbed through today; phase-2 execution (actual publish to the rehearsal registry + install/smoke checks + live dispatch gate) lands in a follow-on PR.

      --skip-rehearsal
          Skip rehearsal even if `.shipper.toml` enables it.
          
          Use with caution — rehearsal (once fully implemented under #97) is the proof boundary between "we built it" and "we verified it actually resolves from a registry." Bypassing it should be rare.

      --smoke-install <CRATE>
          Crate name to smoke-install after a successful rehearsal (#97 PR 4).
          
          Runs `cargo install --registry <rehearsal> <CRATE>` against the rehearsal registry to prove the crate actually resolves and installs end-to-end — the scenario that workspace-path dependencies defeat and that killed the rc.1 first-publish.
          
          The named crate must be in the plan AND have a `[[bin]]` target. Library-only crates cannot be smoke-installed directly; use a consumer-workspace build instead (follow-on).

      --format <FORMAT>
          Output format: text (default) or json
          
          [default: text]
          [possible values: text, json]

      --verbose
          Show detailed dependency analysis for plan command

  -q, --quiet
          Suppress informational output

  -h, --help
          Print help (see a summary with '-h')