Difference between revisions of "Development:Planning:Software Update"
Jump to navigation
Jump to search
(stub) |
|||
| (29 intermediate revisions by 5 users not shown) | |||
| Line 1: | Line 1: | ||
==Requirements== | ==Requirements== | ||
| − | * 10.3/10.3.9 SDK/gcc3.3 and 10.4/10.4u/gcc4 Universal | + | * can build in a 10.3/10.3.9 SDK/gcc3.3 and 10.4/10.4u/gcc4 Universal configuration |
* Compatible license | * Compatible license | ||
| + | * Approval to land in cvs (if not using mozUpdate) - mento prefers landing source code instead of binary drops | ||
* https capabilities | * 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 [http://sparkle.andymatuschak.org/wiki/Sparkle2/Storyboard Sparkle2 story] | ||
| + | |||
| + | ==Comparison Table== | ||
| + | |||
| + | <table class="fullwidth-table" width="100%"> | ||
| + | <tr> | ||
| + | <th style="width:100px">Requirement</th> | ||
| + | <th style="width:100px;text-align:center">[http://wiki.mozilla.org/Software_Update mozUpdate]</th> | ||
| + | <th style="width:100px;text-align:center">[http://sparkle.andymatuschak.org/ Sparkle]</th> | ||
| + | <th style="width:100px;text-align:center">''Option 3''</th> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>Can build as 10.3/10.4 Universal</td> | ||
| + | <td {{greenCell}}>Yes</td> | ||
| + | <td {{greenCell}}>Yes</td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>License</td> | ||
| + | <td {{greenCell}}>Tri-License</td> | ||
| + | <td {{greenCell}}>MIT [http://sparkle.andymatuschak.org/browser/tags/1.1/License.txt]</td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>cvs Approval</td> | ||
| + | <td {{greenCell}}>In tree</td> | ||
| + | <td></td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>Can land source code<br>(instead of binary drops)</td> | ||
| + | <td {{greenCell}}>In tree</td> | ||
| + | <td></td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>Uses https for binary downloads</td> | ||
| + | <td></td> | ||
| + | <td></td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>Uses https for "need to update" notice downloads</td> | ||
| + | <td></td> | ||
| + | <td></td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>https server available</td> | ||
| + | <td></td> | ||
| + | <td></td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>Supports fine-grained checking for version/OS pairs</td> | ||
| + | <td></td> | ||
| + | <td>Not directly, but we should be able to point to different URLs by OS version</td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>Can disable update checking within Camino</td> | ||
| + | <td {{greenCell}}>Yes</td> | ||
| + | <td {{greenCell}}>Yes</td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>Verifies user has permission to update first</td> | ||
| + | <td></td> | ||
| + | <td>Supports users authenticating</td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>Can enable updates/update checking only in official release builds</td> | ||
| + | <td></td> | ||
| + | <td {{greenCell}}>Yes</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> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>UI string localization</td> | ||
| + | <td {{greenCell}}>Yes, but we have to localize it</td> | ||
| + | <td {{greenCell}}>Yes</td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>Release automation</td> | ||
| + | <td></td> | ||
| + | <td></td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>Bouncer/download counts</td> | ||
| + | <td></td> | ||
| + | <td></td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td colspan=4>'''Desirables'''</td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>Support for resuming lost connections</td> | ||
| + | <td></td> | ||
| + | <td></td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>Can download in background</td> | ||
| + | <td></td> | ||
| + | <td></td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>Can download at low speed to not affect connection</td> | ||
| + | <td></td> | ||
| + | <td></td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>Can remind to download later</td> | ||
| + | <td></td> | ||
| + | <td {{greenCell}}>Yes</td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>Can install later once downloaded</td> | ||
| + | <td></td> | ||
| + | <td></td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>Good UI/UE<br />(not lots of prompting, esp. at launch)</td> | ||
| + | <td>We control prompting</td> | ||
| + | <td>At startup, but we could modify that</td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td colspan=4>'''Other concerns'''</td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>Expanded QA requirements</td> | ||
| + | <td>If we do partial updates, yes</td> | ||
| + | <td>Minimal; it's just an over-install</td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>Documentation</td> | ||
| + | <td {{YellowCell}}>Poor/missing for many parts</td> | ||
| + | <td {{greenCell}}>Good</td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>Complexity added to the app<br />''e.g.'' wrapping Gecko</td> | ||
| + | <td>It can be fairly separate, but it's code we need to write</td> | ||
| + | <td>Minimal</td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td>Actively maintained and supported</td> | ||
| + | <td>Yes, Firefox at least uses it (and TB?)</td> | ||
| + | <td {{greenCell}}>Yes, 188+ Apps using it</td> | ||
| + | <td></td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td colspan=4>'''Color key'''</td> | ||
| + | </tr> | ||
| + | |||
| + | <tr> | ||
| + | <td> </td> | ||
| + | <td {{greenCell}}>Present</td> | ||
| + | <td {{YellowCell}}>Unknown</td> | ||
| + | <td {{RedCell}}>Missing</td> | ||
| + | <!--<td style="background: #88F;">Completed/waiting for files</td>--> | ||
| + | </tr> | ||
| + | </table> | ||
Latest revision as of 19: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 | |