Expand description
§Shipper
Installable product face for the Shipper release engine.
This is the crate you install with cargo install shipper --locked.
It ships the shipper binary, which delegates to the CLI adapter in
shipper-cli — which in turn
calls the engine in shipper-core.
§Architecture
shipper (this crate — install façade, curated re-export)
-> shipper-cli (CLI adapter: clap parsing, dispatch, output)
-> shipper-core (engine: plan, preflight, publish, resume, …)§Install
cargo install shipper --locked§Embedding
For programmatic use — driving a publish from your own Rust code
without a CLI dependency graph (no clap, no indicatif) — you
have two options:
-
Depend on
shipper-coredirectly. That crate is the stable embedding surface. -
Or disable the default
clifeature on this crate:shipper = { version = "...", default-features = false }This drops the
shipper-cli(and thereforeclap) dependency while keeping the curated re-export paths below.
This crate re-exports a curated set of shipper-core modules
for convenience so shipper::engine, shipper::plan, etc. keep
resolving for drivers that prefer the product name:
engine— preflight, publish, resume, rehearsalplan— build a deterministic publish plantypes— domain types (specs, receipts, state, events)config— load and merge.shipper.tomlstate— read persisted execution state and eventsstore— theStateStoretrait and filesystem implementation
Engine internals (auth, cargo, encryption, git, lock,
registry, retry, runtime, webhook, cargo_failure) are
intentionally not re-exported here. Reach for them through
shipper-core directly — that’s a signal you’re embedding, not
driving.
Modules§
- config
- Configuration file (
.shipper.toml) loading and merging. - engine
- Core publish, preflight, and resume logic.
- plan
- Workspace analysis and topological plan generation.
- state
- Layer 3: persistence. State, events, receipts. Layer 3: persistence. State, events, receipts, and the StateStore trait.
- store
StateStoretrait for pluggable persistence backends.- types
- Domain types: specs, plans, options, receipts, errors.