Skip to content

feat(settings): add beta update toggle in general settings#1101

Merged
tisfeng merged 2 commits intodevfrom
feat/beta-release
Feb 10, 2026
Merged

feat(settings): add beta update toggle in general settings#1101
tisfeng merged 2 commits intodevfrom
feat/beta-release

Conversation

@tisfeng
Copy link
Copy Markdown
Owner

@tisfeng tisfeng commented Feb 8, 2026

Added a new toggle option in Settings → General to allow users to opt-in for beta updates.

Changes include:

  • New includeBetaUpdates configuration key in Defaults with default value false
  • Localized strings for "Include Beta versions" toggle and description in 4 languages
  • Sparkle updater integration to check for beta channels when enabled
  • UI toggle in General settings with automatic update check when toggled on

When enabled, users will receive early access to new features but may encounter instability.

See in #1090 (comment)

image

Added a new toggle option in Settings → General to allow users to opt-in for beta updates.

Changes include:
- New `includeBetaUpdates` configuration key in Defaults with default value false
- Localized strings for "Include Beta versions" toggle and description in 4 languages
- Sparkle updater integration to check for beta channels when enabled
- UI toggle in General settings with automatic update check when toggled on

When enabled, users will receive early access to new features but may encounter instability.
This is a follow-up fix to the beta update feature. The previous commit added beta update toggle but missed updating the debug feed URL to match the local testing server configuration.

Changed SUFeedURL in Info-debug.plist from GitHub raw content to localhost:8000, ensuring debug builds correctly use the local appcast.xml for testing.
@Jerry23011
Copy link
Copy Markdown
Collaborator

Is this only for the UI? I wasn't able to find the URL/updater source that is beta. I could see this in Sparkle update:

func allowedChannels(for updater: SPUUpdater) -> Set<String> {
            Defaults[.includeBetaUpdates] ? Set(["beta"]) : []
        }

<true/>
<key>SUFeedURL</key>
<string>https://raw.githubusercontent.com/tisfeng/Easydict/main/appcast.xml</string>
<string>http://localhost:8000/appcast.xml</string>
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

local appcast.xml url, for debug

Comment on lines -33 to -39
func feedURLString(for _: SPUUpdater) -> String? {
var feedURLString =
"https://raw.githubusercontent.com/tisfeng/Easydict/main/appcast.xml"
#if DEBUG
feedURLString = "http://localhost:8000/appcast.xml"
#endif
return feedURLString
Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

This code has no actual changes; it only performed a refactor https://github.com/tisfeng/Easydict/pull/1101/changes#r2780336065, replacing the debug code feedURLString here with the SUFeedURL from Info-debug.plist.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Run command python3 -m http.server in Easydict root directory can host a local url http://localhost:8000/appcast.xml for debug

@tisfeng
Copy link
Copy Markdown
Owner Author

tisfeng commented Feb 9, 2026

Is this only for the UI? I wasn't able to find the URL/updater source that is beta. I could see this in Sparkle update:这仅适用于用户界面吗?我找不到测试版的 URL/更新程序源。我在 Sparkle 更新中看到了这个:

func allowedChannels(for updater: SPUUpdater) -> Set<String> {
            Defaults[.includeBetaUpdates] ? Set(["beta"]) : []
        }

This PR only implements the update functionality for Sparkle's beta channel. Currently, I have not released a new beta update version; this will only take effect when the next update is released.

For details, please refer to the official Sparkle documentation.

image

@tisfeng tisfeng merged commit 1c23f8e into dev Feb 10, 2026
4 checks passed
@tisfeng tisfeng deleted the feat/beta-release branch February 10, 2026 11:16
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.

2 participants