Question

I am using Sparkle framework for application updates, and I am wondering what url in the <sparkle:ReleaseNotesLink> tag is actually used for?

According to the documentation, "You can provide additional release notes for localization purposes." https://github.com/andymatuschak/Sparkle/wiki/publishing-an-update#localization

<sparkle:releaseNotesLink>http://you.com/app/2.0.html</sparkle:releaseNotesLink>
<sparkle:releaseNotesLink xml:lang="de">http://you.com/app/2.0_German.html</sparkle:releaseNotesLink>

I understand adding language codes to the tag for different languages. What I don't understand is how the link is utilized or accessed? A link to a "Release Notes" page does not show in the rss feed. So, if only using a single language, does the tag have a purpose?

I thought it might add a link to the description shown when there is an update that said "Complete Change log here" or something similar, but it does not. It also does not show a "link" when viewing the xml file in a web browser, so I am confused as to the tags purpose.

Was it helpful?

Solution

The sparkle RSS definition is an extension to the standard RSS definition. The sparkle-specific items are only used by the Sparkle framework, in order to properly determine versions, or display release notes when prompting a user for a new update. A web browser (expecting a run-of-the-mill RSS feed, sans Sparkle extensions) won't show all the magic goo that the Sparkle framework can take advantage of when invoked within your app.

The sample test appcast provided by the Sparkle project has two sparkle-specific item fields defined in the feed:

  1. wraps a URL that contains release notes to be displayed in the popup window proposing a new release to users.

  2. sparkle:version, sparkle:shortVersionString, and sparkle:dsaSignature are three Sparkle-specific attributes to the "enclosure" tag, which allow the Sparkle framework to propose the newest version, display a meaningful user-facing version, and ensure that the user's download was completed successfully and safely. If the signature value isn't correct, your users will get a message explaining that (IIRC) "The file appears corrupted/damaged".

Generally, these are easily tested by simply performing an update using Sparkle on another computer (aside from your usual dev machine), as both versions and signature would be checked and/or displayed during a normal update procedure. This, combined with the output inspection you describe (within a web browser) should be sufficient to ensure that your appcast is well-formed.

The best canonical definition I could find for the subtleties of the Sparkle extensions is in the location you pointed to in your question: https://github.com/sparkle-project/Sparkle/wiki/publishing-an-update

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top