Add Sparkle auto-updates and Sparkle-free Mac App Store target - #78
Conversation
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e7047123fb
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 35f94e0696
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
What Changed
Sparkle auto-updates for the direct-download (GitHub) build:
UpdaterController.swiftbehind#if os(macOS) && canImport(Sparkle): Check for Updates… in the app menu, an auto-check toggle in Settings → General.CODE_SIGN_ENTITLEMENTS[sdk=macosx*].SUFeedURLpoints at GitHub Pages;SUPublicEDKeyembedded (private key lives in the repo secretSPARKLE_ED_PRIVATE_KEY).appcast.xmlfrom all release DMGs (v0.8.3+) with release notes embedded fromCHANGELOG.md, then deploy it to GitHub Pages. Deltas disabled (--maximum-deltas 0).CHANGELOG.mdsection (fallback:--generate-notes), so one write shows up in both the release page and the update dialog.CHANGELOG.mdadded, built from the existing GitHub release notes (v0.3.0–v0.8.2).Mac App Store target:
ComputerSolitaireAppStoretarget + shared scheme: macOS-only, same sources, same bundle ID/product name, no Sparkle package, no Sparkle entitlements, ownInfo-AppStore.plistwithout Sparkle keys.mas-buildjob so the Sparkle-free path compiles on every PR.Versioning:
CURRENT_PROJECT_VERSIONnow mirrorsMARKETING_VERSION(0.8.3), single-sourced at the project level so both targets inherit. Enforced bytag-version.shand the release workflow — Sparkle comparesCFBundleVersion, which was previously stuck at 1.Why
Users currently have no way to learn about or install new versions of the GitHub build. Sparkle gives the direct-download channel in-app updates; the Mac App Store build (which cannot ship Sparkle) gets a dedicated target that compiles the updater away via
canImport(Sparkle), with CI keeping that path green.UI Changes
Validation
xcodebuild test, macOS).generate_appcastflags validated against the same pinned Sparkle 2.9.4 tools CI downloads (checksum-verified); changelog section extraction verified for every existing version.Remaining setup (outside this PR): repo Settings → Pages → Source: "GitHub Actions". Note the first Sparkle-capable release is v0.8.3 — 0.8.2 installs predate Sparkle, so the first real over-the-air update is 0.8.3 → 0.8.4.