Skip to content

fix(tap): treat every spelling of a tap as the one tap brew treats it as - #885

Merged
indaco merged 3 commits into
mainfrom
fix/tap-slug-canonicalisation
Aug 21, 2026
Merged

fix(tap): treat every spelling of a tap as the one tap brew treats it as#885
indaco merged 3 commits into
mainfrom
fix/tap-slug-canonicalisation

Conversation

@indaco

@indaco indaco commented Aug 21, 2026

Copy link
Copy Markdown
Owner

Description

mt install user/homebrew-tap/formula failed on a tap that brew install handles fine, and two spellings of one tap produced two registry rows with independent pins - so mt untap missed across spellings, and mt list --tap and mt outdated --tap disagreed on the same data.

Tap slugs now fold to the same identity brew uses, wherever one enters, and a migration reunites rows already stored as typed. Explicit --repo/--url registrations are left alone.

Related Issue

  • None

Notes for Reviewers

  • The migration is the risky half: taps.name is UNIQUE, so folding can genuinely collide. Within one forge it keeps the row that can fetch, else the one carrying a real pin, else the oldest. Across forges it keeps both untouched - homebrew- is a GitHub convention and says nothing about a repo of that name elsewhere, so those are two taps, not one.

@indaco
indaco merged commit 5412f9b into main Aug 21, 2026
3 checks passed
@indaco
indaco deleted the fix/tap-slug-canonicalisation branch August 21, 2026 14:18
indaco added a commit that referenced this pull request Aug 22, 2026
… as (#885)

* fix(tap): treat every spelling of a tap as the one tap brew treats it as

* fix(db): reunite tap registry rows that a prefixed or mixed-case slug had split

* fix(tap): point the 404 hint at the command that actually takes --repo

(cherry picked from commit 5412f9b)
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.

1 participant