76 lines
2.8 KiB
Ruby
76 lines
2.8 KiB
Ruby
# 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
|