Skip to content

Release the shellcade-kit CLI from this repo#46

Merged
BCook98 merged 2 commits into
mainfrom
release-mechanics
Jun 16, 2026
Merged

Release the shellcade-kit CLI from this repo#46
BCook98 merged 2 commits into
mainfrom
release-mechanics

Conversation

@BCook98

@BCook98 BCook98 commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

The shellcade-kit CLI binary is now built and released directly from this
repository, alongside the kit module tag. Previously the binary was produced by
a separate downstream GoReleaser run kept in lockstep with the module version.

What changed

  • .goreleaser.yaml (new) — builds ./cmd/shellcade-kit for
    darwin/linux/windows × amd64/arm64, produces the archives + checksums.txt,
    and publishes the Homebrew cask (brew install shellcade/tap/shellcade-kit).
    macOS signing/notarization stays gated behind the Apple secrets, so until
    those exist releases ship unsigned (brew downloads are unaffected).
  • .github/workflows/release-cli.yml (new) — on the vX.Y.Z tag the
    changesets flow pushes, runs GoReleaser to attach the binaries + checksums +
    cask to that release, then fires a kit-released repository_dispatch
    (client_payload.version = the tag) to the consumer repos so they can re-pin
    their toolchain. The cross-repo token is supplied as KIT_RELEASE_TOKEN.
  • .github/workflows/ci.yml — the wasm, wasm-rust, and release-wasm
    jobs now build the CLI from this PR's source (go build -o shellcade-kit ./cmd/shellcade-kit) instead of curl-fetching a pinned release binary. The
    now-unused SHELLCADE_KIT_VERSION / SHELLCADE_KIT_SHA256 env was removed.
  • CLAUDE.md — documents the CLI release path.
  • changesetkit patch noting the CLI is now released from this repo.

Required repository secrets

The release workflow expects these secrets on this repo:

  • KIT_RELEASE_TOKEN — token with contents:write on shellcade/kit (release
    assets) and shellcade/homebrew-tap (cask push), and permission to
    send repository_dispatch to the consumer repos.
  • MACOS_SIGN_P12, MACOS_SIGN_PASSWORD, MACOS_NOTARY_ISSUER_ID,
    MACOS_NOTARY_KEY_ID, MACOS_NOTARY_KEY — optional; notarization activates
    only when MACOS_SIGN_P12 is set.

Verified locally

  • go build ./cmd/shellcade-kit and go run ./cmd/shellcade-kit version.
  • goreleaser check passes; goreleaser release --snapshot --clean --skip=notarize produces all six archives, checksums.txt, and the cask
    (cask URLs correctly resolve to this repo's releases).
  • actionlint passes on both workflows.

The full tagged release (publish + notarize + dispatch) needs secrets/a tag and
was not run locally.

BCook98 and others added 2 commits June 16, 2026 19:42
The shellcade-kit binary used to be built by a separate downstream repo's
GoReleaser in lockstep with the kit module tag. Move that mechanism here so
the kit repo publishes its own CLI:

- Add .goreleaser.yaml building ./cmd/shellcade-kit (cross-platform archives,
  checksums, and the Homebrew cask) and attaching them to this repo's
  vX.Y.Z release. Notarization stays gated behind the Apple secrets.
- Add .github/workflows/release-cli.yml: on the changeset-produced vX.Y.Z
  tag, run GoReleaser, then fire a `kit-released` repository_dispatch
  (client_payload.version = the tag) to the consumer repos so they re-pin.
- Rework ci.yml: the wasm / wasm-rust / release-wasm jobs now build the CLI
  from source instead of curl-fetching a pinned binary; drop the unused
  SHELLCADE_KIT_VERSION / SHELLCADE_KIT_SHA256 env.
- Document the CLI release path in CLAUDE.md and add a changeset.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Port the catalog publishing-policy gate from the platform's main into kit's
moved conformance + CLI copies, so it survives the platform migration merge.

- conformance.LeaderboardVerdict(meta): static GameMeta check that a published
  game declares a LeaderboardSpec; deliberately NOT a generic ABI verdict
  (minimal fixtures legitimately declare none).
- shellcade-kit check --require-leaderboard: opt-in flag that appends the
  verdict to the report; default check (and minimal fixtures) unaffected.
- Test asserts the parity fixture (no board) fails under the strict check.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@BCook98
BCook98 marked this pull request as ready for review June 16, 2026 10:27
@BCook98
BCook98 merged commit f516ffa into main Jun 16, 2026
6 checks passed
@BCook98
BCook98 deleted the release-mechanics branch June 16, 2026 10:27
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