Skip to content

fix(brew): Fix brew audit workflow for Homebrew CLI breaking change - #58

Merged
sugatoray merged 6 commits into
masterfrom
claude/brew-github-actions-pipeline-tituqn
Aug 9, 2026
Merged

fix(brew): Fix brew audit workflow for Homebrew CLI breaking change#58
sugatoray merged 6 commits into
masterfrom
claude/brew-github-actions-pipeline-tituqn

Conversation

@sugatoray

@sugatoray sugatoray commented Aug 9, 2026

Copy link
Copy Markdown
Owner

Summary

Fixes the sync-homebrew-tap.yml workflow's brew-audit job, which was failing due to a Homebrew CLI breaking change (Homebrew/brew#18873) that disallows path-based brew audit invocations.

Changes

  • .github/workflows/sync-homebrew-tap.yml: Updated the brew-audit job to work around the Homebrew CLI change by:

    • Creating a throwaway local tap (brew tap-new local/pptxdiff-ci --no-git)
    • Copying the staged formula into the tap's Formula/ directory
    • Auditing the formula by its tap-qualified name (local/pptxdiff-ci/pptxdiff) instead of by file path
    • Left brew install --formula and brew test steps unchanged (unaffected by the breaking change)
  • docs/.scrolls/HANDOFF.md: Added detailed session notes documenting:

    • The root cause (confirmed against actual failed run logs)
    • The fix pattern (verified against Homebrew guidance and real-world precedent)
    • Status: fix is ready but awaits end-to-end verification via manual workflow_dispatch trigger
  • docs/.scrolls/WISDOM.md: Added trap entry documenting the brew audit path-based invocation breaking change to prevent re-discovery in future sessions

Implementation Details

The fix follows Homebrew's own guidance and precedent from homebrew-releaser's CI. The --no-git flag prevents unnecessary git initialization in the throwaway tap. The formula is addressed by its tap-qualified name rather than path, which is the new required pattern.

Note: This fix has not yet been end-to-end verified with a real workflow run — the maintainer should manually trigger sync-homebrew-tap to confirm all three jobs pass.

Homebrew disabled path-based `brew audit` invocations (Homebrew/brew#18873),
which broke sync-homebrew-tap.yml's brew-audit job on its first real run
("Calling `brew audit [path ...]` is disabled! Use `brew audit [name ...]`
instead."). Fix by staging the formula into a throwaway local tap and
auditing it by tap-qualified name instead of by path.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HAtitdXupmQiSJrpVQCdok
@sugatoray sugatoray self-assigned this Aug 9, 2026
@sugatoray sugatoray changed the title Fix brew audit workflow for Homebrew CLI breaking change fix(homebrew): Fix brew audit workflow for Homebrew CLI breaking change Aug 9, 2026
claude added 5 commits August 9, 2026 01:30
The path-fix in the previous commit wasn't sufficient on its own: switching
to a tap-qualified name (local/pptxdiff-ci/pptxdiff) tripped Homebrew's
separate Tap Trust check ("Refusing to load formula ... from untrusted tap
..."), confirmed by a real workflow_dispatch run against PR #58. Trust the
formula right after copying it into the local tap, before audit references
it by name.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HAtitdXupmQiSJrpVQCdok
…t --strict

Confirmed via a real workflow_dispatch run against PR #58: with the tap/trust
fixes in place, brew audit --strict finally ran for real and failed on a
genuine formula-style issue -- Homebrew's canonical component order requires
livecheck before depends_on. lib.mjs's regex-based parsing is order-agnostic
so no code changes needed; npm test still 33/33 green.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HAtitdXupmQiSJrpVQCdok
Confirmed via a real workflow_dispatch run against PR #58: brew audit
passed for the first time, then brew install --formula ./pptxdiff.rb hit
the same underlying tap requirement ("Homebrew requires formulae to be in
a tap"). Install from the same local tap used for audit instead of by path.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HAtitdXupmQiSJrpVQCdok
…s green

README's Installing/Status/Publishing sections were written before the tap
repo existed and before sync-homebrew-tap.yml ran green end-to-end -- update
them to lead with `brew tap sugatoray/pptxdiff && brew install pptxdiff`
(noting homebrew-pptxdiff#1 still needs merging for install to resolve),
and record that both one-time setup steps are done.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HAtitdXupmQiSJrpVQCdok
… from tap sync

New brew_README.md is a minimal install doc (brew tap + brew install +
basic usage) meant for the tap repo's front page, separate from this
package's own longer README.md which documents the formula/CI pipeline
itself. sync-homebrew-tap.yml now copies brew_README.md into the tap as
its README.md and no longer stages/copies CHANGELOG.md there at all.

Co-Authored-By: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HAtitdXupmQiSJrpVQCdok
@sugatoray sugatoray changed the title fix(homebrew): Fix brew audit workflow for Homebrew CLI breaking change fix(brew): Fix brew audit workflow for Homebrew CLI breaking change Aug 9, 2026
@sugatoray
sugatoray merged commit 05bf486 into master Aug 9, 2026
6 checks passed
@sugatoray
sugatoray deleted the claude/brew-github-actions-pipeline-tituqn branch August 9, 2026 02:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants