Repository navigation
Conversation
…ter the release is published Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
pviti
marked this pull request as draft
October 30, 2026 08:08
…lds never self-update - packaging/homebrew/rail0.rb: builds from source (go), r0 alias, completions, man pages, livecheck, MIT, and a test do block (version under both names, an offline keys generate, the command tree) — for the homebrew-core submission once the repo meets Homebrew's notability bar - bin/brew-formula-test: builds it from the working tree in a throwaway local tap and runs brew install --build-from-source, brew test, brew audit --strict, brew style - selfupdate.Packager, stamped by the formula's ldflags: the binary is package-managed wherever it is installed (rail0 update points to brew upgrade rail0) and the daily automatic update check is off; tap/cask installs keep the path-based detection Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…se has Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…om the module proxy Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
12 tasks
# Conflicts: # README.md
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #189 (Homebrew distribution, tracked step by step there). Draft until the tap repository and
HOMEBREW_TAP_TOKENexist.Brings back the Homebrew channel removed in 0dba1f4 ("drop the Homebrew channel for now", when the repo was private):
brew install commercelayer/tap/rail0.Stacked on #186: the release job now runs at the repo root, which is where the cask is read from. Merge #186 first; this PR then retargets to
main.What changes
.goreleaser.yaml:homebrew_caskswritesdist/homebrew/Casks/rail0.rb:rail0plus ther0alias, bash/zsh/fish completions,man rail0, and a macOS post-install step that lifts the quarantine flag (the binary is not notarized). It usesinstall_steps, the GoReleaser ≥ 2.19 replacement for the deprecatedinstall.release.yml: new step Update the Homebrew tap, after Publish the GitHub release. GoReleaser no longer pushes the cask itself (skip_upload: true): it would push while the release is still a draft, whose download URLs answer 404, so abrew upgradein that window would get a broken cask. WithoutHOMEBREW_TAP_TOKENthe step warns and the release goes ahead. An unchanged cask commits nothing, so a resumed run is harmless.brew upgrade.rail0 updatehelp and docs say the same.selfupdate.ManagedBy: the "dormant" comment is gone. The Caskroom guard (rail0 update→ "run brew upgrade rail0") was already there and tested.Verified locally
goreleaser checkvalidates; a snapshot release writes the cask./opt/homebrew/bin/rail0andr0both reportrail0 1.7.0; completions and the man page are linked; nocom.apple.quarantineon the binary. Then uninstalled and untapped.brew styleflags 9 layout offenses in the generated file. They only matter for homebrew-core, not for a tap.go test ./...passes; docs regenerated.Before the first release that uses it (owner actions, not done here)
commercelayer/homebrew-tap, with aCasks/directory or empty; the step creates it.HOMEBREW_TAP_TOKENto rail0-cli: a fine-grained PAT, or a GitHub App token, withcontents: read and writeoncommercelayer/homebrew-taponly.The next release (1.7.1 or later) then publishes the cask. Until that release, the README's
brew installline finds nothing; that is a reason to release soon after merging, with the tap and the secret already in place.Also in this PR (homebrew-core preparation, stage 2 of #189)
packaging/homebrew/rail0.rb: the homebrew-core formula. It builds from source and adds ther0alias, completions and man pages, plus livecheck and atest doblock. Its url points at v1.7.1; the sha256 is filled in on submission.bin/brew-formula-test: builds the formula from the working tree in a throwaway local tap and runsbrew install --build-from-source,brew test,brew audit --strictandbrew style. All four pass locally.selfupdate.Packager, which the formula stamps at build time. A packaged build is Homebrew-managed wherever it is installed, sorail0 updatepoints tobrew upgrade rail0, and the daily update check is off. Tap and cask installs keep the detection by install path.