Deprecate the aggregator tap, migrate consumers to direct-repo install #6

Closed
opened 2026-05-23 20:54:24 +00:00 by coilysiren · 0 comments
Owner

Originally filed by @coilysiren on 2026-05-19T08:16:29Z - https://github.com/coilysiren/homebrew-tap/issues/35

Problem

The aggregator-tap pattern requires every consumer repo (coily, repo-recall, agent-guard, personal-dashboard, session-lattice) to hold a HOMEBREW_TAP_TOKEN fine-grained PAT scoped to this repo with Contents: Read and write. Five PATs total, each one auth-maintenance: they expire, they need rotating, they can leak, they're per-PAT effort to provision on a fresh host.

The maintenance is auth maintenance, not code maintenance. The cross-repo bump workflow itself is fine and works. The cost is the PAT footprint.

Decision

Deprecate this tap. Every consumer formula already lives at Formula/<name>.rb in its own upstream repo (source of truth). Users can install directly:

brew tap coilysiren/<repo> https://github.com/coilysiren/<repo>
brew install coilysiren/<repo>/<formula>

The explicit-URL brew tap form lets brew tap repos that aren't homebrew-* prefixed, so no repo renames needed. Costs one extra path segment in the install command (coilysiren/repo-recall/repo-recall vs coilysiren/tap/repo-recall). That is the entire UX delta.

Drops five PATs, five bump workflows in consumers, one bump workflow per consumer in this repo, and the per-repo dispatch wiring.

Migration

Per-consumer (each has its own retirement issue, linked below):

  • Drop the bump-tap job from the consumer's .github/workflows/release.yml. Keep the tag + GH Release jobs.
  • Drop the HOMEBREW_TAP_TOKEN secret on the consumer repo.
  • Update the consumer's README install instructions to the direct-tap form.

In this repo, after each consumer migrates:

  • Delete the corresponding Formula/<name>.rb mirror.
  • Delete the corresponding .github/workflows/bump-<name>.yml receiver.
  • Delete the corresponding section in README.md and entry in AGENTS.md.

When all five consumers have migrated, this repo becomes an empty shell:

  • Replace README.md with a deprecation banner pointing users at the per-repo direct-tap install commands.
  • Archive the repo on GitHub.
  • Drop the install-repo-recall.sh script (consumer repos can carry their own equivalent if they want one).

Sequencing

session-lattice migrates first - the bump workflow landed today (#16), no real release has tagged yet, no users depend on the tap path. Smallest blast radius, cleanest validation that the direct-tap install actually works end to end. Then repo-recall, then the Go-binary consumers (coily, agent-guard, personal-dashboard) which are even simpler (no Python resource blocks).

Consumer retirement issues

_Originally filed by @coilysiren on 2026-05-19T08:16:29Z - [https://github.com/coilysiren/homebrew-tap/issues/35](https://github.com/coilysiren/homebrew-tap/issues/35)_ **Problem** The aggregator-tap pattern requires every consumer repo (coily, repo-recall, agent-guard, personal-dashboard, session-lattice) to hold a `HOMEBREW_TAP_TOKEN` fine-grained PAT scoped to this repo with `Contents: Read and write`. Five PATs total, each one auth-maintenance: they expire, they need rotating, they can leak, they're per-PAT effort to provision on a fresh host. The maintenance is auth maintenance, not code maintenance. The cross-repo bump workflow itself is fine and works. The cost is the PAT footprint. **Decision** Deprecate this tap. Every consumer formula already lives at `Formula/<name>.rb` in its own upstream repo (source of truth). Users can install directly: ``` brew tap coilysiren/<repo> https://github.com/coilysiren/<repo> brew install coilysiren/<repo>/<formula> ``` The explicit-URL `brew tap` form lets brew tap repos that aren't `homebrew-*` prefixed, so no repo renames needed. Costs one extra path segment in the install command (`coilysiren/repo-recall/repo-recall` vs `coilysiren/tap/repo-recall`). That is the entire UX delta. Drops five PATs, five bump workflows in consumers, one bump workflow per consumer in this repo, and the per-repo dispatch wiring. **Migration** Per-consumer (each has its own retirement issue, linked below): - Drop the `bump-tap` job from the consumer's `.github/workflows/release.yml`. Keep the tag + GH Release jobs. - Drop the `HOMEBREW_TAP_TOKEN` secret on the consumer repo. - Update the consumer's README install instructions to the direct-tap form. In this repo, after each consumer migrates: - Delete the corresponding `Formula/<name>.rb` mirror. - Delete the corresponding `.github/workflows/bump-<name>.yml` receiver. - Delete the corresponding section in `README.md` and entry in `AGENTS.md`. When all five consumers have migrated, this repo becomes an empty shell: - Replace `README.md` with a deprecation banner pointing users at the per-repo direct-tap install commands. - Archive the repo on GitHub. - Drop the `install-repo-recall.sh` script (consumer repos can carry their own equivalent if they want one). **Sequencing** session-lattice migrates first - the bump workflow landed today (#16), no real release has tagged yet, no users depend on the tap path. Smallest blast radius, cleanest validation that the direct-tap install actually works end to end. Then repo-recall, then the Go-binary consumers (coily, agent-guard, personal-dashboard) which are even simpler (no Python resource blocks). **Consumer retirement issues** - coilysiren/session-lattice#17 - coilysiren/repo-recall#201 - coilysiren/coily#251 - coilysiren/agent-guard#20 - coilysiren/personal-dashboard#74
coilysiren 2026-05-30 05:44:21 +00:00
  • closed this issue
  • added the
    icebox
    label
Commenting is not possible because the repository is archived.
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilysiren/homebrew-tap#6
No description provided.