Skip to content

chore(release): clear the deprecated goreleaser properties#159

Merged
felixgeelhaar merged 1 commit into
mainfrom
chore/goreleaser-deprecations
Jul 26, 2026
Merged

chore(release): clear the deprecated goreleaser properties#159
felixgeelhaar merged 1 commit into
mainfrom
chore/goreleaser-deprecations

Conversation

@felixgeelhaar

Copy link
Copy Markdown
Collaborator

goreleaser check reports deprecated properties that become hard errors in a future goreleaser. These are pure renames — nothing about what is built or published changes:

Deprecated Replacement
archives.builds archives.ids
archives.format: X archives.formats: [X]
snapshot.name_template snapshot.version_template

Applied structurally, not by search-and-replace

The edit is confined to the top-level archives: / snapshot: blocks by line range, so a nested builds: elsewhere in the file is untouched.

That matters: a first attempt with an unbounded regex renamed the top-level builds: section, breaking the config completely — and reported success, because it only grepped for DEPRECATED lines and an errored run contains none. A check that cannot fail is worse than no check.

Verified per repo before committing:

  • YAML parses
  • the top-level key set is unchanged (this is what caught the bug above)
  • goreleaser check runs without a config error

Deliberately not included: brews

brewshomebrew_casks is also deprecated, and is not a rename. It publishes Casks/<name>.rb while Formula/<name>.rb remains in the tap — and a tap holding both under one name makes brew install <name> ambiguous, with brew preferring the formula. Users would silently keep receiving the older artifact.

That exact bug was removed from this tap today for preflight (formula 4.11.1 shadowing cask 4.12.0), nomi and mnemos. Ten repos still use brews, and every one has a Formula and no Cask, so a bulk migration would recreate it ten times over.

It needs per-repo sequencing — migrate, release, delete the stale formula in that order — and is tracked separately.

`goreleaser check` reported deprecations that will become hard errors in a
future release. These are pure renames with no effect on what is built or
published:

  archives.builds          -> archives.ids
  archives.format: X       -> archives.formats: [X]
  snapshot.name_template   -> snapshot.version_template

Applied structurally, not by blind search-and-replace: the edit is confined
to the top-level `archives:` / `snapshot:` blocks by line range, so a nested
`builds:` elsewhere in the file is untouched. A first attempt with an
unbounded regex renamed the top-level `builds:` section and broke the config
outright -- and reported success, because it only grepped for DEPRECATED
lines and an errored run contains none.

Verified per repo: YAML parses, the top-level key set is unchanged, and
`goreleaser check` runs without a config error.

NOT changed here: the `brews` deprecation. Migrating brews -> homebrew_casks
publishes Casks/<name>.rb while Formula/<name>.rb remains in the tap, and a
tap holding both under one name makes `brew install <name>` ambiguous --
brew prefers the formula, so users silently keep the older artifact. That
exact bug was removed from this tap today for preflight, nomi and mnemos.
It needs per-repo sequencing (migrate, release, delete the stale formula),
not a bulk rename.

Claude-Session: https://claude.ai/code/session_01LMVPJFeTCEtUk2CSNBBBdK
@felixgeelhaar
felixgeelhaar merged commit 401a40c into main Jul 26, 2026
6 checks passed
@felixgeelhaar
felixgeelhaar deleted the chore/goreleaser-deprecations branch July 26, 2026 13:07
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