Software Update:GeneratingSnippetsAndPartialsForReleases: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 1: Line 1:
For releases of Firefox and Thunderbird, the Build & Release team at Mozilla Corp uses a program called [http://mxr.mozilla.org/seamonkey/source/tools/patcher/ patcher2]. This document describes the basics of how to use it.
For releases of Firefox and Thunderbird, the Build & Release team at Mozilla Corp uses a program called patcher2. This document describes the basics of how to use it.


=Overview=
=Overview=
==Parts of the update system==
To provide updates for releases, you need the following
* for each platform and locale:
** a partial mar between the current release and the new release, this basically an archive of binary diff's
** a complete mar for the new release, which is a copy of every file, to be used if the partial doesn't work or the installed build is more than one release behind
* a collection of update information (called snippets) that describe the update paths
The tinderbox produces the complete mars when it creates the installer/archiver. The partial mar and snippets are created by a perl script called [http://mxr.mozilla.org/seamonkey/source/tools/patcher/ patcher2].


==How Firefox/Thunderbird updates are tested==
==How Firefox/Thunderbird updates are tested==
Line 10: Line 20:


Then there are  
Then there are  
* betatest - mainly QA testing of updates, pointing to the ftp server, to check that they apply properly, the UI works etc etc
* betatest - for testing updates, pointing to the ftp server, to check that they apply properly, the UI works etc etc
* releasetest - mainly QA testing of updates, pointing to download.m.o (bouncer), to make sure everything is available to end users when the release is imminent
* releasetest - testing of staging files on ftp server, pointing to download.m.o (bouncer), to make sure everything is available to end users when the release is imminent
 
To make this possible two groups of update snippets are generated, and pushed live at different times. A correctly setup patcher config will make both sets in one run, as well as creating the partial mars.
 
You can modify the channel using the [http://www.oxymoronical.com/web/firefox/updatechannel Update Channel Changer] extension, or edit <tt>&lt;firefox_install_dir&gt;/default/pref/channel-prefs.js</tt> to change the  <tt>app.update.channel</tt> preference. Using <tt>about:config</tt> doesn't work.


...
=Creating updates=


=Define variables=
==Define variables==


  PRODUCT=firefox
  PRODUCT=firefox
  VERSION=2.0.0.7
  VERSION=2.0.0.7


=Getting the code=
==Getting the code==


  # create a working dir
  # create a working dir
Line 33: Line 47:
  cvs co -d MozBuild mozilla/tools/release/MozBuild
  cvs co -d MozBuild mozilla/tools/release/MozBuild


=Create/update config=
==Create/update config==


=Make updates=
==Run patcher2==


  # build tools
  # build tools
Line 47: Line 61:
   --config=../config/moz180-branch-patcher2.cfg 2>&1 | tee ${PRODUCT}-create-patches.log
   --config=../config/moz180-branch-patcher2.cfg 2>&1 | tee ${PRODUCT}-create-patches.log


=Publish updates=
==Publish updates==
Confirmed users
4,293

edits