Skip to content

Adoption on-ramp: prebuilt-binary release + rosalind-budget GitHub Action - #27

Merged
logannye merged 4 commits into
mainfrom
rosalind/adoption-on-ramp
Jun 2, 2026
Merged

Adoption on-ramp: prebuilt-binary release + rosalind-budget GitHub Action#27
logannye merged 4 commits into
mainfrom
rosalind/adoption-on-ramp

Conversation

@logannye

@logannye logannye commented Jun 2, 2026

Copy link
Copy Markdown
Owner

Summary

Turns the differentiator from "clone → fight the htslib C-toolchain build" into "run the memory contract in 60 seconds," and gives builders a drop-in way to enforce the contract in their own CI. From the audit: the live plan → enforce → verify loop is a 60-second demo, but it was unrunnable by strangers (no releases/tags/containers).

  • release.yml — on a v* tag (or workflow_dispatch dry run): builds a static x86_64-unknown-linux-musl binary + native macOS arm64/x86_64, bundles each with the illumina_toy contract-demo fixtures + licenses into a tarball (+ sha256), and attaches to the GitHub Release.
  • install.shcurl … | sh: detects OS/arch, downloads the matching tarball (gh for private, curl fallback), unpacks, and prints the bundled plan → enforce → verify demo. Detection + error paths verified locally.
  • README "Quickstart (60 seconds)" — curl-install then the exact contract commands (re-verified end-to-end on the release binary: [FITS]contract: OKverify: OK).
  • rosalind-budget composite Action (action.yml)- uses: logannye/rosalind-budget@v1 downloads the prebuilt binary, runs plan + variants --index --enforce (fails the consumer's build on exit 3 refuse / exit 4 breach), uploads the BLAKE3 receipt. Safe env-var input pattern; an optional binary-path skips the download. cli-e2e exercises the Action live via uses: ./ with the from-source binary, so action.yml is tested in CI today — before any release exists.

Spec: docs/superpowers/specs/2026-06-02-adoption-on-ramp-design.md.

Honest notes

  • CI-only verification: the Linux musl-static build and the release publish run on GitHub runners — not run-verifiable locally. This PR delivers reviewed infrastructure + a locally-verified macOS quickstart + a CI self-test of the Action.
  • The v0.1.0 tag is the trigger: merging this releases nothing; release.yml fires on a tag push. Cutting the tag stays a deliberate, separate step.
  • Container deferred (a second channel for the same binary) — a clean follow-up.

Test plan

  • cargo test green; cargo fmt --all -- --check clean; 0 warnings (debug + release)
  • All 3 workflow/action YAML files structurally valid
  • Quickstart commands re-verified on the release binary (FITS / contract OK / verify OK)
  • Linux musl-static build + release publish — validated when CI/the tag first runs

🤖 Generated with Claude Code

logannye and others added 4 commits June 2, 2026 10:40
…ction)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
On a v* tag: build a static x86_64-musl Linux binary and native macOS
arm64/x86_64 binaries, bundle each with the illumina_toy contract-demo fixtures
+ licenses into a tarball (+ sha256), and attach to the GitHub Release.
workflow_dispatch builds the same artifacts without publishing (a safe dry run).
The static Linux build relies on the -sys crates building htslib/bzip2/lzma/zlib
from bundled C source. Cutting the v0.1.0 tag is a deliberate, separate step.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
install.sh detects OS/arch -> release target, downloads the matching prebuilt
tarball (gh for private repos, curl fallback), unpacks it, and prints the
bundled plan->enforce->verify demo. README gains a 'Quickstart (60 seconds)'
leading with curl-install then the exact contract commands (verified locally).
Turns 'clone + fight the htslib C-toolchain build' into 'run the contract in a
minute'. Detection + error paths verified locally (download needs a release).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…+ docs

A drop-in Action so a consumer makes a declared memory budget a CI gate:
'- uses: logannye/rosalind-budget@v1' downloads the prebuilt binary, runs plan
+ variants --index --enforce (fails the consumer's build on exit 3 refuse /
exit 4 breach), and uploads the BLAKE3 receipt. Inputs use the safe env-var
pattern; an optional binary-path skips the download (air-gapped / self-test).
cli-e2e now exercises the Action live via 'uses: ./' with the from-source
binary, so action.yml is tested in CI before any release exists. README gains a
'memory contract in your CI' section. The one capability a --max-mem flag can't
replicate: a portable, verifiable budget that fails a stranger's build.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@logannye
logannye merged commit 9506d45 into main Jun 2, 2026
2 of 3 checks passed
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