crate-seq publish pipeline

cli command dispatch → publish pipeline → registry → ledger persistence

system rustcargopublishingcrates-iosemverledger

components

  • client user cli

    invokes crate-seq subcommands

  • process crate-seq init
  • process crate-seq check
  • process crate-seq publish
  • process crate-seq tag
  • process crate-seq skip
  • process crate-seq status
  • process crate-seq snapshot
  • process select workspace members
    crate-seq-manifest
  • process git: discover tags
    crate-seq-git
  • external registry: query versions
    crate-seq-registry
  • process build ledger entries
  • database ledger: write .crate-seq.toml
    crate-seq-ledger
  • database ledger: read entries
    crate-seq-ledger
  • external registry: query latest
    crate-seq-registry
  • process diff: pending vs published
  • process detect orphaned entries
  • process validate snapshot hashes
  • process check report
  • database ledger: append pending entry
    crate-seq-ledger
  • process git: create annotated tag
    crate-seq-git
  • database ledger: mark skipped
    crate-seq-ledger
  • process snapshot: capture directory
    crate-seq-snapshot
  • process snapshot: sha-256 hash
    sha2
  • decision --execute?

    dry-run by default; pass --execute for live publishing

  • process dry run pipeline
  • decision workspace?

    single crate or multi-crate workspace publish

  • process topo sort crates
  • process cargo package --list
    cargo
  • process check path deps
  • process cargo check
    cargo
  • process dry run report
  • process single publish
  • process tiered workspace publish
  • process process_entry
  • process topo sort into tiers
  • process for each tier
  • process publish all crates in tier
  • decision last tier?
  • process wait_for_index

    polls crates.io until versions appear before advancing to next tier

    crate-seq-registry
  • process publish report
  • process process_entry (per crate)
  • process resolve source

    resolves version source: git tag checkout or snapshot archive

  • process validate_manifest

    validates cargo.toml: name, version, license, description

    crate-seq-manifest
  • process manifest: rewrite path deps

    rewrites path dependencies to version ranges for registry publishing

    crate-seq-manifest
  • process cargo package
    cargo
  • process cargo publish
    cargo
  • process registry: backoff retry

    exponential backoff retry on transient registry errors

    crate-seq-registry
  • database ledger: mark published
    crate-seq-ledger
  • database ledger: read all entries
    crate-seq-ledger
  • process status table