# Homebrew formula skeleton for the Ch∆In CLI. # # Lives in this repo as the canonical source — the actual # distribution is a checkout of `fai/homebrew-tap` (a separate # Forgejo repo, seeded by # `scripts/bootstrap-distribution-repos.sh`) that carries a copy # of this file at `Formula/chain.rb`. The tap repo's # `.forgejo/workflows/update.yml` (sourced from # `installer/homebrew/forgejo-workflow-update.yml` in this repo) # auto-bumps the version + sha256 entries against each new # platform release on a 4-hourly cron. # # To install a release from the tap: # # brew tap fai/tap https://git.flemming.ai/fai/homebrew-tap # brew install chain # # To install from this checkout for testing: # # brew install --build-from-source ./installer/homebrew/chain.rb # # This file is a *skeleton*. The :url / :sha256 placeholders are # populated by the release pipeline once macOS builds land on the # Forgejo Release page. The class name (`Chain`) is what Homebrew # uses to address the formula; lowercase `chain` is the binary on # disk after install. class Chain < Formula desc "Deterministic workflow engine for AI-assisted data " \ "processing in regulated environments" homepage "https://flemming.ai" version "0.16.0" license "Apache-2.0" # Platform-specific binary URLs + sha256 are filled in per # release. cargo-zigbuild-built linux artefacts come from the # same release; the formula consumes them on Apple Silicon and # Intel macs via stanza selectors. if Hardware::CPU.arm? url "https://releases.chain.flemming.ai/v#{version}/chain-macos-aarch64" sha256 "4995c355e79e6afeda34f04e2216c5736d9f088c0392122cd3d6a08f7d1eabf7" else url "https://releases.chain.flemming.ai/v#{version}/chain-macos-x86_64" sha256 "f50cae5477105e2734fb9c92b7d1889fbbb4e848297fa41ec72638b3c63f5916" end # Plain binary — no source build needed. We rely on the upstream # CI to have produced + signed it. Notarization is a separate # follow-up. def install bin.install Dir["*"].first => "chain" end # `brew test chain` runs this — keeps the formula honest. We don't # start the daemon; we only verify the binary is callable. test do assert_match version.to_s, shell_output("#{bin}/chain --version") end def caveats <<~EOS The Ch∆In daemon is not started automatically. After install: chain bootstrap # writes ~/.chain/ layout + PATH marker chain daemon start # starts the local hub chain install debug.echo # smoke-test the install path For Studio, install separately from https://flemming.ai/get. Note: this binary is not yet notarized. macOS Gatekeeper will ask for confirmation on first launch. The notarization step is tracked as the remaining half of system-gap S-16. EOS end end