finding: coily upgrade silent no-op on hosts stranded on the deprecated umbrella tap #153
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Observation
(incident, 2026-05-28) A Mac host had coily v1.9.5 installed from the deprecated umbrella tap
coilysiren/tap(GitHubcoilysiren/homebrew-tap). The release pipeline now publishes to the per-repo Forgejo tapcoilysiren/coily, currently v2.49.1.coily upgradereportedcoilysiren/tap/coily 1.9.5 already installedand exited 0, leaving the operator on 1.9.5 with no signal that a newer formula existed elsewhere. It was discovered only because a v2 verb (coily ops forgejo issue) was missing and a human flagged "your coily is very old."Failure mechanism
v2's
coily upgraderesolves the qualified formula name frombrew tapand preferscoilysiren/coily/coilyovercoilysiren/tap/coilyonly when both are installed. On a host that has only the umbrella tap, it resolves tocoilysiren/tap/coilyand runsbrew upgrade coilysiren/tap/coily. That formula is frozen at 1.9.5 (releases moved to Forgejo), so brew reports "already installed" and exits 0. Nothing compares the installed origin against the canonical Forgejo per-repo tap, so the staleness is invisible.Note: the host was actually running v1.9.5, whose
coily upgradehardcoded the umbrella tap outright. v2 improved this to a tap-preference resolution, but the only-umbrella-tap case still silently no-ops.Why it is a finding (opaque failure)
Per coily-meta 6.2.7, this is a low-priority opaque failure where the opaqueness is itself the bug.
coily upgradesucceeds (exit 0) while doing nothing useful and emits no hint that the canonical tap is un-added. It rhymes with the 4.4 anti-signal ("the error names the fix but does not apply it"), except here there is no error at all.Fix shape (candidates)
coily upgradedetects when the resolved formula is the umbrella tap AND the per-repo Forgejo tapcoilysiren/coilyis not installed, then either (a) prints the exactbrew tap coilysiren/coily <forgejo-url>migration command plus the available version diff, or (b) performs the one-timebrew tapitself before upgrading.coily doctorcheck that flags "installed from deprecated tap, canonical tap not present."Recovery that worked this session
brew tap coilysiren/coily https://forgejo.coilysiren.me/coilysiren/coily --allow-untapped, thenbrew upgrade coilysiren/coily/coily --allow-untapped(both viacoily pkg brew), thencoily setup. Took the host 1.9.5 -> 2.49.1. The old umbrella tap was left tapped since it may provide other formulae.