Changes

Jump to: navigation, search

UpdateGeneration

2,032 bytes added, 22:06, 15 July 2009
no edit summary
=== Nightly updates ===
We make updates available for official nightly builds for all current code branches. This helps ensure that our nightly testers are always running the most recent code with the least possible effort. These updates are offered on the 'nightly' update channel.
 
Both complete and partial updates are offered. If the user is running the most recent previous nightly build, the partial update is served. Otherwise, the complete update is always served. This greatly simplifies/expedites the update generation matrix.
 
Steps for nightly update generation:
* nightly builders generate complete MAR using Makefile
* upload complete MAR to staging along with build
=== Updates for security releases ===
 
We create both partial and complete updates for security releases (aka as 'dot' releases, e.g. 3.5.x). These updates are only ever served to users on the same product branch.
 
Legitimate partial updates, i.e. binary diffs, are generated for migrating users from the previous security release to the new security release, e.g. 3.5.1->3.5.2. Complete mars are served to those users on older security releases, e.g. 3.5->3.5.2. Because the updater checks for partial updates before complete updates, the update system serves the complete update for a security release as a partial update to all users on previous security releases. This avoids presenting the user with a failed check for a partial update that, while harmless, might be confusing.
 
Steps for security release update generation:
# Partial MARs and AUS configuration is generated using the patcher2 tool: http://mxr.mozilla.org/mozilla/source/tools/patcher/
# The release engineer puts the appropriate URLs, version numbers, and build IDs into the patcher configuration file
# patcher downloads the complete MARs, creates partial diffs (using mbsdiff), and generates partial MAR files as well as AUS configuration files ("snippet" files).
# Patcher generates both production ("release") and testing ("releasetest") snippets, release snippets point to bouncer while releasetest snippets point to stage.
# The partial MAR files are copied to the candidates directory, and the releasetest snippets are loaded into AUS.
=== Updates between major branches (aka major update) ===
Canmove, confirm
2,850
edits

Navigation menu