Difference between revisions of "Development:Planning:Software Update"

From Camino Wiki
Jump to navigation Jump to search
(in progress; i'll finish updating this later)
 
(23 intermediate revisions by 4 users not shown)
Line 11: Line 11:
 
* one thing i don't like about sparkle is that it doesn't check to see if you have permission to update the app first
 
* one thing i don't like about sparkle is that it doesn't check to see if you have permission to update the app first
 
* We should only enable update checking in official release builds
 
* We should only enable update checking in official release builds
 +
* en-only and ML Camino
 +
** what if your language drops from ML in a major update?
 +
* Localization of required strings
 +
** This is significant UI, and it needs to be localized (i.e., Gecko chrome strings bug is a no-go here)
 +
* Automated generation of update and update notification
 +
* Bouncer/download counts
  
 
== Potential requirements==
 
== Potential requirements==
Line 16: Line 22:
 
* Background/throttled downloads
 
* Background/throttled downloads
 
* Remind me later
 
* Remind me later
 +
** Don't remind me again???
 
* Install update later
 
* Install update later
  
 
==Concerns==
 
==Concerns==
 
* QA
 
* QA
* Generation
+
* Documentation
 
* Gecko
 
* Gecko
 +
* Well-maintained
 +
* User Experience
 +
** ardissone has some concerns with the over-promptiness of the proposed [http://sparkle.andymatuschak.org/wiki/Sparkle2/Storyboard Sparkle2 story]
  
 
==Comparison Table==
 
==Comparison Table==
  
<table class="fullwidth-table">
+
<table class="fullwidth-table" width="100%">
 
<tr>
 
<tr>
 
<th style="width:100px">Requirement</th>
 
<th style="width:100px">Requirement</th>
<th style="width:100px;text-align:center">mozUpdate</th>
+
<th style="width:100px;text-align:center">[http://wiki.mozilla.org/Software_Update mozUpdate]</th>
<th style="width:100px;text-align:center">Sparkle</th>
+
<th style="width:100px;text-align:center">[http://sparkle.andymatuschak.org/ Sparkle]</th>
 
<th style="width:100px;text-align:center">''Option 3''</th>
 
<th style="width:100px;text-align:center">''Option 3''</th>
 
</tr>
 
</tr>
Line 35: Line 45:
 
<tr>
 
<tr>
 
<td>Can build as 10.3/10.4 Universal</td>
 
<td>Can build as 10.3/10.4 Universal</td>
<td></td>
+
<td {{greenCell}}>Yes</td>
<td></td>
+
<td {{greenCell}}>Yes</td>
 
<td></td>
 
<td></td>
 
</tr>
 
</tr>
Line 42: Line 52:
 
<tr>
 
<tr>
 
<td>License</td>
 
<td>License</td>
<td></td>
+
<td {{greenCell}}>Tri-License</td>
<td></td>
+
<td {{greenCell}}>MIT [http://sparkle.andymatuschak.org/browser/tags/1.1/License.txt]</td>
 
<td></td>
 
<td></td>
 
</tr>
 
</tr>
Line 49: Line 59:
 
<tr>
 
<tr>
 
<td>cvs Approval</td>
 
<td>cvs Approval</td>
<td></td>
+
<td {{greenCell}}>In tree</td>
 
<td></td>
 
<td></td>
 
<td></td>
 
<td></td>
Line 56: Line 66:
 
<tr>
 
<tr>
 
<td>Can land source code<br>(instead of binary drops)</td>
 
<td>Can land source code<br>(instead of binary drops)</td>
<td></td>
+
<td {{greenCell}}>In tree</td>
 
<td></td>
 
<td></td>
 
<td></td>
 
<td></td>
Line 70: Line 80:
 
<tr>
 
<tr>
 
<td>Uses https for "need to update" notice downloads</td>
 
<td>Uses https for "need to update" notice downloads</td>
<<td></td>
+
<td></td>
 
<td></td>
 
<td></td>
 
<td></td>
 
<td></td>
Line 85: Line 95:
 
<td>Supports fine-grained checking for version/OS pairs</td>
 
<td>Supports fine-grained checking for version/OS pairs</td>
 
<td></td>
 
<td></td>
<td></td>
+
<td>Not directly, but we should be able to point to different URLs by OS version</td>
 
<td></td>
 
<td></td>
 
</tr>
 
</tr>
Line 91: Line 101:
 
<tr>
 
<tr>
 
<td>Can disable update checking within Camino</td>
 
<td>Can disable update checking within Camino</td>
<td></td>
+
<td {{greenCell}}>Yes</td>
<td></td>
+
<td {{greenCell}}>Yes</td>
 
<td></td>
 
<td></td>
 
</tr>
 
</tr>
Line 99: Line 109:
 
<td>Verifies user has permission to update first</td>
 
<td>Verifies user has permission to update first</td>
 
<td></td>
 
<td></td>
<td></td>
+
<td>Supports users authenticating</td>
 
<td></td>
 
<td></td>
 
</tr>
 
</tr>
Line 106: Line 116:
 
<td>Can enable updates/update checking only in official release builds</td>
 
<td>Can enable updates/update checking only in official release builds</td>
 
<td></td>
 
<td></td>
 +
<td {{greenCell}}>Yes</td>
 
<td></td>
 
<td></td>
 +
</tr>
 +
 +
<tr>
 +
<td>Can handle ML as well as en-only Camino</td>
 +
<td {{greenCell}}>Yes, but we have to localize it</td>
 +
<td {{greenCell}}>Yes</td>
 
<td></td>
 
<td></td>
 
</tr>
 
</tr>
  
 
<tr>
 
<tr>
<td>Support for resuming lost connections</td>
+
<td>UI string localization</td>
<td></td>
+
<td {{greenCell}}>Yes, but we have to localize it</td>
<td></td>
+
<td {{greenCell}}>Yes</td>
 
<td></td>
 
<td></td>
 
</tr>
 
</tr>
  
 
<tr>
 
<tr>
<td>Can download in background</td>
+
<td>Release automation</td>
 
<td></td>
 
<td></td>
 
<td></td>
 
<td></td>
 
<td></td>
 
<td></td>
<td></td>
+
</tr>
<td></td>
 
<td></td></tr>
 
  
 
<tr>
 
<tr>
<td>Can download at low speed to not affect connection</td>
+
<td>Bouncer/download counts</td>
<td style="background: #FF8;" colspan="5">Probably won't make it</td>
 
<!--td></td>
 
 
<td></td>
 
<td></td>
 
<td></td>
 
<td></td>
 
<td></td>
 
<td></td>
<td></td-->
 
 
</tr>
 
</tr>
  
 
<tr>
 
<tr>
<td>nl</td>
+
<td colspan=4>'''Desirables'''</td>
<td style="background: #8F8;">Y</td>
 
<td style="background: #8F8;">Y</td>
 
<td style="background: #8F8;">1.5rc</td>
 
<td>2 odd strings on 10.4.9 PPC</td>
 
<td style="background: #8F8;">Y</td>
 
<td style="background: #8F8;">28 May ML</td>
 
 
</tr>
 
</tr>
  
 
<tr>
 
<tr>
<td>no</td>
+
<td>Support for resuming lost connections</td>
<td style="background: #88F;">Y</td>
+
<td></td>
<td style="background: #88F;">Y</td>
+
<td></td>
<td style="background: #88F;">1.5rc</td>
 
<td>No, but a couple of strings missing (fixed)</td>
 
<td style="background: #88F;">Y</td>
 
 
<td></td>
 
<td></td>
 
</tr>
 
</tr>
  
 
<tr>
 
<tr>
<td>pl</td>
+
<td>Can download in background</td>
<td style="background: #8F8;">Y</td>
+
<td></td>
<td style="background: #8F8;">Y</td>
+
<td></td>
<td style="background: #8F8;">1.5rc</td>
+
<td></td>
<td style="background: #8F8;">N</td>
 
<td style="background: #8F8;">Y</td>
 
<td style="background: #8F8;">28 May ML</td>
 
 
</tr>
 
</tr>
  
 
<tr>
 
<tr>
<td>pt-BR</td>
+
<td>Can download at low speed to not affect connection</td>
<td style="background: #8F8;">Y</td>
+
<td></td>
<td style="background: #8F8;">Y</td>
+
<td></td>
<td style="background: #8F8;">1.5rc</td>
+
<td></td>
<td style="background: #8F8;">Yes but fixed now</td>
 
<td style="background: #8F8;">Y</td>
 
<td style="background: #8F8;">28 May ML</td>
 
 
</tr>
 
</tr>
  
 
<tr>
 
<tr>
<td>pt-PT</td>
+
<td>Can remind to download later</td>
<td></td>
 
 
<td></td>
 
<td></td>
 +
<td {{greenCell}}>Yes</td>
 
<td></td>
 
<td></td>
 +
</tr>
 +
 +
<tr>
 +
<td>Can install later once downloaded</td>
 
<td></td>
 
<td></td>
 
<td></td>
 
<td></td>
Line 187: Line 188:
  
 
<tr>
 
<tr>
<td>ru</td>
+
<td>Good UI/UE<br />(not lots of prompting, esp. at launch)</td>
<td style="background: #8F8;">Y</td>
+
<td>We control prompting</td>
<td style="background: #8F8;">Y</td>
+
<td>At startup, but we could modify that</td>
<td style="background: #8F8;">1.5rc</td>
+
<td></td>
<td style="background: #8F8;">N</td>
 
<td style="background: #8F8;">Y</td>
 
<td style="background: #8F8;">28 May ML</td>
 
 
</tr>
 
</tr>
  
 
<tr>
 
<tr>
<td>sk</td>
+
<td colspan=4>'''Other concerns'''</td>
<td style="background: #8F8;">Y</td>
 
<td style="background: #8F8;">Y</td>
 
<td style="background: #8F8;">1.5rc</td>
 
<td>had AD issues; fixed</td>
 
<td style="background: #8F8;">Y</td>
 
<td style="background: #8F8;">28 May ML</td>
 
 
</tr>
 
</tr>
  
 
<tr>
 
<tr>
<td>sv</td>
+
<td>Expanded QA requirements</td>
<td style="background: #8F8;">Y</td>
+
<td>If we do partial updates, yes</td>
<td style="background: #8F8;">Y</td>
+
<td>Minimal; it's just an over-install</td>
<td style="background: #8F8;">1.5rc</td>
+
<td></td>
<td style="background: #8F8;">N</td>
 
<td style="background: #8F8;">Y</td>
 
<td style="background: #8F8;">28 May ML</td>
 
 
</tr>
 
</tr>
  
 
<tr>
 
<tr>
<td>tr</td>
+
<td>Documentation</td>
<td></td>
+
<td {{YellowCell}}>Poor/missing for many parts</td>
<td></td>
+
<td {{greenCell}}>Good</td>
<td></td>
 
<td></td>
 
<td></td>
 
 
<td></td>
 
<td></td>
 
</tr>
 
</tr>
  
 
<tr>
 
<tr>
<td>th</td>
+
<td>Complexity added to the app<br />''e.g.'' wrapping Gecko</td>
<td style="background: #FF8;" colspan="5">Untouched since 0.8.4</td>
+
<td>It can be fairly separate, but it's code we need to write</td>
<!--<td></td>
+
<td>Minimal</td>
<td></td>
 
<td></td>
 
 
<td></td>
 
<td></td>
<td></td>-->
 
 
</tr>
 
</tr>
  
 
<tr>
 
<tr>
<td>zh-CN</td>
+
<td>Actively maintained and supported</td>
<td></td>
+
<td>Yes, Firefox at least uses it (and TB?)</td>
<td></td>
+
<td {{greenCell}}>Yes, 188+ Apps using it</td>
<td></td>
 
<td></td>
 
<td></td>
 
 
<td></td>
 
<td></td>
 
</tr>
 
</tr>
  
 
<tr>
 
<tr>
<td>zh-TW</td>
+
<td colspan=4>'''Color key'''</td>
<td></td>
 
<td></td>
 
<td></td>
 
<td></td>
 
<td></td>
 
<td></td>
 
 
</tr>
 
</tr>
  
 
<tr>
 
<tr>
<td>Sample colors</td>
+
<td> </td>
<td style="background: #8F8;">Present</td>
+
<td {{greenCell}}>Present</td>
<td style="background: #FF8;">In progress or At-risk</td>
+
<td {{YellowCell}}>Unknown</td>
<td style="background: #F88;">Missing</td>
+
<td {{RedCell}}>Missing</td>
<td style="background: #88F;">Completed/waiting for files</td>
+
<!--<td style="background: #88F;">Completed/waiting for files</td>-->
<td></td>
 
<td></td>
 
 
</tr>
 
</tr>
 
 
</table>
 
</table>

Latest revision as of 20:01, 12 December 2010

Requirements

  • can build in a 10.3/10.3.9 SDK/gcc3.3 and 10.4/10.4u/gcc4 Universal configuration
  • Compatible license
  • Approval to land in cvs (if not using mozUpdate) - mento prefers landing source code instead of binary drops
  • https capabilities
    • Everything needs to be either https or signed (signing is an option for the Sparkle downloads, but there's a logistical issue that would come with that)
  • Update checking (OS version, etc.)
    • say, 1.6.x updates to 2.0.x at some point unless you're running 10.3, in which case you only get 1.6.x updates
    • and if you move to 10.4, do you get re-offered 2.0.x
  • provide a way to turn off update checking from inside the app (unlike adium - with apologies to cbarrett for the jab)
  • one thing i don't like about sparkle is that it doesn't check to see if you have permission to update the app first
  • We should only enable update checking in official release builds
  • en-only and ML Camino
    • what if your language drops from ML in a major update?
  • Localization of required strings
    • This is significant UI, and it needs to be localized (i.e., Gecko chrome strings bug is a no-go here)
  • Automated generation of update and update notification
  • Bouncer/download counts

Potential requirements

  • Resuming lost connections
  • Background/throttled downloads
  • Remind me later
    • Don't remind me again???
  • Install update later

Concerns

  • QA
  • Documentation
  • Gecko
  • Well-maintained
  • User Experience
    • ardissone has some concerns with the over-promptiness of the proposed Sparkle2 story

Comparison Table

Requirement mozUpdate Sparkle Option 3
Can build as 10.3/10.4 Universal Yes Yes
License Tri-License MIT [1]
cvs Approval In tree
Can land source code
(instead of binary drops)
In tree
Uses https for binary downloads
Uses https for "need to update" notice downloads
https server available
Supports fine-grained checking for version/OS pairs Not directly, but we should be able to point to different URLs by OS version
Can disable update checking within Camino Yes Yes
Verifies user has permission to update first Supports users authenticating
Can enable updates/update checking only in official release builds Yes
Can handle ML as well as en-only Camino Yes, but we have to localize it Yes
UI string localization Yes, but we have to localize it Yes
Release automation
Bouncer/download counts
Desirables
Support for resuming lost connections
Can download in background
Can download at low speed to not affect connection
Can remind to download later Yes
Can install later once downloaded
Good UI/UE
(not lots of prompting, esp. at launch)
We control prompting At startup, but we could modify that
Other concerns
Expanded QA requirements If we do partial updates, yes Minimal; it's just an over-install
Documentation Poor/missing for many parts Good
Complexity added to the app
e.g. wrapping Gecko
It can be fairly separate, but it's code we need to write Minimal
Actively maintained and supported Yes, Firefox at least uses it (and TB?) Yes, 188+ Apps using it
Color key
Present Unknown Missing