Release prep: prebuilt-binary distribution (npm + GitHub Releases) - #1
Merged
Conversation
Cuts the release binary ~26% (4.44 MB -> 3.29 MB) and makes a panic SIGABRT to exit 134 as FR-007 documents (default unwinding exits 101). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds an npm distribution so consumers install quire without a Rust toolchain or access to the private quire-rs repo: - @agent-ix/quire-cli launcher (npm/quire-cli) resolves and execs the binary from a per-platform optional dependency, forwarding argv/stdio/exit status. - npm/build-packages.mjs generates the five platform packages from CI binaries (linux x64/arm64 musl, darwin x64/arm64, win32 x64), each os/cpu-guarded. - scripts/set_version.sh single-sources the version across Cargo.toml and the npm packages. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
On a vX.Y.Z tag, builds the five target binaries on native runners, smoke-tests each, attaches tarballs + SHA256SUMS to a GitHub Release, and publishes the npm launcher and platform packages to GitHub Packages. Uses the org REGISTRY_TOKEN for both the private quire-rs fetch and the npm registry auth. workflow_dispatch runs the build and packaging steps but skips publishing for dry runs. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- CHANGELOG.md backfilled v0.1.0..v0.2.1 with an Unreleased section. - README install: npm prebuilt binary is now the primary path; the cargo route is marked contributors-only (quire-rs is private). - spec.md: lifecycle DRAFT -> BASELINED; add lint to the subcommand surface. - plan/plan.md: SUPERSEDED banner (render removed per spec 2bis; schema/lookup/ edit/lint added after v0.1.0). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Makes quire-cli release-ready: multi-target binary builds, an npm wrapper for toolchain-free install, and reconciled docs.
What's here
Binary distribution (the core ask)
.github/workflows/release.yml— on avX.Y.Ztag: builds 5 targets on native runners, smoke-tests each--version, attachesquire-<ver>-<target>.tar.gz/.zip+SHA256SUMS.txtto a GitHub Release, and publishes to GitHub Packages.x86_64/aarch64linux-musl (static),x86_64/aarch64darwin,x86_64windows. (Intel vs AMD is the samex86_64build on every OS.)REGISTRY_TOKENfor both the privatequire-rsfetch and npm auth, matchingquire-wasm/nodejs-actions/the TS libs.npm wrapper (
npm/)@agent-ix/quire-clilauncher resolves+execs the right per-platform binary (forwards argv/stdio/exit status). Smoke-tested end-to-end.npm/build-packages.mjsgenerates the 5os/cpu-guarded platform packages from CI binaries — optionalDependencies pattern, no postinstall download.quire-rsis private, socargo install --gitneeds repo access and crates.io publish is impossible. Prebuilt npm binaries are the real distribution channel.Supporting
scripts/set_version.shsingle-sources the version across Cargo + npm.strip+panic = "abort"(binary 4.44 MB → 3.29 MB; panic now exits 134 per FR-007).CHANGELOG.mdbackfilled; README install reordered (npm-first);spec.mdDRAFT → BASELINED+lintadded to surface; stale render-centricplan.mdflagged SUPERSEDED.Verification
cargo build --releasegreen; full test suite passes (~85 tests).build-packages.mjssmoke-tested against the real binary (version passthrough, exit-code passthrough, missing-platform error path).Before first real tag
After merge, dispatch the workflow via
workflow_dispatch(builds + packages, skips publish) to confirm all 5 targets — especiallyaarch64-unknown-linux-musland Windows — compile in CI.🤖 Generated with Claude Code