appcast-brainstorming

(Difference between revisions)

Jump to: navigation, search
m (formatting cleanup)
Current revision (21:48, 5 August 2007) (view source)
m (Redirecting appcast-brainstorming to downloads-brainstorming)
 
(7 intermediate revisions 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)
+
-
* [[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 larger "enclosure" microformat may be necessary.
+
-
 
+
-
== 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.
+
-
 
+
-
== 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 and [http://iusethis.com/ iusethis].
+
-
** I'm not sure how the iusethis integration works, but it looks like AppFresh scrapes HTML pages.
+
-
 
+
-
== Related Pages ==
+
-
 
+
-
* [[appcast]]
+
-
* [[appcast-examples]]
+
-
* [[appcast-formats]]
+

Current revision

  1. REDIRECT downloads-brainstorming
appcast-brainstorming was last modified: Sunday, August 5th, 2007

Views