[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