Skip to content

feat: distribute a notarized .dmg instead of a .zip#16

Merged
GregTheGreek merged 2 commits into
mainfrom
feat/release-dmg
Jul 10, 2026
Merged

feat: distribute a notarized .dmg instead of a .zip#16
GregTheGreek merged 2 commits into
mainfrom
feat/release-dmg

Conversation

@GregTheGreek

@GregTheGreek GregTheGreek commented Jul 10, 2026

Copy link
Copy Markdown
Owner

Summary

Release a compressed, notarized .dmg (app + drag-to-Applications shortcut) instead of a zip, and stop stale artifacts from leaking into a release.

  • make release now wipes build/Trapps-*.{zip,dmg} first, so a leftover from an earlier version can't be picked up (root cause of two builds landing on one release).
  • make notarize submits the dmg in a single round-trip and staples it. Submitting the dmg notarizes the enclosed app too; the app stays notarized (online-verified), we just skip the app staple - offline first launch is moot for a brew-installed, network-downloaded tool.
  • Cask template, make cask, and docs updated to the dmg. Docs' gh release upload now pins the exact versioned file instead of a glob.

Test plan

  • make -n release / notarize / cask produce the expected commands
  • dmg packaging validated end-to-end (hdiutil verify OK, mounts, contains app + Applications symlink)
  • full make release && make notarize on a real tag, then brew install --cask from the tap

@GregTheGreek
GregTheGreek marked this pull request as ready for review July 10, 2026 16:59
Package releases as a compressed dmg (app + drag-to-Applications shortcut)
rather than a zip. Notarize twice so the downloaded dmg and the app inside
are both stapled: staple the app, rebuild the dmg around it, then notarize
and staple the dmg.

Also wipe stale build/Trapps-*.{zip,dmg} at the start of `make release` so a
leftover artifact from an earlier version cannot be picked up. Pin the docs'
`gh release upload` to the exact versioned file instead of a glob, which is
what previously attached two builds to one release.

Co-Authored-By: Claude
Submitting the dmg already notarizes the enclosed app, so drop the separate
app submission/staple. The app stays notarized (online-verified); skipping the
app staple only forgoes offline first-launch, which is moot for a brew-installed
tool that was downloaded over the network.

Co-Authored-By: Claude
@GregTheGreek
GregTheGreek merged commit 1bdfc11 into main Jul 10, 2026
1 check passed
@GregTheGreek
GregTheGreek deleted the feat/release-dmg branch July 10, 2026 17:06
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