Extending appcast.xml with new tags

Asked by Thomas Tempelmann

I am looking about using the appcast.xml file for my x-platform app, i.e. for both Mac and Windows.
On the Mac, I'd use Sparkle, while on Windows, for now, I'd just have my app load the appcast, parse it and show a note to the user that he can download a new version when his current one is older.

For this to work, I'll need to extend the appcast to provide another tag besides "enclosure" that's more Windows-friendly about the version checking.

I realize that it's based on the RSS 2.0 spec. I wonder if there's already a solution to this? If not, what's the smartest approach for adding a new tag for a Windows enclosure that won't interfere with Sparkle?

Question information

Language:
English Edit question
Status:
Solved
For:
Sparkle Edit question
Assignee:
No assignee Edit question
Solved by:
Andy Matuschak
Solved:
Last query:
Last reply:
Revision history for this message
Best Andy Matuschak (andymatuschak) said :
#1

Yeah, appcasts are just RSS 2.0 feeds with some custom tags and attributes in the "sparkle" namespace. So, everything you see that starts with "sparkle:". There are only a few items which don't appear in the standard feed, so they haven't been codified in a big table or anything, but they're documented here: https://github.com/andymatuschak/Sparkle/wiki/publishing-an-update

If you need extra tags or attributes, just add them; you won't confuse Sparkle.

Revision history for this message
Thomas Tempelmann (tempelmann) said :
#2

So far I am about to add several more elements of enclosure, with a new optional attribute "os", with values "linux" and "windows".

That'd be the most elegant solution, although it's not clear yet if:

1. Sparkle would dislike to find multiple enclosure tags inside an "item". So far, I assume that Sparke will simple take either the first or the last it find, and so I'd order the non-Mac enclosures accordingly.

2. This might violate the RSS spec and cause problems thereby.

But probably I have to add a new tag, e.g. "sparkle:enclosureWindows" and "sparkle:enclosureLinux".

Any thoughts?