Releases/Thunderbird 3.0/BuildNotes

From MozillaWiki
Jump to: navigation, search

Until we're about to ship this page will serve as a spot to put down a rough checklist of what needs to be done to ship.

Release Engineers

gozer

Notes

Generate major update

# ssh momo-vm-02
$> mkdir -p /builds/3.0.11-3.5rc3build2-major-update-test/snippets
$> cd /buildbot/updates/build

# download mars
$> ./patcher2.pl --download --app=thunderbird --config=patcher-configs/moz19-thunderbird-branch-major-update-patcher2.cfg

# FIXME - patcher needs to see that the MARs that it thinks are partials
#             are there or else it will not attempt to generate patchinfo
$> cd temp/thunderbird
$> ln -s 3.0 2.0.0.23-3.0
$> cd ../..

# Create partial patches and snippets
$> ./patcher2.pl --create-patches --app=thunderbird --config=patcher-configs/moz19-thunderbird-branch-major-update-patcher2.cfg 2>&1 | tee ../2.0.0.23-3.0.log

Quick verify

Check that releasetest = beta = release.

cd temp/thunderbird/2.0.0.23-3.0
# releasetest == beta
$> find aus2.test -type d -iregex '.*/releasetest$' | perl -nle '$a = $_; $a =~ s/releasetest/beta/; $a =~ s/aus2\.test/aus2/; system("diff -r -u $_ $a");'
$> find aus2 -type d -iregex '.*/beta$' | perl -nle '$a = $_; $a =~ s/beta$/releasetest/; $a =~ s/aus2/aus2.test/; system("diff -r -u $_ $a");'

# beta == release
$> find aus2 -type d -iregex '.*/beta$' | perl -nle '$a = $_; $a =~ s/beta/release/; system("diff -r -u $_ $a");'
$> find aus2 -type d -iregex '.*/release$' | perl -nle '$a = $_; $a =~ s/release$/beta/; system("diff -r -u $_ $a");'

Push to AUS

$> cd /builds/3.0.11-3.5rc3build2-major-update-test/snippets/patcher/temp/firefox/3.0.11-3.5rc3
$> mkdir 20091206-Thunderbird-2.0.0.23-3.0-MU-test 20091206-Thunderbird-2.0.0.23-3.0-MU
$> rsync -av aus2.test/ 20091206-Thunderbird-2.0.0.23-3.0-MU-test/
$> rsync -av aus2/ 20091206-Thunderbird-2.0.0.23-3.0-MU/
$> tar zcvf 20091206-Thunderbird-2.0.0.23-3.0-MU.tar.gz 20091206-Thunderbird-2.0.0.23-3.0-MU-test 20091206-Thunderbird-2.0.0.23-3.0-MU
$> scp 20091206-Thunderbird-2.0.0.23-3.0-MU.tar.gz gozer@mpt-vpn.mozilla.com:
# gozer@mpt-vpn.mozilla.com
$> scp 20091206-Thunderbird-2.0.0.23-3.0-MU.tar.gz aus2-staging.mozilla.org:/tmp/
# aus2-staging.mozilla.org
$> cd /opt/aus2/snippets/staging && tar zxvf /tmp/20091206-Thunderbird-2.0.0.23-3.0-MU.tar.gz

Enable test snippets

# cltbld@aus2-staging
$> ~/bin/backupsnip 20091206-Thunderbird-2.0.0.23-3.0-MU-test
$> ~/bin/pushsnip   20091206-Thunderbird-2.0.0.23-3.0-MU-test

Stage & Rename files

# tbirdbld@stage.mozilla.org
$> mkdir ~/thunderbird-3.0 && cd ~/thunderbird-3.0
# No peeking
$> chmod 700 ~/thunderbird-3.0
# Copy 3.0 rc3
$> rsync -av \
     --exclude="*.log" \
     --exclude="*.txt" \
     --exclude="*unsigned*" \
     --exclude="*.partial.mar" \
     --exclude="*.crashreporter-symbols.zip" \
     --exclude="MD5SUMS" --exclude="MD5SUMS.asc" \
     --exclude="SHA1SUMS" --exclude="SHA1SUMS.asc" \
     /pub/mozilla.org/thunderbird/nightly/3.0rc3-candidates/build1/ \
     ~/thunderbird-3.0/ 
# Grab solaris builds from rc2
$> rsync -av \
     --exclude="*.partial.mar" --exclude="*.partial.mar.*sum" \
     /pub/mozilla.org/thunderbird/releases/3.0rc2/contrib* \
     ~/thunderbird-3.0/
# Check for renaming:
$> find . -type f | perl -lne 'print if s/(.*)(:?rc| RC )[2-3]/join " ", "mv", quotemeta($_), quotemeta($1)/e' 

# Rename
$> find . -type f | perl -lne 'print if s/(.*)(:?rc| RC )[2-3]/join " ", "mv", quotemeta($_), quotemeta($1)/e' 2>&1 | sh -x | tee ../thunderbird-3.0-rename.log
# Get shipped-locales
$> wget -O~/thunderbird-3.0-shipped-locales http://hg.mozilla.org/releases/comm-1.9.1/raw-file/THUNDERBIRD_3_0rc3_RELEASE/mail/locales/shipped-locales

# Verify locales
$> cp -f ~cltbld/bin/verify-locales.pl ~/
# XXX: Fixme, deal with hard-coded 'Firefox'
$> perl -pi -e's/Firefox/Thunderbird/g' ~/verify-locales.pl
$> perl -pi -e's/firefox/thunderbird/g' ~/verify-locales.pl
$> ~/verify-locales.pl \
     -m ~/thunderbird-3.0-shipped-locales \
     -l bz2 \
     -d ~/thunderbird-3.0
# PASS: all files present, no extras
# Rergenerate MD5/SHA1 checksum files
$> ( cd ~/thunderbird-3.0 && ~cltbld/bin/checksum-files . )

# Verify checksums are good
$> ( cd ~/thunderbird-3.0 && md5sum -c ~/thunderbird-3.0/MD5SUMS   ) | cut -d: -f2 | sort | uniq -c
# 439  OK
$> ( cd ~/thunderbird-3.0 && sha1sum -c ~/thunderbird-3.0/SHA1SUMS ) | cut -d: -f2 | sort | uniq -c
# 439 OK
# Sanity set ownership
$> chown -R tbirdbld:thunderbird ~/thunderbird-3.0
# Create empty index.html files
for dir in `find ~/thunderbird-3.0 -type d -mindepth 1`; do touch index.html $dir/; done
# Pretty, consistent last-modified times
$> find . -print0 | xargs -0 touch -c -t 200912072000
# Verify permission and ownership
find . ! -user tbirdbld
find . ! -group thunderbird
find . -type f ! -perm 644
find . -mindepth 1 -type d ! -perm 755 ! -name 'contrib*'
find . -maxdepth 1 -type d ! -perm 2775 -name 'contrib*'
# Push to ftp.m.o
rsync -av ~/thunderbird-3.0/ /pub/mozilla.org/thunderbird/releases/3.0/