Skip to content

Verify Ledger release artifacts and add packaged-runtime CI - #81

Open
peterjthomson wants to merge 4 commits into
masterfrom
codex/release-pipeline-checks
Open

peterjthomson wants to merge 4 commits into
masterfrom
codex/release-pipeline-checks

Conversation

@peterjthomson

@peterjthomson peterjthomson commented Sep 25, 2026 •

Copy link
Copy Markdown
Owner

Ledger v1.6.0 ships a ZIP, but the existing release verifier requires a DMG and only inspects ZIP filenames. Verify the extracted ZIP app's layout, identity/version, Developer ID signature, stapled ticket and Gatekeeper acceptance. Keep DMG verification and reject missing or stale update-feed artifacts, including stale legacy checksums. Fix the optional detached-notarization helper's legacy checksum refresh.

Add macOS CI for the existing test suite and unsigned packaged-runtime check. Record the observed DMG copy denial and App Store 1.5.1 rejection so those unresolved problems have concrete evidence and follow-up criteria.

Release instructions now describe Ledger's own build and Git walkthrough. Existing build commands, npm run release, electron-builder signing/notarization and the shell notarization helper retain their prior behavior. There is no shared release orchestrator or requirement to synchronize other repositories.

Validation:

  • Five focused Python checks pass; reproduced the original ZIP-only rejection and stale legacy checksum.
  • The published Ledger 1.6.0 ZIP and update feed pass the new verifier.
  • TypeScript check, production compilation and all 73 application tests pass in an isolated checkout of this PR.
  • Clean npm ci, unsigned arm64 packaging with the restored configuration, and the packaged-runtime/SQLite smoke test pass.

The DMG permission denial and App Store rejection remain unresolved. No release artifacts are published by this PR. Concurrent local application edits are excluded.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 08a4e0d. Configure here.

raise ValueError('DMG must contain exactly one root app')
# Verify the installed copy as well as the disk image itself.
app = work / 'installed' / apps[0].name
run('ditto', str(apps[0]), str(app))

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

DMG verification skips directory setup

High Severity

DMG verification always fails before any Gatekeeper or bundle checks. hdiutil attach -mountpoint needs an existing empty directory, and the later ditto into installed needs that parent too; neither path is created. ZIP-only runs still pass, so a broken DMG can miss the release gate that this change is meant to enforce.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 08a4e0d. Configure here.

@peterjthomson peterjthomson changed the title Make macOS releases resumable and verify final packages Verify Ledger release artifacts and add packaged-runtime CI Sep 25, 2026
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