appcast-brainstorming: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
(Adding issues: naming (appcast vs download) and dsa signatures)
m (Redirecting appcast-brainstorming to downloads-brainstorming)
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
<h1>Appcast Brainstorming </h1>
#REDIRECT [[downloads-brainstorming]]
The purpose of this page is to capture software updates practices in the wild, as one effort to codify practices currently used in the automatic update system called Sparkle.
 
__TOC__
 
== Authors ==
 
* [[User:DenisDefreyne|Denis Defreyne]]
* [http://factoryjoe.com/ Chris Messina]
 
== Context ==
 
Sites like [http://iusethis.com iusethis.com], [http://versiontracker.com versiontracker.com], [http://macupdate.com macupdate.com] and [http://download.com download.com] among others should be investigated and documented for object names and attributes.
 
Among common data in a software update changelog are changes or fixes, completed bugs, new features or modified behavior, and known issues. A version number is also typically supplied, but takes on many forms and is not always numeric.
 
Lastly, this work should be seen as compatible with hAtom, possibly as a prelude to a format that could be embedded as the payload of an hfeed object.
 
Work should be carried out on the [[appcast-examples | Appcast Examples]] page.
 
== Related Work ==
 
* [[downloads-brainstorming]] seems to have a similar goal. Could these two pages be merged? [[User:DenisDefreyne|DenisDefreyne]] 02:56, 28 Jul 2007 (PDT)
** I would agree that they're related; the Appcast work is specially aimed at making it possibly to transmit Sparkle-like updates in HTML and hAtom. I would be nice to be able to subsume the downloads work with the appcast microformat. [[User:Chris_Messina|Chris Messina]] 010:02, 28 Jul 2007 (CDT)
** Tantek suggests that work on an appcast microformat should be continued under the name of a downloads microformat, arguing that the term "appcast" is rather jargony, and I agree. [[User:DenisDefreyne|DenisDefreyne]] 02:59, 5 Aug 2007 (PDT)
* [[hash-examples]] has a section about hAtom integration. The example uses a "download" class, which contains a rel-enclosure link as well as a span with "md5" and "checksum" classes.
 
== Sparkle-specific Appcast enhancements ==
 
Sparkle adds a few extra features to appcasts:
 
* External release notes URL: used when the release notes are not included in the appcast itself
* MD5 sums and DSA signatures: used for some extra security
* Advanced version string: Sparkle determines the application version from the enclosure name, which is assumed to be APPNAME_VERSION.zip; the advanced version string allows this convention to be overridden
 
The appcast microformat should probably support these features as well.
 
The MD5 sum and DSA signature is specific for an enclosure. It is, however, not possible to add these extra attributes to a [[rel-enclosure]] link. A hentry in an appcast can only have one enclosure, so the MD5 sum and DSA signature should be part of the hentry.
 
== Proposal ==
 
This proposal is mostly inspired by appcasts with Sparkle extensions.
 
* Each hentry has one enclosure, and possibly checksums and digital signatures.
* Each hentry has one <code>version</code> which holds the application version.
 
Example:
 
<code><pre>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
&lt;html>
&lt;head>
&lt;title>Appcast&lt;/title>
&lt;/head>
&lt;body>
&lt;h1>Appcast&lt;/h1>
&lt;div class="hentry">
&lt;h2 class="entry-title">Adium &lt;span class="version">1.0.4&lt;/span>&lt;/h2>
&lt;p>Updated on &lt;abbr class="updated" title="2007-06-20T18:00+01:00">24 June&lt;/abbr>.&lt;/p>
&lt;div class="entry-content">
&lt;ul>
&lt;li>Fixed a crash introduced in 1.0.3 which could occur when accounts disconnected or status changed&lt;/li>
&lt;li>Fixed group chat when message history is enabled&lt;/li>
&lt;/ul>
&lt;/div>
 
<p>
&lt;a href="http://adiumx.cachefly.net/Adium_1.0.4.dmg" rel="enclosure">Download&lt;/a>.
<span class="checksum">
The <span class="type">MD5</span> checksum of this download is
<span class="value">e0d123e5f316bef78bfdf5a008837577</span>.
</span>.
</p>
&lt;/div>
&lt;/body>
&lt;/html></pre></code>
 
The hash microformat used in this proposal is likely to change.
 
== Multi-app/arch/OS/... appcasts ==
 
A single downloads page can have downloads for different applications, different versions, different architectures, different operating systems, etc (for example, the [http://dev.mysql.com/downloads/mysql/5.0.html MySQL downloads page]).
 
Here's a probably incomplete list of different download properties:
 
* Architecture: PPC, x86, 68k, architecture-independent, …
* OS: Mac OS X, Windows XP, OS-independent, …
* Download type: Ruby Gem, gzipped tarball, Mac OS X DMG, …
 
However, multi-* appcasts are hard to do right, and therefore probably not worth supporting. An appcast HTML page should therefore only contain updates for one application, one OS, one architecture, etc.
 
== Issues ==
 
* The name "appcast" is too technical ("downloads" is much more clear) and too general (because it only refers to application downloads). Renaming appcasts to downloads would solve these issues.
* How should DSA signatures be handled? Should a simple <code>&lt;span class="dsa-signature">...&lt;/span></code> work? Should DSA signatures be part of the hash microformat (see [[hash-brainstorming]])?
 
== Software using appcasts ==
 
This is a list of programs and frameworks that use appcasts or appcast-like data.
 
* [http://sparkle.andymatuschak.org/ Sparkle] uses Sparkle-enhanced RSS appcasts.
* [http://metaquark.de/appfresh/ AppFresh] uses Sparkle-enhanced appcasts, including those generated by [http://iusethis.com/ iusethis] (e.g. [http://osx.iusethis.com/appcast/igtd the iGTD appcast]).
 
== Related Pages ==
 
* [[appcast]]
* [[appcast-examples]]
* [[appcast-formats]]

Latest revision as of 21:48, 5 August 2007