Skip to content

Homebrew Packaging

Alex Stoyanov edited this page Mar 2, 2026 · 1 revision

Homebrew Packaging

This page is maintainer guidance for Homebrew distribution.

Scope

Ethernity supports Homebrew on:

  • macOS x64
  • macOS arm64
  • Linux x64
  • Linux arm64

The supported path is tap/source-formula distribution, with bottle automation where available.

User Install Commands

brew tap minorglitch/tap
brew install ethernity

If the tap is already configured and no conflicting formula exists, brew install ethernity is usually enough.

Automation Sources

  • Workflow: .github/workflows/homebrew-tap.yml
  • Formula generator: scripts/generate_homebrew_source_formula.py
  • Bottle block updater: scripts/update_homebrew_bottle_block.py

The workflow is triggered on release/tag events (and manual dispatch), then updates tap formula and bottle metadata.

Required Repo Settings

  • Secret: HOMEBREW_TAP_TOKEN (push access to tap repo)
  • Optional variable: HOMEBREW_TAP_REPO (defaults to minorglitch/homebrew-tap)

Publish Flow (Maintainer)

  1. Ensure release tag and project version are aligned.
  2. Confirm release artifacts are available for expected variant matrix.
  3. Trigger/verify tap workflow completion.
  4. Confirm formula update in tap repo (Formula/ethernity.rb).
  5. Confirm bottle assets are published and checksums are updated.

Local Tap Test

brew tap-new <you>/local-ethernity-test --no-git
cp scripts/homebrew_ethernity_tap.rb "$(brew --repo <you>/local-ethernity-test)/Formula/ethernity.rb"
brew install --build-from-source <you>/local-ethernity-test/ethernity
brew test ethernity
brew untap <you>/local-ethernity-test

Common Failures

  • Missing tap token or insufficient permissions.
  • Tag/version mismatch between workflow and released artifacts.
  • Bottle checksums not updated after artifact regeneration.

Related

Clone this wiki locally