Closed willwhite closed 13 years ago
This is coming together in the Sparkle branch.
Code is essentially done; issues remaining:
Also, I'd argue against allowing automatic updates via Sparkle; that is, we only allow users to consciously update their application after being prompted, versus allowing them to check a box that could potentially auto-update their app on app launch following a new version release. I think this is potentially disruptive to the user workflow, plus we want users to see what's new in each version and allow for some communication there.
great work!
App cast feed can live in at http://tilemill.com/platforms/osx/appcast.xml
. We can just commit it directly to the repo and merge over to gh-pages. The feed should just point to the binaries we have hosted on the github downloads page. Does that sound ok?
@willwhite, I think those will work perfectly. Thanks.
For anonymous system statistics collection (which we can automate with Sparkle), we'd need access to our appcast's log hits, including query string. Can we get that @willwhite?
More re: stats collection: https://github.com/andymatuschak/Sparkle/wiki/system-profiling
No we won't have access to this info since it'll be hosted on github.
Ok, I think the stats would be useful -- thoughts, @springmeyer? This is the kind of info we'd get:
One solution here might be to make a static appcast file on some site we do have stats on that does a redirect to the GitHub page. Then, we can collect the stats from our own logs.
Looking into this a bit more, and evaluating Feeder, which I've always used for appcasts in the past, it probably makes sense to work on a set of scripts for updating the appcast in-place, then allowing that to be pushed with gh-pages
. Couple reasons:
So invocation would look something like this:
appcast.sh [-v version] [-k /path/to/dsa_priv.pem] [-c <changelog url>]
Or, more easily, for something like v0.5.0
, just run appcast.sh
and have the version & changelog URL auto-configured and default to the top-level folder for the private key.
Either case would export to platforms/osx/appcast.xml
and get published via gh-pages
.
Thoughts?
Ok, first cut of the script is up. Still need to do some testing, but as of now, running platforms/osx/sparkle.sh
does the following:
0.4.2
). CHANGELOG.md
.platforms/osx/changelog.html
.https://github.com/downloads/mapbox/tilemill/TileMill-0.4.2.zip
).platforms/osx/appcast.xml
with download URL, signature, size, date, and HTML changelog.git
actions to perform to update the remote appcast via gh-pages
. After more testing, I'll also create a doc for users for initial setup.
There's now a SPARKLE.md
file with setup & usage instructions for devs. @springmeyer & @willwhite, please have a look when you are able and let me know what you think.
Specifically, a test would consist of:
0.4.2
(for now).platforms/osx/sparkle.sh
.platforms/osx/appcast.sh
that looks sane. This should also create a changelog.html
, which in future versions will just get updated and pulled inline to the appcast.xml
from the app's Sparkle WebKit. Cool! I will test this once I get my Mac OS X build working (#649).
A few things here.
@willwhite, thanks for the feedback.
Weird with the checkmarks, huh. Sounds good on points 2 & 3.
We can host an appcast on gh-pages. We may have to change our
CFBundleVersion
so it uses an actual number instead of a hash. Hashes don't have an order, and Sparkle uses them to determine if the user's version is older than the current version.Sparkle will also uses Shared User Defaults to keep track of whether the users has opted for automatic update checks, so this is related to #584.