Software Update:GeneratingSnippetsAndPartialsForReleases

From MozillaWiki
Revision as of 18:18, 9 October 2007 by NThomas (talk | contribs)
Jump to navigation Jump to search

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

How Firefox/Thunderbird updates are tested

We use four update channels for Firefox & Thunderbird releases. The two channels that end users see are

  • beta - default channel for the releases 2.0a1, 2.0b1, and up to the last 2.0 beta
  • release - default channel for the first release candidate for 2.0. The vast majority of people are on this channel.

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
  • 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

...

Define variables

PRODUCT=firefox
VERSION=2.0.0.7

Getting the code

# create a working dir
mkdir $PRODUCT-$VERSION-updates/
cd $PRODUCT-$VERSION-updates/

export CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org

# pull patcher2 and the MozBuild support library
cvs co -d patcher mozilla/tools/patcher
cd patcher
cvs co -d MozBuild mozilla/tools/release/MozBuild

Create/update config

Make updates

# build tools
./patcher2.pl --build-tools --app=${PRODUCT} \
  --config=../config/moz180-branch-patcher2.cfg 2>&1 | tee  ${PRODUCT}_build-tools.log
# download complete MARs
./patcher2.pl --download --app=${PRODUCT} \
 --config=../config/moz180-branch-patcher2.cfg 2>&1 | tee  ${PRODUCT}-download.log
# Create partial patches and snippets
./patcher2.pl --create-patches --app=${PRODUCT} \
 --config=../config/moz180-branch-patcher2.cfg 2>&1 | tee ${PRODUCT}-create-patches.log

Publish updates