Skip to content

fix(release): drop deprecated Homebrew cask stanzas and bump GoReleaser - #95

Merged
aiomayo merged 1 commit into
mainfrom
fix/homebrew-cask-deprecations
Sep 22, 2026
Merged

aiomayo merged 1 commit into
mainfrom
fix/homebrew-cask-deprecations

Conversation

@aiomayo

@aiomayo aiomayo commented Sep 22, 2026

Copy link
Copy Markdown
Member

Why

Every brew update / brew upgrade that touches bab-sh/homebrew-tap currently prints deprecation warnings. Homebrew 7.0 deprecated two cask DSL constructs, and both are on the deprecate → disable → remove path, so these become hard errors in a later Homebrew release.

The cask files in the tap are marked DO NOT EDIT — they are regenerated by GoReleaser on every release, so the fix belongs here.

What changed

  • Remove url.verified from both homebrew_casks entries. GoReleaser deprecated this key in v2.18.1 and no longer writes it to generated casks.
  • binary: → binaries: — the singular form was deprecated in v2.12.6 in favour of a list.
  • Drop the brews: section. This is a prerequisite, not a cleanup: brews was removed in GoReleaser v2.16, so the release would fail outright on the bumped version. homebrew_casks already covers both macOS and Linux, and per goreleaser#5563 prebuilt binaries belong in a cask — the formula/cask split is build-from-source vs. precompiled, not CLI vs. GUI.
  • Bump pinned GoReleaser v2.14.3 → v2.18.2.

Follow-up (not in this PR)

Formula/bab.rb in the tap will stop being updated. It currently shadows the cask — brew info bab today resolves to the formula — so it needs deleting in a separate tap PR after this lands and a release publishes an updated cask. tap_migrations.json cannot automate this: a same-name formula→cask pair is skipped by the guard in formulary.rb (if tapped_name != new_tapped_name) and in cask/migrator.rb (next false if old_token == new_cask.token). Existing formula users will need:

brew uninstall --formula bab && brew install --cask bab-sh/tap/bab

The postflight deprecation is deliberately left alone — its replacement hooks.post.install_steps is milestoned for GoReleaser v2.19.0, which is not released yet (nightlies only). Tracking: goreleaser#6870, PR #6873.

Verification

goreleaser check passes with no deprecation warnings. A snapshot build (goreleaser release --snapshot --clean --skip=publish,sign,announce) confirms the generated cask:

  • has no verified: in any url stanza
  • keeps download URLs structurally unchanged
  • retains binary "bab" and all three shell completions after the rename
  • emits no Formula/ output
  • still contains postflight (expected until v2.19)

🤖 Generated with Claude Code

Homebrew 7.0 deprecated the `verified:` url parameter, so every `brew`
command touching bab-sh/homebrew-tap printed a warning. GoReleaser
deprecated the corresponding config key in v2.18.1 and no longer emits it.

- Remove `url.verified` from both homebrew_casks entries.
- Rename `binary:` to the `binaries:` list form, deprecated since v2.12.6.
- Drop the `brews:` section. It was removed in GoReleaser v2.16, so the
  release would fail on any version past that. `homebrew_casks` already
  covers macOS and Linux, and prebuilt binaries belong in a cask rather
  than a formula.
- Bump the pinned GoReleaser from v2.14.3 to v2.18.2.

The `postflight` deprecation is intentionally left alone: the replacement
`hooks.post.install_steps` is milestoned for GoReleaser v2.19.0, which is
not released yet.

Verified with `goreleaser check` and a snapshot build: the generated cask
has no `verified:`, keeps unchanged download URLs and all three shell
completions, and no longer emits a Formula.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@aiomayo
aiomayo merged commit 16f6405 into main Sep 22, 2026
12 checks passed
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