Publish-workflow orchestration for Cabin.
Two paths share a single staging step:
- [
dry_run()] / [DryRunRequest] stage the package and write The archive + canonical metadata to an output directory Without touching any registry. - [
publish_to_file_registry] / [dry_run_against_file_registry] call intocabin-registry-fileto actually mutate (or validate without Mutating) a local file registry.
Crate boundaries:
- this crate must not implement HTTP / sparse / OCI publish;
- it must not implement server-side functionality;
- file-registry layout, atomic-ish writes, and the lock file all
Live in
cabin-registry-file; - this crate is the layer where staging meets writing. Nothing Higher-level (CLI flag handling, output formatting) belongs Here.