Skip to content

P1: Build a hermetic reproducible Braid publish and release path #75

Description

@srinji-kaggss

Parent roadmap: #74

Problem

Braid's crates are intended to be consumed by other repositories, but the
registry export is stale and there is no reproducible regeneration/release
path. A local sibling checkout or mutable workspace state must not be part of
the supply chain.

Scope

  • Define the publishable crate set and version policy.
  • Generate the registry/export from the current workspace with one repeatable
    command; fail if generated output differs from source.
  • Pin dependency versions/checksums and record provenance/update procedure.
  • Build and package from a clean checkout with no private sibling directories.
  • Publish or produce a dry-run artifact bundle first, then cut a signed/tagged
    release only after the clean consumer probe passes.
  • Include release manifest, CID/KAT results, CI evidence, and rollback notes.

Acceptance criteria

  • cargo metadata --locked and package/build succeed on an empty runner.
  • Registry output is regenerated from the workspace and is byte-stable.
  • A scratch consumer resolves the published/tagged crates without a path
    dependency or vendored snapshot.
  • Exact versions, checksums, source commits, and supported Rust version are
    documented.
  • A failed publish cannot leave a partially advertised release.
  • Release and rollback procedures are tested and attached as evidence.

Depends on: #73, and the final decisions from #63 where they affect published
interfaces. Related: #74, #70, #72.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions