Skip to content

fix(core/ruby_subprocess): split TapNotFound into actionable failure modes#293

Merged
indaco merged 1 commit intomainfrom
fix/ruby-subprocess-distinguish-source-failures
May 7, 2026
Merged

fix(core/ruby_subprocess): split TapNotFound into actionable failure modes#293
indaco merged 1 commit intomainfrom
fix/ruby-subprocess-distinguish-source-failures

Conversation

@indaco
Copy link
Copy Markdown
Owner

@indaco indaco commented May 7, 2026

Description

Pre-fix, every post_install source-resolution miss surfaced as RubyError.TapNotFound regardless of which arm actually failed, sending operators down the wrong triage path - notably a hash mismatch on the GitHub fallback was reported identically to "no local tap clone".

The resolver now returns the deepest-known reason: TapNotFound when no local homebrew-core tap is on disk, FetchFailed when the hash-pinned GitHub fallback failed (network, HTTP, hash mismatch, or formula absent from the pinned manifest), and PostInstallBodyNotFound when source was retrieved but no parseable def post_install body could be extracted. Each variant carries a distinct describeError string so the warning the operator sees points at the actual cause.

Related Issue

  • None

Notes for Reviewers

  • None

…modes

Operators triaging a post_install failure now see one of TapNotFound,
FetchFailed, or PostInstallBodyNotFound depending on which arm fired,
instead of every miss collapsing onto TapNotFound. A hash mismatch is
no longer filed as "no local tap".
@indaco indaco merged commit 0678220 into main May 7, 2026
3 checks passed
@indaco indaco deleted the fix/ruby-subprocess-distinguish-source-failures branch May 7, 2026 16:19
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