Skip to content

feat(settings): get beta updates from a signed feed - #3501

Merged
datlechin merged 7 commits into
mainfrom
feat/beta-update-channel
Oct 18, 2026
Merged

datlechin merged 7 commits into
mainfrom
feat/beta-update-channel

Conversation

@datlechin

@datlechin datlechin commented Oct 18, 2026 •

Copy link
Copy Markdown
Member

Why

There is no way to get a release before everyone else, and the update feed is an unsigned file on raw.githubusercontent.com. Step 20 of the release rewrite; it merges in the freeze window with steps 20-23.

Change

  • Settings > General > Software Update gets Get beta updates, off by default. On, Sparkle also takes items on the beta channel. Off again, the installed beta stays until a newer release ships.
  • The setting is com.TablePro.updates.receivesBetaUpdates: device-local, never synced, and pinnable by a configuration profile.
  • The feed moves to https://updates.tablepro.app/appcast.xml under the new EdDSA key, with SURequireSignedFeed and SUVerifyUpdateBeforeExtraction on.
  • Removes the test-only requiredInfoPlistKeys and keysMissingDefaults, and the unused check-sparkle-update-defaults.sh probe.

Verified

  • UpdateChannelTests (new) and PreferenceKeysGuardTests pass.
  • SparkleUpdatePreferencesTests changed on purpose: it now holds the required-key list and pins the exact feed URL and both signing keys.

Not in this PR

@datlechin
datlechin marked this pull request as ready for review October 18, 2026 02:25
@datlechin
datlechin merged commit cec31cd into main Oct 18, 2026
8 checks passed
@datlechin
datlechin deleted the feat/beta-update-channel branch October 18, 2026 08:49
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