andymatuschak.org: archive

You are at the archive for the August, 2008

Sparkle 1.5b5, featuring Breaking All Your Stuff™ technologies!

Alright, folks, it’s that time again. Sparkle 1.5b5’s out! Tons of bugs fixed, and tons of stuff refactored. I made much of the API private—that’ll give me more flexibility to change the architecture out from under you in the future.

Please read the release notes, because unless you’re using a .app and haven’t called anything in the Sparkle framework, I’ve probably broken things for you.

  • Important Changes!
    • Made every Sparkle class private except for SUUpdater, SUAppcast, SUAppcastItem, and the SUVersionComparisonProtocol.
    • There is now a single SUUpdater singleton for every host bundle; instead of -[SUUpdater setHostBundle], you can use +[SUUpdater updaterForBundle].
    • Redefined the (entire) delegate protocol accordingly.
    • Renamed -[SUUpdater updatePreferencesChanged] to -[SUUpdater resetUpdateCycle]. This provides better semantics for non-apps, which need to start the update cycle manually.
    • -[SUUpdater checkForUpdatesWithDriver] is private. If you were using SUProbingUpdateDriver, you can now use -[SUUpdater checkForUpdateInformation] for a similar effect.
    • All the user defaults keys are now private; instead, SUUpdater is KVC-compliant for automaticallyChecksForUpdates, updateCheckInterval, and feedURL.
  • Reduced the size of the English-only framework by 25%.
  • System profiling information is now only submitted to the server once per week; this will help normalize your statistics across users with different interval preferences.
  • The feedParametersForUpdater: delegate method now requires displayKey and displayValue keys (just human readable versions of key and value) so that it can inform the user what’s being sent.
  • Added a delegate method called pathToRelaunchForUpdater: which can be used for plugins to provide the path which should be used when relaunching the client after installing an update.
  • Added support for xml:lang to pick localized nodes in appcasts (for release notes, etc).
  • Fixed a bug which would cause the “checking for updates” window to not disappear in certain extraordinary error conditions.
  • Fixed a DSA signature checking bug for .tar.gz archives.
  • Sparkle now refuses to update on any read-only volume, not just dmgs.
  • Sparkle will clean up the host app’s name and version before sending it as the user agent string; some non-ASCII characters were causing problems.
  • Added an Italian localization courtesy Michele Longhi.
  • Added a Swedish localization courtesy Daniel Bergman.
  • Fixes to the French localization courtesy Ronald Leroux and Yann Ricqueberg.
  • Fixes to the German localization courtesy Sven-S. Porst.
  • Fixes to the Russian localization courtesy Alexander Bykov and Anton Sotkov.
  • Fixed a number of issues related to archive format detection: I reverted back to extensions from UTIs.
  • Focus behavior fixes for LSUIElement apps.
  • The status window progress bar now animates even when indeterminate.
  • Major refactorings to improve functionality for non-app bundles.

If you're looking for something specific then give the search form below a try:

RSS Wordpress Grady (theme) Return to the Top ↑