localstack / localstack/lstk

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

Open Beginner friendly
#501 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
36
Forks
8
Avg merge
1d 5h
Merged PRs (30d)
22

Description

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`](https://github.com/localstack/lstk/blob/main/.goreleaser.yaml) configures the tap release via raw-Ruby hook:

```yaml
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](https://github.com/Homebrew/brew/pull/23366)). GoReleaser support for the structured DSL is already up as [goreleaser/goreleaser#6873](https://github.com/goreleaser/goreleaser/pull/6873) (all checks green at the time of writing). Once that ships, the config can become:

```yaml
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](https://github.com/localstack/homebrew-tap/pull/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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with .goreleaser.yaml and the hooks.post.install configuration, then check whether the GoReleaser structured install_steps support has shipped. Update the hook when available and inspect the generated Casks/lstk.rb output. Done means the generated cask no longer emits the deprecated postflight warning and passes brew style.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
cli, release
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.