Skip to content

Releases: sparkle-project/Sparkle

2.3.0 Generate Appcast Improvements

01 Oct 17:00
Compare
Choose a tag to compare
  • Bump minimum deployment target to macOS 10.13 (#2196) (Zorg)
  • Remove and preserve necessary updates in generate_appcast (#2218) (Zorg)
  • Move old update files no longer needed to old_updates/ in archive directory in generate_appcast (#2228) (Zorg)
  • Expose maximum-versions option (per branch) in generate_appcast to preserve in the feed (#2259) (Zorg)
  • Add -p option to sign_update to only print the signed signature (#2268) (Zorg)
  • Hide automatic install check box when allowsAutomaticUpdates is disabled (#2202) (Jie)
  • Allow developer to always force allowing automatic updates (#2266) (Zorg)
  • Fix update window going haywire during resize when release notes are hidden by disabling resizing (#2200) (Zorg)
  • Allow user to re-try installing/relaunching application when quit is delayed/cancelled (#2234) (Zorg)
  • Add delta update attributes for validating an app hasn't been stripped from removed localizations or architectures (#2219) (Zorg)
  • Fix delta patches not applying edge case if files from source that need to be diffed are not writeable (#2211) (Zorg)
  • Add delegate callback when user makes choice to install, dismiss, or skip an update (#2250) (Zorg)
  • Reject serving updates with DSA only and no EdDSA (#2167) (Zorg)
  • Find potential matching running apps that are translocated in the updater agent (#2233) (Zorg)
  • Expose -[SPUStandardUserDriver activeUpdateAlert] as private API (#2255) (Zorg)
  • Add zh_CN l10n for "Version History" (#2247) (kakaiikaka)
  • Update zh_TW localization (#2271) (Chiahong)
  • Remove ed25519 git submodule in favor of including the dependency directly (#2244) (Zorg)
  • Clean up left-over code (#2243) (Eitot)
  • Update Package.resolved (#2245) (Zorg)
  • Remove model translation table for system profiling (#2188) (Zorg)
  • Improve documentation usage for SPUUpdater properties (#2256) (Zorg)

This release improves generate_appcast by automatically removing updates that are no longer needed in the generated appcast, and moving old update files to old_updates/ in the archives directory. New delta update attributes are also added to let Sparkle know when to skip downloading delta updates if the application has been stripped.

macOS 10.13 or later is now required (due to Xcode 14 dropping support for deploying to older OS versions).

If you're not generating appcasts automatically, remember to add <sparkle:minimumSystemVersion>10.13</sparkle:minimumSystemVersion> element to <item>s in your appcast.

Discussion for Sparkle 2.3.

2.3.0-beta.2

20 Sep 05:22
Compare
Choose a tag to compare
2.3.0-beta.2 Pre-release
Pre-release

Changes in beta 2:

  • Allow developer to always force allowing automatic updates (#2266) (Zorg)
  • Add -p option to sign_update to only print the signed signature (#2268) (Zorg)

Overall changes:

  • Bump minimum deployment target to macOS 10.13 (#2196) (Zorg)
  • Remove and preserve necessary updates in generate_appcast (#2218) (Zorg)
  • Move old update files no longer needed to old_updates/ in archive directory in generate_appcast (#2228) (Zorg)
  • Expose maximum-versions option (per branch) in generate_appcast to preserve in the feed (#2259) (Zorg)
  • Add -p option to sign_update to only print the signed signature (#2268) (Zorg)
  • Hide automatic install check box when allowsAutomaticUpdates is disabled (#2202) (Jie)
  • Allow developer to always force allowing automatic updates (#2266) (Zorg)
  • Fix update window going haywire during resize when release notes are hidden by disabling resizing (#2200) (Zorg)
  • Allow user to re-try installing/relaunching application when quit is delayed/cancelled (#2234) (Zorg)
  • Add delta update attributes for validating an app hasn't been stripped from removed localizations or architectures (#2219) (Zorg)
  • Fix delta patches not applying edge case if files from source that need to be diffed are not writeable (#2211) (Zorg)
  • Add delegate callback when user makes choice to install, dismiss, or skip an update (#2250) (Zorg)
  • Reject serving updates with DSA only and no EdDSA (#2167) (Zorg)
  • Find potential matching running apps that are translocated in the updater agent (#2233) (Zorg)
  • Expose -[SPUStandardUserDriver activeUpdateAlert] as private API (#2255) (Zorg)
  • Add zh_CN l10n for "Version History" (#2247) (kakaiikaka)
  • Remove ed25519 git submodule in favor of including the dependency directly (#2244) (Zorg)
  • Clean up left-over code (#2243) (Eitot)
  • Update Package.resolved (#2245) (Zorg)
  • Remove model translation table for system profiling (#2188) (Zorg)
  • Improve documentation usage for SPUUpdater properties (#2256) (Zorg)

This release improves generate_appcast by automatically removing updates that are no longer needed in the generated appcast, and moving old update files to old_updates/ in the archives directory. New delta update attributes are also added to let Sparkle know when to skip downloading delta updates if the application has been stripped.

macOS 10.13 or later is now required (due to Xcode 14 dropping support for deploying to older OS versions).

If you're not generating appcasts automatically, remember to add <sparkle:minimumSystemVersion>10.13</sparkle:minimumSystemVersion> element to <item>s in your appcast.

Discussion for Sparkle 2.3.

2.3.0-beta.1

07 Sep 06:10
Compare
Choose a tag to compare
2.3.0-beta.1 Pre-release
Pre-release
  • Bump minimum deployment target to macOS 10.13 (#2196) (Zorg)
  • Remove and preserve necessary updates in generate_appcast (#2218) (Zorg)
  • Move old update files no longer needed to old_updates/ in archive directory in generate_appcast (#2228) (Zorg)
  • Expose maximum-versions option (per branch) in generate_appcast to preserve in the feed (#2259) (Zorg)
  • Hide automatic install check box when allowsAutomaticUpdates is disabled (#2202) (Jie)
  • Fix update window going haywire during resize when release notes are hidden by disabling resizing (#2200) (Zorg)
  • Allow user to re-try installing/relaunching application when quit is delayed/cancelled (#2234) (Zorg)
  • Add delta update attributes for validating an app hasn't been stripped from removed localizations or architectures (#2219) (Zorg)
  • Fix delta patches not applying edge case if files from source that need to be diffed are not writeable (#2211) (Zorg)
  • Add delegate callback when user makes choice to install, dismiss, or skip an update (#2250) (Zorg)
  • Reject serving updates with DSA only and no EdDSA (#2167) (Zorg)
  • Find potential matching running apps that are translocated in the updater agent for external updaters (#2233) (Zorg)
  • Expose -[SPUStandardUserDriver activeUpdateAlert] as private API (#2255) (Zorg)
  • Add zh_CN l10n for "Version History" (#2247) (kakaiikaka)
  • Remove ed25519 git submodule in favor of including the dependency directly (#2244) (Zorg)
  • Clean up left-over code (#2243) (Eitot)
  • Update Package.resolved (#2245) (Zorg)
  • Remove model translation table for system profiling (#2188) (Zorg)
  • Improve documentation usage for SPUUpdater properties (#2256) (Zorg)

This release improves generate_appcast by automatically removing updates that are no longer needed in the generated appcast, and moving old update files to old_updates/ in the archives directory. New delta update attributes are also added to let Sparkle know when to skip downloading delta updates if the application has been stripped.

macOS 10.13 or later is now required (due to Xcode 14 dropping support for deploying to older OS versions).

If you're not generating appcasts automatically, remember to add <sparkle:minimumSystemVersion>10.13</sparkle:minimumSystemVersion> element to <item>s in your appcast.

2.2.2 Focus Improvements

31 Aug 04:47
Compare
Choose a tag to compare
  • Critical update alerts may not show up as promptly as they should when they are being automatically installed (#2230) (Zorg)
  • Remove module imports from framework headers and allow building with C++20 (#2217) (Zorg)
  • Update Portuguese localization (#2224) (Kent Sutherland)
  • Update zh_TW localization (#2246) (Chiahong)

Please also see the release notes for Sparkle 2.2.0.

2.2.1 Focus Improvements

16 Jul 17:23
Compare
Choose a tag to compare
  • Make scroll bar dark in dark theme for Release Notes by default (#2187) (Pavel Moiseenko)
  • Fix memory leaks when using generate_appcast (#2193) (Zorg)
  • Update Italian localization (#2192) (VinBoiSoft)

Please also see the release notes for Sparkle 2.2.0.

2.2.0 Focus Improvements

02 Jul 22:58
Compare
Choose a tag to compare
  • Update Focus Improvements (#924)
    • Present new scheduled updates in utmost focus only at opportune times (Zorg)
      • For regular apps opportune times are: app launch, app re-activation, and system being idle (without a power assertion being held to prevent display sleep).
      • For background (dockless) apps opportune time is just app launch. Otherwise, the update is now shown behind other applications and windows, instead of previously stealing focus from other active apps.
    • Add APIs and documentation for adding gentle update reminders to compliment Sparkle's standard user interface (Zorg) (#2122)
    • Allow status window to be minimizable for regular app installs (Zorg) (#2100)
    • Center status window and inherit key focus from the previously shown update alert window (Zorg)
    • Activate app when checking for updates if the app is not currently active (e.g, from a menu bar extra menu item) (Zorg)
    • Fix issue where bringing status window to front made other active windows exit in macOS Ventura's Stage Manager (#2153) (Zorg)
    • Fix showing update in focus not bringing the "checking for updates" window in focus (Zorg) (#2150)
  • Rename XPC Service filenames for Sandboxing to show more friendly human-readable name in authorization dialog (Zorg) (#2096)
  • Add support for running the framework and sparkle-cli as root (Zorg) (#2119)
  • Fix issue where update cycle may not complete in unusual configuration if automatic checks are disabled + automatic downloading is enabled + install requires user interaction (Zorg) (#2133)
  • Synchronize usage of XPC connections to main queue to fix potential race conditions (Zorg) (#2178)
  • Update last update check time when choosing to install an update & relaunch (Zorg) (#2136)
  • Improve error reporting in the framework and sparkle-cli when installation fails with no write permission (Zorg) (#2157)
  • Use displayVersionString instead of versionString for OS version mismatch error message (samschott) (#2138)
  • Make displayVersionString non-null and update fallback documentation (Zorg) (#2139)
  • Ignore custom icons set via resource forks when applying delta updates (Zorg) (#2114)
  • Fall back to regular update if delta update fails to download (Zorg) (#2118)
  • Skip downloading delta updates when application has been moved to a file system (like FAT) that doesn't support regular permission modes (Zorg) (#2148)
  • Bump initial installer message timeouts and declare daemon/agents processes as Interactive (Zorg) (#2162)
  • Add and improve translation strings and update pt-BR (BR Lingo) (#2094)
  • Update localisations (Eitot) (#2113)
  • Update Greek localizations (seitsme) (#2184, #2185)
  • Update Japanese localization (1024jp) (#2182)
  • Replace deprecated code with newer APIs (Eitot) (#2112)
  • Remove obsolete fallbacks for older OS versions (Eitot) (#2110)
  • Remove SPUURLRequest (Zorg) (#2124)
  • Silence ivar deprecation warnings (Zorg) (#2099)
  • Fix Xcode 14 project warnings (Zorg) (#2147, #2179)
  • Deprecate -s flag and add --ed-key-file option to generate_appcast (Zorg) (#2170)
  • Update text for external licenses (Zorg) (#2164)

This update renames the bundled XPC Services, brings improvements to notifying users of new updates without disrupting their focus, and adds gentle update reminder APIs to further customize how Sparkle's standard user interface delivers new update alerts.

The -s flag for passing a raw private EdDSA key to sign_update and generate_appcast is now deprecated. If you were using this option previously, please see the help pages of these tools for more information.

Discussions

2.2.0-beta.2

20 Jun 03:23
Compare
Choose a tag to compare
2.2.0-beta.2 Pre-release
Pre-release

New in beta 2:

  • Bump initial installer message timeouts and declare daemon/agents processes as Interactive (Zorg) (#2162)
  • Update text for external licenses (Zorg) (#2164)
  • Update API and website documentation for gentle reminders (Zorg)

Overall changes in 2.2:

  • Update Focus Improvements (#924)
    • Present new scheduled updates in utmost focus only at opportune times (Zorg)
      • For regular apps opportune times are: app launch, app re-activation, and system being idle (without a power assertion being held to prevent display sleep).
      • For background (dockless) apps opportune time is just app launch. Otherwise, the update is now shown behind other applications and windows, instead of previously stealing focus from other active apps.
    • Add APIs and documentation for adding gentle update reminders to compliment Sparkle's standard user interface (Zorg) (#2122)
    • Allow status window to be minimizable for regular app installs (Zorg) (#2100)
    • Center status window and inherit key focus from the previously shown update alert window (Zorg)
    • Activate app when checking for updates if the app is not currently active (e.g, from a menu bar extra menu item) (Zorg)
    • Fix issue where bringing status window to front made other active windows exit in macOS Ventura's Stage Manager (#2153) (Zorg)
    • Fix showing update in focus not bringing the "checking for updates" window in focus (Zorg) (#2150)
  • Rename XPC Service filenames for Sandboxing to show more friendly human-readable name in authorization dialog (Zorg) (#2096)
  • Add support for running the framework and sparkle-cli as root (Zorg) (#2119)
  • Fix issue where update cycle may not complete in unusual configuration if automatic checks are disabled + automatic downloading is enabled + install requires user interaction (Zorg) (#2133)
  • Update last update check time when choosing to install an update & relaunch (Zorg) (#2136)
  • Improve error reporting in the framework and sparkle-cli when installation fails with no write permission (Zorg) (#2157)
  • Use displayVersionString instead of versionString for OS version mismatch error message (samschott) (#2138)
  • Make displayVersionString non-null and update fallback documentation (Zorg) (#2139)
  • Ignore custom icons set via resource forks when applying delta updates (Zorg) (#2114)
  • Fall back to regular update if delta update fails to download (Zorg) (#2118)
  • Skip downloading delta updates when application has been moved to a file system (like FAT) that doesn't support regular permission modes (Zorg) (#2148)
  • Bump initial installer message timeouts and declare daemon/agents processes as Interactive (Zorg) (#2162)
  • Add and improve translation strings and update pt-BR (BR Lingo) (#2094)
  • Update localisations (Eitot) (#2113)
  • Replace deprecated code with newer APIs (Eitot) (#2112)
  • Remove obsolete fallbacks for older OS versions (Eitot) (#2110)
  • Remove SPUURLRequest (Zorg) (#2124)
  • Silence ivar deprecation warnings (Zorg) (#2099)
  • Fix Xcode 14 project warnings (Zorg) (#2147)
  • Update text for external licenses (Zorg) (#2164)

This update renames the bundled XPC Services, brings improvements to notifying users of new updates without disrupting their focus, and adds gentle update reminder APIs to further customize how Sparkle's standard user interface delivers new update alerts.

Discussions

2.2.0-beta.1

13 Jun 05:31
Compare
Choose a tag to compare
2.2.0-beta.1 Pre-release
Pre-release
  • Update Focus Improvements (#924)
    • Present new scheduled updates in utmost focus only at opportune times (Zorg)
      • For regular apps opportune times are: app launch, app re-activation, and system being idle (without a power assertion being held to prevent display sleep) instead of previously being able to show up while actively using the app.
      • For background (dockless) apps opportune time is just app launch. Otherwise, the update is now shown behind other applications and windows, instead of previously stealing focus from other active apps.
    • Add APIs and documentation for adding gentle update reminders to compliment Sparkle's standard user interface (Zorg) (#2122)
    • Allow status window to be minimizable for regular app installs (Zorg) (#2100)
    • Center status window and inherit key focus from the previously shown update alert window (Zorg)
    • Activate app when checking for updates if the app is not currently active (e.g, from a menu bar extra menu item) (Zorg)
    • Fix issue where bringing status window to front made other active windows exit in macOS Ventura's Stage Manager (#2153) (Zorg)
    • Fix showing update in focus not bringing the "checking for updates" window in focus (Zorg) (#2150)
  • Rename XPC Service filenames for Sandboxing to show more friendly human-readable name in authorization dialog (Zorg) (#2096)
  • Add support for running the framework and sparkle-cli as root (Zorg) (#2119)
  • Fix issue where update cycle may not complete in unusual configuration if automatic checks are disabled + automatic downloading is enabled + install requires user interaction (Zorg) (#2133)
  • Update last update check time when choosing to install an update & relaunch (Zorg) (#2136)
  • Improve error reporting in the framework and sparkle-cli when installation fails with no write permission (Zorg) (#2157)
  • Use displayVersionString instead of versionString for OS version mismatch error message (samschott) (#2138)
  • Make displayVersionString non-null and update fallback documentation (Zorg) (#2139)
  • Ignore custom icons set via resource forks when applying delta updates (Zorg) (#2114)
  • Fall back to regular update if delta update fails to download (Zorg) (#2118)
  • Skip downloading delta updates when application has been moved to a file system (like FAT) that doesn't support regular permission modes (Zorg) (#2148)
  • Add and improve translation strings and update pt-BR (BR Lingo) (#2094)
  • Update localisations (Eitot) (#2113)
  • Replace deprecated code with newer APIs (Eitot) (#2112)
  • Remove obsolete fallbacks for older OS versions (Eitot) (#2110)
  • Remove SPUURLRequest (Zorg) (#2124)
  • Silence ivar deprecation warnings (Zorg) (#2099)
  • Fix Xcode 14 project warnings (Zorg) (#2147)

This update renames the bundled XPC Services, brings improvements to notifying users of new updates without disrupting their focus, and adds gentle update reminder APIs to further customize how Sparkle's standard user interface delivers new update alerts.

Discussions.

2.1.0 Delta Updates Upgrade

18 Feb 19:32
Compare
Choose a tag to compare

This update introduces a new major format for delta updates, which migrates away from deprecated APIs (xar) and creates smaller patches. If you don't use generate_appcast, please check the compatibility notes for creating delta updates.

  • New Binary Delta format
    • Features a custom and more efficient container format, migrating away from the deprecated xar format (Zorg) (#2051)
    • Adds delta compression options for lzma, bzip2, zlib, lzfse, lz4, and no compression (Zorg) (#2051)
    • Changes default delta format compression from bzip2 (in version 2) to lzma (in version 3) resulting in smaller deltas (Zorg) (#2051)
    • Preserve file system (HFS+/apfs) level compression when applying delta updates (Zorg) (#2084)
    • Tracks renames and binary diffs for files that have moved around to new locations using intelligent heuristics (Zorg) (#2051, #2053)
    • Added more unit tests, UI tests, and generate_appcast/BinaryDelta tools support for the new format (Zorg) (#2052, #2054)
  • Major upgrade improvements (#2070)
    • Fix skipping a major version to not skip subsequent major versions (Zorg) (#2079)
    • Add sparkle:belowVersion element for informational updates (Zorg) (#2080)
    • Add option to allow developers to ignore/reset user skipped upgrades (Zorg) (#2081)
  • Fix progress bar and button alignment for checking updates (Zorg) (#2066)
  • Fix unsteady progress when installing updates (Zorg) (#2072)
    • This deprecates -[SPUUserDriver showInstallingUpdate] and -[SPUUserDriver showSendingTerminationSignal] in favor for -[SPUUserDriver showInstallingUpdateWithApplicationTerminated:]
  • Check http statusCode in didFinishDownloadingToURL (Eric Shapiro, Zorg) (#2049, #2073)
  • Use strcoll_l() for locale-independent comparisons for delta updates (Dan Rigdon-Bel) (#2087)
  • Fix version compare not treating '2.1.0' and '2.1' as being equal (Zorg) (#2065)
  • Add verify and account options for signing updates (Zorg) (#2074)
  • Add delta patch and Apple code signing verification in generate_appcast (Zorg) (#2076, #2077)
  • Use more modern NSSecureCoding APIs when available (Zorg) (#2058)
  • Use more modern FileManager APIs for copying files (Zorg) (#2059)
  • Fix make release failing when customizing XPC_SERVICE_BUNDLE_ID_PREFIX (Zorg) (#2060)
  • Preserve the Entitlements directory in podspec (digitalMoksha) (#2062)
  • Add hidden option to generate_appcast to set max CDATA threshold (Zorg) (#2075)

Sparkle 2.1.0-beta.2

05 Feb 07:22
Compare
Choose a tag to compare
Sparkle 2.1.0-beta.2 Pre-release
Pre-release
  • New Binary Delta format (version 3)
    • Features a custom and more efficient container format, migrating away from the deprecated xar format (Zorg) (#2051)
    • Adds delta compression options for lzma, bzip2, zlib, lzfse, lz4, and no compression (Zorg) (#2051)
    • Changes default delta format compression from bzip2 (in version 2) to lzma (in version 3) resulting in smaller deltas (Zorg) (#2051)
    • Preserve file system (HFS+/apfs) level compression when applying delta updates (Zorg) (#2084)
    • Tracks renames and binary diffs for files that have moved around to new locations using intelligent heuristics (Zorg) (#2051, #2053)
    • Added more unit tests, UI tests, and generate_appcast/BinaryDelta tools support for the new format (Zorg) (#2052, #2054)
  • Major upgrade improvements (#2070)
    • Fix skipping a major version to not skip subsequent major versions (Zorg) (#2079)
    • Add sparkle:belowVersion element for informational updates (Zorg) (#2080)
    • Add option to allow developers to ignore/reset user skipped upgrades (Zorg) (#2081)
  • Fix progress bar and button alignment for checking updates (Zorg) (#2066)
  • Fix unsteady progress when installing updates (Zorg) (#2072)
  • Check http statusCode in didFinishDownloadingToURL (Eric Shapiro, Zorg) (#2049, #2073)
  • Fix version compare not treating '2.1.0' and '2.1' as being equal (Zorg) (#2065)
  • Add verify and account options for signing updates (Zorg) (#2074)
  • Add delta patch and Apple code signing verification in generate_appcast (Zorg) (#2076, #2077)
  • Use more modern NSSecureCoding APIs when available (Zorg) (#2058)
  • Use more modern FileManager APIs for copying files (Zorg) (#2059)
  • Fix make release failing when customizing XPC_SERVICE_BUNDLE_ID_PREFIX (Zorg) (#2060)
  • Preserve the Entitlements directory in podspec (digitalMoksha) (#2062)
  • Add hidden option to generate_appcast to set max CDATA threshold (Zorg) (#2075)

Changes since beta 1:

  • Major upgrade improvements (#2070)
  • Preserve file system (HFS+/apfs) level compression when applying delta updates (Zorg) (#2084)

This update introduces a new major format (version 3) for delta updates, which migrates away from a deprecated archive API (xar) and creates smaller patches. Do note for compatibility you will still need to use the older version 2 format in production until you have older applications shipping with delta 3 support (and until delta support is finalized). However, we currently advise testing new version 3 delta patches using the BinaryDelta tool to see how the resulting patches will work out for your apps in the future, so we can address feedback sooner. You can also pass --version=2 to BinaryDelta create to compare against older version 2 patches (the new default is now --version=3). Check out BinaryDelta --help and delta updates documentation for more information.