Releases/Thunderbird 3.1.2/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, jhopkins

Notes

Generate major update

# ssh cltbld@momo-build-adm-01
$> cd patcher/mozilla/tools
# Edit the appropriate patcher-config/*.cfg file.
# - Change the http:// paths between <current-update>.
# - Paste in the <release 3.1> tag (adjust for the version you are releasing)
# - Edit the "from=" and "to=" values as needed.

# Download .mar files locally (choose one)
# TB 3.1.x
$> ./patcher2.pl --download --app=thunderbird --config=../patcher-configs/moz192-thunderbird-branch-major-update-patcher2.cfg
# TB 3.0.x
$> ./patcher2.pl --download --app=thunderbird --config=../patcher-configs/moz19-thunderbird-branch-major-update-patcher2.cfg
# TB 2.x
$> ./patcher2.pl --download --app=thunderbird --config=../patcher-configs/moz19-thunderbird-branch-major-update-patcher2.cfg

# Create magic symlink(s) before generating snippets
# 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.1 2.0.0.24-3.1
$> ln -s 3.1 3.0.5-3.1
$> cd ../..

# Create partial patches and snippets for 3.0.x / mozilla-1.9.1
$> ./patcher2.pl --create-patches --app=thunderbird --config=patcher-configs/moz19-thunderbird-branch-major-update-patcher2.cfg

# tar things up
$> cd temp/thunderbird
$> cd 3.0.6-3.1.1 # symlink made earlier
$> # Check that releasetest = beta = release.
$> patch-quick-verify
$> mv aus2 20100716-Thunderbird-3.0.6-3.1.1-MU
$> mv aus2.test 20100716-Thunderbird-3.0.6-3.1.1-MU-test
$> tar cvzf 20100716-Thunderbird-3.0.6-3.1.1-MU.tgz 20100716-Thunderbird-3.0.6-3.1.1-MU
$> tar cvzf 20100716-Thunderbird-3.0.6-3.1.1-MU-test.tgz 20100716-Thunderbird-3.0.6-3.1.1-MU-test
# Create partial patches and snippets for 3.1.x / mozilla-1.9.2
$> ./patcher2.pl --create-patches --app=thunderbird --config=../patcher-configs/moz192-thunderbird-branch-major-update-patcher2.cfg
# tar things up (see above)

Push to AUS

$> 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
$> SSH_AUTH_SOCK= 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.24-3.1-MU-test
$> ~/bin/pushsnip   20091206-Thunderbird-2.0.0.24-3.1-MU-test
$> ~/bin/pushsnip   20100622-Thunderbird-3.0.5-3.1-MU-test

Stage & Rename files

# tbirdbld@stage.mozilla.org
$> mkdir ~/thunderbird-3.1 && cd ~/thunderbird-3.1
# No peeking
$> chmod 700 ~/thunderbird-3.1
# Copy 3.1 rc2
$> rsync -av \
     /pub/mozilla.org/thunderbird/releases/3.1rc2/ \
     ~/thunderbird-3.1/ 
# Remove partial upgrades if they aren't useful (eg. RC1 -> RC2)
$> find ~/thunderbird-3.1 -name '*partial.mar' -print0 | xargs -0 rm
# 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.1-shipped-locales http://hg.mozilla.org/releases/comm-1.9.2/raw-file/THUNDERBIRD_3_1_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.1-shipped-locales \
     -l bz2 \
     -d ~/thunderbird-3.1
# PASS: all files present, no extras
# Rergenerate MD5/SHA1 checksum files
$> ( cd ~/thunderbird-3.1 && ~cltbld/bin/checksum-files . )

# Verify checksums are good
$> ( cd ~/thunderbird-3.1 && md5sum -c ~/thunderbird-3.0/MD5SUMS   ) | cut -d: -f2 | sort | uniq -c
# 439  OK
$> ( cd ~/thunderbird-3.1 && sha1sum -c ~/thunderbird-3.0/SHA1SUMS ) | cut -d: -f2 | sort | uniq -c
# 439 OK

# Sanity set ownership
$> chown -R tbirdbld:thunderbird ~/thunderbird-3.1

# Create empty index.html files
for dir in `find ~/thunderbird-3.1 -type d -mindepth 1`; do touch $dir/index.html; done

# 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*'

# Pretty, consistent last-modified times
$> find . -print0 | xargs -0 touch -c -t 201006241000
# Push to ftp.m.o
rsync -av ~/thunderbird-3.1/ /pub/mozilla.org/thunderbird/releases/3.1/

Attach CVS patch to Bug

eg. Bug 579142

Attach a patch (cvs diff -u) and request review from a colleague.

Once reviewed, submit the patch to CVS.

Send a notification email

Let people know what's been done. Note: this is a wide list so keep traffic low.

To: thunderbird-drivers@mozilla.org
Subj: Thunderbird 2.0.0.24 => 3.1.1 Major Update available in test channels"

Thunderbird 2.0.0.24 => 3.1.1 Major Update available in betatest and releasetest channels, unthrottled.


Message #tb-qa and #tbdrivers on IRC.