Skip to content

ci(homebrew): publish casks for xearthlayer-publish too - #332

Merged
samsoir merged 1 commit into
develop/0.5.0from
feat/homebrew-publish-cask
Oct 23, 2026
Merged

samsoir merged 1 commit into
develop/0.5.0from
feat/homebrew-publish-cask

Conversation

@samsoir

@samsoir samsoir commented Oct 23, 2026

Copy link
Copy Markdown
Owner

Releases pushed Homebrew casks for the runtime only, so xearthlayer-publish, built, signed and notarized in the same run, could not be installed with Homebrew.

  • New casks xearthlayer-publish and xearthlayer-publish@prerelease. They conflict only with each other, so the publisher installs alongside either runtime cask, and they do not depend on macfuse.
  • scripts/homebrew/render-cask.sh takes the product as its first argument.
  • The "Update Homebrew tap" step renders both products' casks for the tag's channel, each hashed from its own uploaded tarball, in one tap commit.

The tap side is already merged (XEarthLayer/homebrew-tap#1): its audit exempts every @prerelease cask from github_prerelease_version and smoke-tests each cask's own binary.

Verification

  • render-cask.sh renders all four casks and refuses a pre-release into a stable cask, the reverse, and an unknown product.
  • The tap PR's Audit installed xearthlayer-publish@prerelease for v0.5.0-alpha.2, rendered by this script from the published tarball's SHA-256, through Homebrew's quarantine, and xearthlayer-publish --version printed 0.5.0-alpha.2.
  • The step's own run is the next release.

The release workflow pushed casks for the runtime only, so the package
publisher, built, signed and notarized in the same run, could not be
installed with Homebrew.

Two new templates, xearthlayer-publish and
xearthlayer-publish@prerelease, conflict only with each other, so the
publisher installs alongside either runtime cask. They do not depend
on macfuse: the publisher never mounts anything. render-cask.sh takes
the product as its first argument, and the "Update Homebrew tap" step
renders both products' casks for the tag's channel, each hashed from
its own uploaded tarball, and pushes them in one tap commit.

The tap's audit workflow must exempt every @prerelease cask from
github_prerelease_version and run each cask's own binary in its smoke
test before the first release with this change; that is a change to
xearthlayer/homebrew-tap.
@samsoir
samsoir merged commit 96aeadb into develop/0.5.0 Oct 23, 2026
2 checks passed
@samsoir
samsoir deleted the feat/homebrew-publish-cask branch October 23, 2026 20:23
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