Skip to content

Homebrew cask: generated tap warning — switch hooks.post.install to install_steps once GoReleaser ships it #501

Description

@Dedsecproject

Every brew operation that reads localstack/tap/lstk currently prints a deprecation warning to end users:

Warning: Calling `postflight` is deprecated! Use `postflight_steps` instead.
Please report this issue to the localstack/homebrew-tap tap ...
  Casks/lstk.rb:39

Root cause

.goreleaser.yaml configures the tap release via raw-Ruby hook:

hooks:
  post:
    install: |
      if OS.mac?
        system_command "/usr/bin/xattr", args: ["-dr", "com.apple.quarantine", "#{staged_path}/lstk"]
      end

GoReleaser passes this body through verbatim into the now-deprecated cask postflight stanza.

Suggested fix

Homebrew deprecated the raw-Ruby preflight/postflight blocks in favor of structured *_steps stanzas (Homebrew/brew#23366). GoReleaser support for the structured DSL is already up as goreleaser/goreleaser#6873 (all checks green at the time of writing). Once that ships, the config can become:

hooks:
  post:
    install_steps: |
      on_macos do
        run "/usr/bin/xattr", args: ["-dr", "com.apple.quarantine", "{{ .StagedPath }}/lstk"]
      end

(Note: raw #{staged_path} interpolation is not available in the new DSL; GoReleaser #6873 adds {{ .StagedPath }} for exactly this.)

Interim state

The generated cask has been patched manually in the interim: localstack/homebrew-tap#8 \u2014 verified via brew style and a real install on macOS arm64. Note that the next lstk release regenerates the cask and would reintroduce the legacy stanza until this config lands.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions