AUS:patcher3: Difference between revisions
Jump to navigation
Jump to search
(Created page with "== What does patcher2 do ? == The config file specifies * a <tt><current-update></tt> block - a pair of releases to build a partial update between, with associated URLs, channe...") |
|||
| Line 3: | Line 3: | ||
The config file specifies | The config file specifies | ||
* a <tt><current-update></tt> block - a pair of releases to build a partial update between, with associated URLs, channels, and properties that will end up in the snippets offered to the app | * a <tt><current-update></tt> block - a pair of releases to build a partial update between, with associated URLs, channels, and properties that will end up in the snippets offered to the app | ||
* a series of past-update definitions, which list previous update versions and channels | * a series of <tt>past-update</tt> definitions, which list previous update versions and channels | ||
* a <tt><release></tt> block for each release on the 'stable branch', giving their platform-buildID pairs, a list of locales, file locations | * a <tt><release></tt> block for each release on the 'stable branch', giving their platform-buildID pairs, a list of locales, file locations | ||
patcher2 can | patcher2 can | ||
* download the source and build all the tools it needs generate partial updates (it downloads way more than it needs) | * download the source and build all the tools it needs generate partial updates (it downloads way more than it needs) | ||
* | * generate an update 'graph' (more info needed) | ||
* download complete mar files and | |||
** generate a manifest for the fast patch generator (make_incremental_updates.py) and call out to it, OR | |||
** generate partial updates directly (no longer used) | |||
* generate snippet files for the <tt><current-update></tt> and all the <tt>past-update</tt>'s, using the mar files and the update graph | |||
The major problems with it are | |||
* the snippets duplicate a lot of information, ie all the 3.5.x releases from b1 to 3.5.10 update German Mac to the same build, partial only from 3.5.10 to 3.5.11. It's slow to generate and copy these files around | |||
* we should support the new properties Rob Strong added ({{nbug|538331}},{{nbug|530872}}) | |||
* it doesn't handle locales that are dropped for a few releases then come back, the people on the early builds are abandoned | |||
* you can't see the code for the spaghetti and copy-and-paste turds | |||
* it lives in CVS | |||
== patcher3 will be glorious == | |||
Revision as of 10:21, 19 August 2010
What does patcher2 do ?
The config file specifies
- a <current-update> block - a pair of releases to build a partial update between, with associated URLs, channels, and properties that will end up in the snippets offered to the app
- a series of past-update definitions, which list previous update versions and channels
- a <release> block for each release on the 'stable branch', giving their platform-buildID pairs, a list of locales, file locations
patcher2 can
- download the source and build all the tools it needs generate partial updates (it downloads way more than it needs)
- generate an update 'graph' (more info needed)
- download complete mar files and
- generate a manifest for the fast patch generator (make_incremental_updates.py) and call out to it, OR
- generate partial updates directly (no longer used)
- generate snippet files for the <current-update> and all the past-update's, using the mar files and the update graph
The major problems with it are
- the snippets duplicate a lot of information, ie all the 3.5.x releases from b1 to 3.5.10 update German Mac to the same build, partial only from 3.5.10 to 3.5.11. It's slow to generate and copy these files around
- we should support the new properties Rob Strong added (538331,530872)
- it doesn't handle locales that are dropped for a few releases then come back, the people on the early builds are abandoned
- you can't see the code for the spaghetti and copy-and-paste turds
- it lives in CVS