[Sparkle] Skipped updates and cached responses

Dave Dribin dave-ml at dribin.org
Thu Aug 16 07:34:08 PDT 2007


Hi all,

Okay, here's one last Sparkle topic that's been swimming through my  
head.  When a user runs an app that's out of date, they get a nice  
"what's changed" list.  However, (and correct me if I'm wrong here),  
it only shows the release notes since the last release.  e.g. if I  
just release 1.0.3, it shows the release notes between 1.0.2 and  
1.0.3.  However, the user could be still be on 1.0.1.  Ideally,  
Sparkle would show them the release notes for both releases, so they  
could see what's changed from what they are currently using.

Part of the issue is I think most appcasts only contain 1 item, the  
latest release.  If you think of an appcast like a standard news  
feed, it should really contain all items, all the way back to 1.0 (or  
pre-1.0).  This way the app could display all the release notes  
between any two versions.

Another issue is that the feeds would get quite large.  I don't think  
Sparkle does any caching of the feed.  There's something along the  
lines of this in the manual about keeping the feed small.  But the  
HTTP spec is well suited to this.  It's quite possible to only fetch  
the full feed if it's been modified since our last check, thus  
getting a "304 Not Modified" response back from the server.  This  
drastically reduces the amount Sparkle would have to download each  
time it checks for new versions, since the feed changes relatively  
infrequently.  Unfortunately, I don't think NSURLConnection provides  
support for Last-Modified or ETag, but it's not too bad to implement it.

Thanks for listening. :)

-Dave



More information about the Sparkle mailing list