Repository navigation
fix(release): write the cask postflight as install steps - #689
Merged
Merged
Conversation
The release workflow installs GoReleaser `~> v2`, which now resolves to
2.19. That version deprecates `homebrew_casks.hooks.post.install`, and the
workflow's `goreleaser check` fails on any deprecated property, so the
v0.10.350 release failed before building.
Move the postflight to `install_steps` with `{{ .StagedPath }}`. GoReleaser
renders it as the `postflight_steps` block the shared modernizer used to
produce, and the modernizer passes it through unchanged. The package render
check now asserts that block holds only run steps and that no legacy
postflight block is rendered. The Arch package check's pinned GoReleaser
moves to v2.19.0, which reads `install_steps`.
Twapp-Session: c2de2117-f69b-4a85-9871-7be95226e6fe
monit-reviewer
approved these changes
Oct 27, 2026
monit-reviewer
left a comment
There was a problem hiding this comment.
Automated PR Review
Reviewed commit: 40199aaf69da
Profile: claude-monit-reviewer - Posting as: monit-reviewer
Summary
| Reviewer | Findings |
|---|---|
| automation:ci-release | 0 |
| harness-engineering:repo-health | 0 |
| policies:conventions | 0 |
| structure:repo-health | 0 |
| automation:ci-deploy | 0 |
Reviewer Coverage
Complete coverage details are retained in the local coverage.json artifact.
automation:ci-release— complete (broad); scope: 3 files; examples:.github/workflows/arch-package.yml,.goreleaser.yml,scripts/verify-package-render.sh; body-inspected: 3 files; examples:.github/workflows/arch-package.yml,.goreleaser.yml,scripts/verify-package-render.sh; skipped: none; constraints: Did not inspect the shared release workflow or modernizer; relied on the PR description for how it treats an already-modern cask. Static review of the diff only; did not run goreleaser or the verify script.harness-engineering:repo-health— complete (constrained); scope: 3 files; examples:.github/workflows/arch-package.yml,.goreleaser.yml,scripts/verify-package-render.sh; body-inspected: 3 files; examples:.github/workflows/arch-package.yml,.goreleaser.yml,scripts/verify-package-render.sh; skipped: none; constraints: Reviewed the three-file diff only; did not execute goreleaser or the verify script.policies:conventions— complete (broad); scope: 3 files; examples:.github/workflows/arch-package.yml,.goreleaser.yml,scripts/verify-package-render.sh; body-inspected: 3 files; examples:.github/workflows/arch-package.yml,.goreleaser.yml,scripts/verify-package-render.sh; skipped: none; constraints: Did not run goreleaser or the verify script. Shared cli-common docs and the pinned shared workflow were not available in context; review is based on the diff and PR description only.structure:repo-health— complete (broad); scope: 2 files; examples:.github/workflows/arch-package.yml,.goreleaser.yml; body-inspected: 2 files; examples:.github/workflows/arch-package.yml,.goreleaser.yml; skipped: none; constraints: Did not execute goreleaser or scripts/verify-package-render.sh; relied on static inspection of the diff and the verify script's postflight assertions.automation:ci-deploy— complete (broad); scope: 3 files; examples:.github/workflows/arch-package.yml,.goreleaser.yml,scripts/verify-package-render.sh; body-inspected: 3 files; examples:.github/workflows/arch-package.yml,.goreleaser.yml,scripts/verify-package-render.sh; skipped: none; constraints: Did not execute goreleaser or verify-package-render.sh; relied on static diff inspection and PR-described verification. Did not read the shared release workflow's modernize.sh; the PR states it passes the modern cask through unchanged.
0 PR discussion threads considered. 0 summarized; 0 resolved.
Completed in 1m 47s | ~$0.43 (est.) | claude-sonnet-5-5 | cr 0.10.349
| Field | Value |
|---|---|
| Model | claude-sonnet-5-5 |
| Reviewers | automation:ci-release, harness-engineering:repo-health, policies:conventions, structure:repo-health, automation:ci-deploy |
| Engine | claude_cli · claude-sonnet-5-5 |
| Reviewed by | cr · monit-reviewer |
| Duration | 1m 47s wall · 3m 56s compute |
| Cost | ~$0.43 (est.) |
| Pricing basis | baseline-2026-10-02/pricing |
| Tokens | 52 in / 7.1k out |
Per-workstream usage
orchestrator-selection— claude-sonnet-5-5- In: 6
- Out: 1.3k
- Cache read: 18.9k
- Cache create: 11.4k
- Cost: ~$0.06 (est.)
- Duration: 17s
automation:ci-release— claude-sonnet-5-5- In: 8
- Out: 1.1k
- Cache read: 42.6k
- Cache create: 11.9k
- Cost: ~$0.07 (est.)
- Duration: 46s
harness-engineering:repo-health— claude-sonnet-5-5- In: 8
- Out: 977
- Cache read: 43.7k
- Cache create: 12.3k
- Cost: ~$0.07 (est.)
- Duration: 44s
policies:conventions— claude-sonnet-5-5- In: 8
- Out: 951
- Cache read: 41.2k
- Cache create: 11.1k
- Cost: ~$0.06 (est.)
- Duration: 33s
structure:repo-health— claude-sonnet-5-5- In: 6
- Out: 840
- Cache read: 26.5k
- Cache create: 10.3k
- Cost: ~$0.05 (est.)
- Duration: 33s
automation:ci-deploy— claude-sonnet-5-5- In: 10
- Out: 1.4k
- Cache read: 64.3k
- Cache create: 14.0k
- Cost: ~$0.08 (est.)
- Duration: 41s
orchestrator-rollup— claude-sonnet-5-5- In: 6
- Out: 483
- Cache read: 45.8k
- Cache create: 4.2k
- Cost: ~$0.03 (est.)
- Duration: 19s
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.
Summary
The release workflow installs GoReleaser
~> v2, which now resolves to 2.19. That version deprecateshomebrew_casks.hooks.post.install, and the workflow'sgoreleaser checkfails on any deprecated property, so the v0.10.350 release failed before building.install_steps, with{{ .StagedPath }}in place of#{staged_path}. GoReleaser renders it as thepostflight_stepsblock the shared alias job's modernizer used to produce, and the modernizer passes an already-modern cask through unchanged.scripts/verify-package-render.shnow asserts the renderedpostflight_stepsblock holds onlyrunsteps with the absolute{{staged_path}}token, and that no legacypostflightblock is rendered.install_steps.Verification
goreleaser checkwith 2.19.0 fails onmainwith the deprecation and passes on this branch.goreleaser release --snapshot --clean --skip=publish,before,sign: the rendered cask'spostflight_stepsblock matches the one published in the tap line for line, andmodernize.sh renderfrom the pinned shared workflow leaves the cask unchanged.scripts/verify-package-render.shpasses on the rendered output. It fails withlegacy postflight block presentwhen the block is renamed back topostflight do, and withpostflight_steps line is not a run stepwhen the step is written assystem_command.Type of Change
Checklist
make tidypassesmake lintpassesmake testpassesmake buildpassesModel: Claude Opus 5.5 (1M context, xhigh effort) in Claude Code.