Skip to content

release: migrate deprecated goreleaser brews key and pin GoReleaser version #113

Description

@arimxyer

Problem

Two coupled release-pipeline footguns surfaced while cutting v0.18.0:

  1. .goreleaser.yml uses the deprecated brews: key. goreleaser check (v2.16.0) reports:

    DEPRECATED: brews should not be used anymore, check https://goreleaser.com/deprecations#brews
    .goreleaser.yml: configuration is valid, but uses deprecated properties
    

    It still publishes today because release/build only warn on deprecations (only check exits non-zero) — v0.18.0's Homebrew formula published fine. But when GoReleaser eventually removes brews, the publish step breaks.

  2. Both .github/workflows/release.yml and ci.yml (Build job) pin GoReleaser version: latest. Combined with (1), a future GoReleaser release that drops brews would break the release with no advance warninglatest silently rolls forward at tag time.

Why it matters

The brew publish failure would happen after the v* tag is already created (the Release workflow isn't a required check), so a bad GoReleaser bump would leave a tag with a partially-failed release.

Options

  • Migrate brews:homebrew_casks: per https://goreleaser.com/deprecations#brews (note: formula → cask is a behavior change for a binary CLI; validate the install UX). Then goreleaser check is clean again.
  • And/or pin a known-good GoReleaser version (version: 'v2.x.y') in both workflows instead of latest, so upgrades are deliberate and tested via the snapshot Build job before they can affect a real release.

Verification

goreleaser check should exit 0, and a goreleaser release --snapshot --clean dry-run should produce the cask/formula without deprecation errors.

Context: surfaced during the v0.18.0 / reyamira org-transfer release.

Metadata

Metadata

Assignees

Labels

help wantedExtra attention is needed

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions