Skip to content

release: single ReleaseSafe flavor + ship scoot-wasm + Homebrew tap - #166

Merged
jamiesun merged 1 commit into
mainfrom
release-flavors-homebrew
Jun 27, 2026
Merged

release: single ReleaseSafe flavor + ship scoot-wasm + Homebrew tap#166
jamiesun merged 1 commit into
mainfrom
release-flavors-homebrew

Conversation

@jamiesun

Copy link
Copy Markdown
Collaborator

What

Implements option A from the install discussion and trims the release matrix.

Release workflow

  • Remove the 5 -small (ReleaseSmall) matrix entries (10 build jobs -> 5).
  • Each job now builds scoot and scoot-wasm in one pass (-Dwasm-host=true) and publishes a separate scoot-wasm-<target>.tar.gz (+ .sha256) alongside scoot-<target>.tar.gz.
  • Release notes are always rendered to a file (CHANGELOG section or auto-generated) plus a permanent footer (.github/release-footer.md) documenting install paths, Homebrew, and how to compile a smaller ReleaseSmall binary from source.
  • New guarded homebrew job renders and pushes scoot.rb and scoot-wasm.rb to jamiesun/homebrew-tap. scoot-wasm depends_on scoot, so installing the host also installs the agent; the default wasm_host then resolves scoot-wasm from PATH. The job no-ops unless HOMEBREW_TAP_TOKEN is set (mirrors the optional Docker Hub publish).

Installer

  • install.sh: drop SCOOT_INSTALL_FLAVOR; download the single published flavor.

Docs

  • book/en|zh/src/installation.md, README.md, docs/README.zh.md, CHANGELOG.md, docs/CHANGELOG.zh.md updated bilingually for Homebrew and the flavor change.

Operator follow-up (required for the Homebrew job)

  1. Create the tap repo jamiesun/homebrew-tap.
  2. Add a HOMEBREW_TAP_TOKEN secret (PAT with contents:write on the tap repo).

Without those, everything else (curl installer, Docker, release archives incl. scoot-wasm) ships normally.

…mebrew tap

- Drop the -small (ReleaseSmall) release matrix entries; build scoot and
  scoot-wasm together via -Dwasm-host=true and publish a separate
  scoot-wasm-<target>.tar.gz per target.
- Always render release notes to a file and append a permanent footer
  (.github/release-footer.md) covering install paths, Homebrew, and how to
  compile a smaller ReleaseSmall binary from source.
- Add a guarded homebrew job that renders and pushes scoot.rb and
  scoot-wasm.rb (depends_on scoot) to the tap, no-op without HOMEBREW_TAP_TOKEN.
- install.sh: drop SCOOT_INSTALL_FLAVOR; download the single published flavor.
- Docs (EN+ZH) and CHANGELOG updated for Homebrew and the flavor change.
@jamiesun
jamiesun merged commit 0546eb1 into main Jun 27, 2026
7 checks passed
@jamiesun
jamiesun deleted the release-flavors-homebrew branch June 27, 2026 15:07
@jamiesun jamiesun mentioned this pull request Jun 27, 2026
jamiesun added a commit that referenced this pull request Jun 27, 2026
- wasm host W0-W4: integer, WASI preview1, type validation, float execution (#145, #147, #148, #149, #162)
- feat: wasm_tool action for compute-only packages (#154)
- wasm: narrow plugin sandbox to stdin/stdout/stderr/argv as a new hard rule (#164)
- feat: committed playground test environment with full action coverage (#161)
- release: single ReleaseSafe flavor, ship scoot-wasm artifacts, Homebrew tap (#166)
- fix(release): reference SCOOT_DOCKERHUB_* secrets so Docker Hub login is attempted
- docs: README rewrite + infographic, English comment translation (#160, #165, #146, #153)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
jamiesun added a commit that referenced this pull request Jul 1, 2026
Add release packaging for the optional scoot-edge fleet companion,
mirroring the existing scoot-wasm pattern established in PR #166:

- .github/workflows/release.yml: build with -Dedge=true alongside
  -Dwasm-host=true; create a scoot-edge-<target>.tar.gz archive
  (+ .sha256) per target; upload as a release artifact; publish a
  scoot-edge Homebrew formula (depends_on "jamiesun/tap/scoot").
- install.sh: add an opt-in SCOOT_INSTALL_EDGE env var. When set,
  additionally downloads, verifies, and installs scoot-edge under its
  own fixed name. Never installed unless explicitly requested, keeping
  the default install minimal. Generalized install_binary() to take a
  destination-name parameter to support installing a second binary.
- .github/release-footer.md, book/en+zh/src/installation.md,
  README.md, docs/README.zh.md: document the new archive, Homebrew
  formula, and opt-in install-script variable.
- docs/EDGE.md / EDGE.zh.md: update status line and E3 phasing bullet
  to reflect partial completion -- packaging (install-script opt-in +
  Homebrew) and reconnect/backpressure hardening are done; an apt
  package remains open (no apt precedent exists anywhere in this repo,
  so it is tracked rather than mirrored from a nonexistent pattern).
- CHANGELOG.md / docs/CHANGELOG.zh.md: add entries for this work.

Verified: zig build, zig build test, zig fmt --check, both mdbooks
build, actionlint (no new warnings vs. baseline), shellcheck (clean),
and isolated function-level testing of install.sh's new edge-install
path against a real locally-built scoot-edge binary (checksum verify
positive/negative, tar layout, install_binary 3-arg signature).

Refs #171 (E3 packaging partially addressed; apt remains open).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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