Skip to content

feat(007): release distribution (tag-gated prebuilt binaries + installer)#8

Merged
bartekus merged 1 commit into
mainfrom
feat/007-release-distribution
Jul 22, 2026
Merged

feat(007): release distribution (tag-gated prebuilt binaries + installer)#8
bartekus merged 1 commit into
mainfrom
feat/007-release-distribution

Conversation

@bartekus

Copy link
Copy Markdown
Contributor

Summary

  • Spec 007 (release-distribution): pushing a v<semver> tag now produces a GitHub Release with prebuilt binaries for five targets. The spec establishes .github/workflows/release.yml and install.sh and records the design decisions (bare v* tag grammar, matrix shape, supply-chain evidence, no registry publishing).
  • release.yml: fail-fast version guard (tag must equal the committed Cargo.toml version; zero build minutes on mismatch), five-triple build matrix (--locked; x86_64-apple-darwin cross-compiles on the Apple Silicon runner), .sha256 sidecar per archive, per-target CycloneDX SBOM (fail-closed on zero components), SLSA build-provenance attestation per archive, idempotent publish with generated notes. Every action SHA-pinned with a version comment, same rule as ci.yml.
  • install.sh: curl | sh installer; detects platform/arch, verifies the checksum (hard requirement) and the provenance attestation (best-effort via gh; STATECRAFT_REQUIRE_ATTESTATION=1 escalates to hard-fail). musl Linux refused with a cargo install --git pointer. Overrides: STATECRAFT_VERSION, STATECRAFT_BIN_DIR, STATECRAFT_SKIP_ATTESTATION.
  • README: install section; the stale "pre-code" status paragraph now reflects implemented specs 002-006.
  • .derived: recompiled shards, including the stagecraft-cli -> statecraft-cli by-package rename fallout from PR Rename #7.

Spec 007 stays implementation: in-progress until the first live release is verified end to end (acceptance §6); the follow-up PR records that transcript and flips it to complete.

Testing

  • spec-spine compile / lint --fail-on-warn / index check green; couple green apart from the waived README path below.
  • cargo fmt --check, cargo clippy --all-targets -- -D warnings, cargo test (16 passed).
  • actionlint clean on release.yml; sh -n clean on install.sh.
  • The risky cross-compile leg proven locally: cargo build --release --locked --target x86_64-apple-darwin on an Apple Silicon machine produces a valid x86_64 Mach-O; Cargo.lock pins ring (no aws-lc-sys).

Spec-Drift-Waiver: README.md is established by spec 001 (the thesis owns the repo's front door), and ownership overrides the **/README.md bypass prefix mechanically. This PR's README edit only documents the spec 007 install surface and refreshes the stale pre-code status paragraph; none of 001's decided constraints (binary name, Rust, stdio MCP, Apache-2.0, no TUI) are touched, and spec-spine.toml's own bypass_prefixes already expresses that README prose is ungated documentation. A coupling waiver, not a coherence override.

- specs/007: release-distribution spec (implementation in progress
  until the first live release is verified)
- release.yml: fail-fast tag-vs-Cargo.toml version guard, five-triple
  build matrix (--locked), per-target .sha256 sidecar, CycloneDX SBOM
  (fail-closed on zero components), SLSA build-provenance attestation,
  idempotent publish with generated notes; actions SHA-pinned
- install.sh: curl|sh installer; checksum verification required,
  provenance attestation best-effort with STATECRAFT_REQUIRE_ATTESTATION
  escalation; musl refused with a cargo install pointer
- README: install section; status updated to reflect implemented 002-006
- .derived: recompiled shards, including the stagecraft-cli ->
  statecraft-cli by-package rename fallout
@bartekus
bartekus merged commit 4f0cc73 into main Jul 22, 2026
2 checks passed
@bartekus
bartekus deleted the feat/007-release-distribution branch July 22, 2026 22:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant