Releases: sparkle-project/Sparkle
Release list
2.9.4 Appcast Improvements
Changes:
- Fix backgrounded apps sometimes not bringing windows from user initiated actions in active focus (#2890) (Zorg, wojciech-kulik)
This release contains an activation fix for backgrounded / dockless applications using Sparkle's standard user interface.
Please also check 2.9.3, 2.9.2, 2.9.1, and 2.9.0 for previous changes.
2.9.3 Appcast Improvements
2.9.2 Appcast Improvements
Changes:
- Show hidden window title in update window for accessibility (#2871) (Zorg)
- Polish and update Spanish translations to be gender neutral (#2874, #2875) (Emilio P Egido)
- Guard against NULL CFRelease() on failure condition in fallback path (#2867) (Zorg)
- Guard against symlinks when applying delta update files (fe7b718) (Zorg, fg0x0)
- Enforce connection to installer to be validated before receiving appcast item data (#2876, #2877) (Zorg, fg0x0)
This release contains two high-complex security fixes reported by @fg0x0. The details will be posted in the 2.9 discussion.
2.9.1 Appcast Improvements
Changes:
- Fix potential crash due to race condition within clearDownloadedUpdate (#2863) (Julian Pscheid)
- Fix generate_appcast failing if feed URL doesn't have lastPathComponent (#2862) (Julian Pscheid)
- Don't let progress status text title string line wrap (#2856) (Zorg)
- Add minimal framework support for building arm64e (#2858, #2860) (Zorg)
- Add SKIP_INSTALL=YES to for XPCServices targets (#2864) (Jeremy Huddleston Sequoia)
Please also check 2.9.0 for previous changes.
2.9.0 Appcast Improvements
Changes:
- Add basic markdown support for release notes (requires macOS 12+) including customizing its presentation (#2810, #2817) (Zorg)
- Add support for signing and verifying appcast feeds (#2822, #2828) (Zorg)
- Add sparkle:hardwareRequirements for enforcing an Apple silicon (arm64) requirement (#2797) (Zorg)
- Add sparkle:minimumUpdateVersion for specifying a minimum version an app needs to be on before upgrading (#2811) (Zorg)
- Add API annotations for Swift concurrency (#2827) (Zorg)
- Validate Obj-C class when reading objects from user defaults / Info plists (#2782) (Zorg)
- Download temporary files in-memory using NSURLSessionDataTask (#2825) (Zorg)
- Allow impatient update check interval to be configured for updates that are downloaded automatically (#2799) (Zorg)
- Probe agent & status service as soon as we launch it to reduce timeout issues (#2852) (Zorg)
- Add
allowsAutomaticUpdatesproperty to determine if automatic downloading/installing of updates option should be enabled (#2809) (Zorg) - Add Vietnamese translation (#2816, #2839) (TranPhuong319)
- Add missing nn language to Installer progress Info.plist (#2818) (Zorg)
- Improve German localization (#2847) (Marco Hillger)
- Find non-canonical Sparkle.framework locations in generate_appcast when creating delta updates to determine compatibility (#2833) (Zorg)
- Make Debug builds of Sparkle use same time interval settings as Release (#2805) (Zorg)
- Remove sparkle-cli from the binary distribution (#2826) (Zorg)
- Make generate_appcast deltas order stable and thread-safe (#2848) (Nathan Manceaux-Panot)
- Fix Xcode 26.4 beta compiler warnings (#2850) (Zorg)
This release adds appcast enhancements such as markdown support and signed feeds.
CocoaPods distribution is now deprecated. Please consider migrating away.
2.9.0-beta.2
Changes since 2.9.0 beta 1:
- Preserve XML whitespace better when signing appcast feed (#2840) (Zorg)
- Expose
--disable-signing-warningflag in signing tools (#2841) (Zorg) - Update Vietnamese translation (#2839) (TranPhuong319)
- Update API documentation for updates checked in background (#2842) (Zorg)
- Fix signature verifier class collisions in unit tests (#2843) (Zorg)
Overall changes to 2.9.0:
- Add basic markdown support for release notes (requires macOS 12+) including customizing its presentation (#2810, #2817) (Zorg)
- Add support for signing and verifying appcast feeds (#2822, #2828) (Zorg)
- Add sparkle:hardwareRequirements for enforcing an Apple silicon (arm64) requirement (#2797) (Zorg)
- Add sparkle:minimumUpdateVersion for specifying a minimum version an app needs to be on before upgrading (#2811) (Zorg)
- Add API annotations for Swift concurrency (#2827) (Zorg)
- Validate Obj-C class when reading objects from user defaults / Info plists (#2782) (Zorg)
- Download temporary files in-memory using NSURLSessionDataTask (#2825) (Zorg)
- Allow impatient update check interval to be configured for updates that are downloaded automatically (#2799) (Zorg)
- Add
allowsAutomaticUpdatesproperty to determine if automatic downloading/installing of updates option should be enabled (#2809) (Zorg) - Add Vietnamese translation (#2816, #2839) (TranPhuong319)
- Add missing nn language to Installer progress Info.plist (#2818) (Zorg)
- Find non-canonical Sparkle.framework locations in generate_appcast when creating delta updates to determine compatibility (#2833) (Zorg)
- Make Debug builds of Sparkle use same time interval settings as Release (#2805) (Zorg)
- Remove sparkle-cli from the binary distribution (#2826) (Zorg)
This release adds appcast enhancements such as markdown support and signed feeds.
CocoaPods distribution is now deprecated. Please consider migrating away.
2.9.0-beta.1
Changes:
- Add basic markdown support for release notes (requires macOS 12+) including customizing its presentation (#2810, #2817) (Zorg)
- Add support for signing and verifying appcast feeds (#2822, #2828) (Zorg)
- Add sparkle:hardwareRequirements for enforcing an Apple silicon (arm64) requirement (#2797) (Zorg)
- Add sparkle:minimumUpdateVersion for specifying a minimum version an app needs to be on before upgrading (#2811) (Zorg)
- Add API annotations for Swift concurrency (#2827) (Zorg)
- Validate Obj-C class when reading objects from user defaults / Info plists (#2782) (Zorg)
- Download temporary files in-memory using NSURLSessionDataTask (#2825) (Zorg)
- Allow impatient update check interval to be configured for updates that are downloaded automatically (#2799) (Zorg)
- Add
allowsAutomaticUpdatesproperty to determine if automatic downloading/installing of updates option should be enabled (#2809) (Zorg) - Add Vietnamese translation (#2816) (TranPhuong319)
- Add missing nn language to Installer progress Info.plist (#2818) (Zorg)
- Find non-canonical Sparkle.framework locations in generate_appcast when creating delta updates to determine compatibility (#2833) (Zorg)
- Make Debug builds of Sparkle use same time interval settings as Release (#2805) (Zorg)
- Remove sparkle-cli from the binary distribution (#2826) (Zorg)
This release adds appcast enhancements such as markdown support and signed feeds.
CocoaPods distribution is now deprecated. Please consider migrating away.
Discussion for Sparkle 2.9 (beta)
On a fun extra note, we have also reached Sparkle's 20 year anniversary.
2.8.1 UI Refresh and Tahoe Improvements
Changes:
- Enforce RunAtLoad to reduce potential timeout issue when launching updater task (#2795) (Zorg)
- Add missing executable bit permission warnings on connection failure (#2792) (Zorg)
- Add missing localizations to zh-CN & zh-TW (#2789, #2791) (Francis Feng)
- Add documentation note for delegates being weakly referenced (#2802) (Zorg)
- Include app name in startUpdater: failure in SPUStandardUpdaterController (#2780) (Zorg)
Please also check 2.8.0 for previous changes.
2.8.0 UI Refresh and Tahoe Improvements
Changes:
- UI modernization and macOS Tahoe support
- Delta updates
- Localization
- Synchronize updater settings with user defaults to fix out-of-sync UI state (#2728) (Zorg)
- Document and better enforce main thread only requirement for using Sparkle methods (#2746, #2754, #2768)) (Sebastien Marchand, Zorg)
- Make -[SPUUserDriver showUpdateInFocus] optional (#2717) (Zorg)
- Add private module map for framework (#2722) (Zorg)
- Workaround a corner case in which the bundle path of a running application contains Contents/MacOS/Executable (#2726, #2747) (Jeremy Huddleston Sequoia, Zorg)
- Disable false dependency scan analysis warnings when building Sparkle from source (#2762) (Daniel Jalkut)
- Refactor the logic for avoiding re-sending the system profile more frequently than once a week (#2720) (Daniel Jalkut)
- Remove deprecated interactive package installer type (#2767) (Zorg)
Sparkle 2.8 introduces a refreshed UI update to the software update window and includes compatibility improvements for macOS 26 Tahoe. Thanks to all of those that contributed to the design of the update window (#2737).
2.8.0-beta.3
Changes:
- UI modernization and macOS Tahoe support
- Delta updates
- Localization
- Synchronize updater settings with user defaults to fix out-of-sync UI state (#2728) (Zorg)
- Document and better enforce main thread only requirement for using Sparkle methods (#2746, #2754) (Sebastien Marchand, Zorg)
- Make -[SPUUserDriver showUpdateInFocus] optional (#2717) (Zorg)
- Add private module map for framework (#2722) (Zorg)
- Workaround a corner case in which the bundle path of a running application contains Contents/MacOS/Executable (#2726, #2747) (Jeremy Huddleston Sequoia, Zorg)
- Disable false dependency scan analysis warnings when building Sparkle from source (#2762) (Daniel Jalkut)
- Refactor the logic for avoiding re-sending the system profile more frequently than once a week (#2720) (Daniel Jalkut)
2.8.0 beta 3 specifically includes a crash fix from 2.7.3 and important security fixes from 2.7.2.
Sparkle 2.8 includes a more modernized UI for the standard update alert and Tahoe compatibility support fixes. Feel free to head over to the discussions.