Skip to content

fix(release): a slow notarization of the dmg no longer holds a release - #85

Merged
sean-brydon merged 1 commit into
mainfrom
dmg-notary-wait
Oct 13, 2026
Merged

sean-brydon merged 1 commit into
mainfrom
dmg-notary-wait

Conversation

@sean-brydon

Copy link
Copy Markdown
Collaborator

v0.3.17's Mac build failed three times on Apple, which was slow but never refused anything. Every submission was eventually Accepted (notarytool history). On attempt 3:

  • the app: Apple accepted it in about 7 minutes
  • the dmg: sent separately after the app, it went unanswered for the full hour mac-release.sh waits (Timeout of 3600 second(s) was reached)

Each failure discarded the runner's build.

Change (scripts/mac-release.sh)

The dmg's notarization waits DMG_NOTARY_WAIT (default 15m). What happens next depends on Apple's answer:

Apple's answer What happens
Accepted Staple, gatekeeper install and stapler validate on the dmg, as before
Still processing at the timeout Ship the dmg unstapled, with a ::warning:: and the submission id. Skip the dmg's own stapler and Gatekeeper checks. The app inside has already been notarized, stapled and checked (check_app on the app, in the mounted dmg and in the updater archive), and the dmg's ticket reaches Macs online once Apple finishes.
Refused, or a notarytool error Fail, as before

The updater archive, which installed apps update from, is unaffected.

Tested: shellcheck, and the result handling run against Apple's real timeout reply plus accepted, invalid and error replies.

To release v0.3.17 with this

v0.3.17 is still a draft that nobody is offered. The only other commit on main since its tag is #84, which is CI-only. After merging, retag it (from .claude/skills/release):

gh release delete v0.3.17 --repo cosscom/shipyard --yes
git push origin :refs/tags/v0.3.17
git fetch origin && git tag -f -a v0.3.17 -m "Shipyard v0.3.17" origin/main && git push origin v0.3.17

🤖 Generated with Claude Code

v0.3.17's Mac build failed three times on Apple: the app was accepted in
minutes each time, but the dmg (notarized separately, after the app) was
not answered within the hour mac-release.sh waited, and the build on the
runner was lost each time.

The dmg is now waited for DMG_NOTARY_WAIT (15m). If Apple is still at it,
the dmg ships unstapled with a warning and its submission id, and its own
stapler and Gatekeeper checks are skipped: the app inside, which macOS
checks when it opens, is notarized and stapled and has passed them, and the
dmg's ticket reaches Macs online once Apple finishes. A dmg Apple refuses,
or a notarytool error, still fails the release. The updater archive, which
installed apps update from, is unaffected.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
berth Ready Ready Preview Oct 13, 2026 9:09pm UTC
berth-docs Ready Ready Preview Oct 13, 2026 9:09pm UTC

Request Review

@sean-brydon
sean-brydon merged commit 400f562 into main Oct 13, 2026
8 checks passed
@linear-code

linear-code Bot commented Oct 13, 2026

Copy link
Copy Markdown

ENG-6046

This branch was successfully deployed

2 active deployments
Preview – berth-docs — a30468f2 Deployed Oct 13, 2026 by vercel[bot]
Preview – berth — a30468f2 Deployed Oct 13, 2026 by vercel[bot]
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