Skip to content

feat(cli): vendor rubyists/homebrew-tap, make install.sh curl-pipeable - #75

Merged
bougyman merged 5 commits into
mainfrom
bougyman/cry-37-create-rubyistshomebrew-tap-for-lc
Aug 12, 2026
Merged

feat(cli): vendor rubyists/homebrew-tap, make install.sh curl-pipeable#75
bougyman merged 5 commits into
mainfrom
bougyman/cry-37-create-rubyistshomebrew-tap-for-lc

Conversation

@bougyman

Copy link
Copy Markdown
Member

Summary

  • Vendors the new rubyists/homebrew-tap repo as a submodule at vendor/rubyists-homebrew-tap, pinned to the commit whose lc formula points at the real v1.0.0 release assets/sha256 (feat: add lc formula homebrew-tap#1). Closes CRY-37.
  • Rewrites install.sh to be actually curl-pipeable: it previously required a local repo checkout (BASH_SOURCE[0]-derived app/ path) and a full Elixir/Erlang/Zig toolchain to build from source, despite its own comment claiming to be the Homebrew-less fallback. Now downloads the release tarball for the detected platform (already bundles the wrapper scripts), verifies it against the release's own SHA256SUMS, and installs - no toolchain needed. Adds LC_VERSION to pin a specific release tag. Also strips macOS's quarantine attribute on lc (previously a manual README step).
  • Fixes a real bug found while testing: a checksum-verification failure didn't actually stop the script (a missing || exit 1 on the one command-substitution call that lacked it), so it fell through into an unrelated second error instead of failing clean.
  • Updates the README: fixes the stale "Homebrew tap is planned but not yet available" note now that the tap exists, adds a Homebrew install subsection, and documents install.sh/uninstall.sh's new curl-pipeable one-liners.

Test plan

  • Ran install.sh directly and piped (cat install.sh | bash, matching real curl | bash usage) - both install correctly, lc --version reports 1.0.0
  • Tested LC_VERSION=v1.0.0 (pinned) alongside default (latest)
  • Tested a corrupted/tampered download - checksum verification correctly aborts before installing anything
  • Round-tripped with uninstall.sh - removes exactly the manifest's files
  • Verified the Homebrew formula's sha256 values against the release's own SHA256SUMS, and the tarball's flat layout against bin.install's arg list

🤖 Generated with Claude Code

Manually bumps the manifest/.version.txt/mix.exs to 1.0.0 and flips
bump-minor-pre-major/bump-patch-for-minor-pre-major off in
.release-please-config.json - release-please would otherwise keep
bumping minor/patch under 0.x forever, even off a breaking-change
commit. From here, release-please's next PR picks up normal semver
bumping (major/minor/patch) from this 1.0.0 baseline. Unblocks CRY-37
(homebrew tap), which is waiting on a real tagged release to exist.
…f building from source

Previously required a local repo checkout (used BASH_SOURCE[0] to find
app/) and a full Elixir/Erlang/Zig toolchain to build from source -
unusable as a curl | bash one-liner despite its own comment claiming
to be the Homebrew-less fallback. Now downloads the release tarball
for the detected platform (already bundles the wrapper scripts),
verifies it against the release's SHA256SUMS, and installs - no
toolchain needed. Adds LC_VERSION to pin a specific release tag.
Also fixes a real bug found while testing: a checksum-verification
failure didn't actually stop the script (missing `|| exit 1` on the
fetch_lc call), so it fell through into an unrelated second error
instead of failing clean.

Also updates the README: fixes the stale "Homebrew tap is planned but
not yet available" note now that rubyists/homebrew-tap exists, and
documents install.sh/uninstall.sh's new curl-pipeable one-liners.
Copilot AI lite review requested due to automatic review settings August 12, 2026 12:29
@bougyman
bougyman merged commit e836ab1 into main Aug 12, 2026
3 checks passed
@bougyman
bougyman deleted the bougyman/cry-37-create-rubyistshomebrew-tap-for-lc branch August 12, 2026 12:31

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR vendors the new rubyists/homebrew-tap as a submodule and updates installation guidance by making install.sh truly curl-pipeable: it now fetches the appropriate prebuilt release tarball, verifies it via SHA256SUMS, installs the bundled binaries/scripts, and performs a best-effort macOS quarantine attribute removal.

Changes:

  • Vendor rubyists/homebrew-tap as vendor/rubyists-homebrew-tap and document the Homebrew-based install path.
  • Rewrite install.sh to download + checksum-verify release artifacts and install without requiring an Elixir/Erlang/Zig toolchain.
  • Update README install/uninstall one-liners and adjust guidance for Homebrew vs non-Homebrew installs.

Reviewed changes

Copilot reviewed 3 out of 4 changed files in this pull request and generated 2 comments.

File Description
Readme.adoc Adds Homebrew install steps and updates install.sh/uninstall.sh usage to curl-pipeable one-liners.
install.sh Switches from building-from-source to downloading/verifying/extracting release tarballs and installing bundled executables/scripts.
.gitmodules Adds the vendor/rubyists-homebrew-tap submodule entry.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread install.sh
Comment on lines +127 to 131
if ! grep -- " $tarball\$" "$tmp_dir/SHA256SUMS" | (cd "$tmp_dir" && $sum_tool -c -) >/dev/null
then
printf 'error: checksum verification failed for %s\n' "$tarball" >&2
exit 1
fi
Comment thread install.sh
printf 'error: could not create a temp directory\n' >&2
exit 1
}
trap 'rm -rf "$tmp_dir"' EXIT
This was referenced Aug 12, 2026
bougyman pushed a commit that referenced this pull request Aug 12, 2026
🤖 I have created a release *beep* *boop*
---


##
[1.1.0](v1.0.0...v1.1.0)
(2026-08-12)


### Features

* **cli:** vendor rubyists/homebrew-tap, make install.sh curl-pipeable
([#75](#75))
([e836ab1](e836ab1))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
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.

2 participants