ci: fix systematic CI error by pinning goreleaser to v2.15.4 #514
Open
jucor wants to merge 1 commit into
Open
Conversation
goreleaser v2.16.0 (2026-05-24) turned the deprecated `brews:` key in .goreleaser.yml into a hard error. With `version: latest`, every push since fails CI's `goreleaser check` step regardless of the code change. v2.15.4 (2026-04-21) is the latest release that still accepts `brews:` with only a warning and also understands the current `archives.format_overrides.formats` syntax. Pinning to it restores green CI without touching .goreleaser.yml. ## Migration path (for whoever unpins) The goreleaser deprecation page recommends migrating `brews:` → `homebrew_casks:`. For simple cases this is a key rename, plus a `hooks.post.install` block to strip the macOS quarantine xattr (because the binaries aren't signed/notarized). End-user impact: - macOS: transparent. The binary still lands at `/opt/homebrew/bin/git-spr` (via cask `binary` stanza) — same PATH, same usage. The install command may need `--cask` explicitly in the readme. - Linux: regression. Casks are macOS-only; Linux brew users currently installing via `brew install ejoffe/tap/spr` would have to switch to another channel (binary release, apt, Nix, source). - Tap repo: `Formula/spr.rb` becomes `Casks/spr.rb`. The `ejoffe/homebrew-tap` repo would need a transition plan. Alternative: drop `brews:` entirely and remove the brew install path from the readme. Simpler but breaks the channel outright. Either way it's a deliberate distribution decision, not a mechanical CI fix, which is why this PR pins rather than migrates. Unpin once the `brews:` block is migrated or removed.
This was referenced Jun 10, 2026
check green
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
goreleaser v2.16.0 (2026-05-24) turned the deprecated
brews:key in.goreleaser.ymlinto a hard error. Withversion: latest, every push since fails CI'sgoreleaser checkstep regardless of the code change.v2.15.4 (2026-04-21) is the latest release that still accepts
brews:with only a warning and also understands the currentarchives.format_overrides.formatssyntax. Pinning to it restores green CI without touching.goreleaser.yml.Migration path (for whoever unpins)
The goreleaser deprecation page recommends migrating
brews:→homebrew_casks:. For simple cases this is a key rename, plus ahooks.post.installblock to strip the macOS quarantine xattr (because the binaries aren't signed/notarized).End-user impact:
/opt/homebrew/bin/git-spr(via the caskbinarystanza) — same PATH, same usage. The install command may need--caskexplicitly in the readme.brew install ejoffe/tap/sprwould have to switch to another channel (binary release, apt, Nix, source).Formula/spr.rbbecomesCasks/spr.rb. Theejoffe/homebrew-taprepo would need a transition plan.Alternative: drop
brews:entirely and remove the brew install path from the readme. Simpler but breaks the channel outright.Either way it's a deliberate distribution decision, not a mechanical CI fix, which is why this PR pins rather than migrates.
Unpin once the
brews:block is migrated or removed.Full transparency: I made heavy use of Claude Code (Opus 4.7, high effort) for this PR, as I do for my own work these days.