Releases/Fennec 5.0b2/BuildNotes

From MozillaWiki
Jump to: navigation, search

Build Engineers

lsblakk - bug 657534

Bugs encountered

Signed-off Revision(s)

Build # mozilla-beta mozilla-mobile-5.0 mobile-5.0
build 1 2b3275216413 bcee0240fb3d f1ffec845642

Tags

Build # Tag Moz Changeset Mobile Changeset
build 1 GECKO50b2_20110517_RELBRANCH 294c0ae7e546 19dca3f7b59e
FENNEC_5_0b2_RELEASE, FENNEC_5_0b2_BUILD1 7cc870162042 7d60b014a2b0

Build data

Build # Type Build ID Build machine
build 1 Android 20110517210224 mv-moz2-linux-ix-slave20
Maemo5-GTK 20110517201152 mv-moz2-linux-ix-slave19
Linux 20110517211259 mv-moz2-linux-ix-slave18
Mac 20110517235604 moz2-darwin9-slave20
Windows 20110517223911 win32-slave46

Notes

Be very careful if you merge on a build > 1 to not overwrite confvars.sh

Build 1

Setup

Repos

To prepare the split repos I tried to run:

hg clone http://hg.mozilla.org/releases/mozilla-mobile-5.0
hg clone http://hg.mozilla.org/releases/mobile-5.0

cd mozilla-mobile-5.0
hg pull http://hg.mozilla.org/releases/mozilla-beta -r 2b3275216413
hg up
hg push -e 'ssh -i ~/.ssh/ffxbld_dsa -l ffxbld' ssh://hg.mozilla.org/releases/mozilla-mobile-5.0
hg ident
hg branch
hg branch 5.0b2_build1

cd ../mobile-5.0
hg branch
hg branch 5.0b2_build1

cd ../mozilla-mobile-5.0/mobile
rsync -av . ../../mobile-5.0/.
cd ../../mobile-5.0
hg addremove
hg commit
hg push -e 'ssh -i ~/.ssh/ffxbld_dsa -l ffxbld' ssh://hg.mozilla.org/releases/mobile-5.0

cd ../mozilla-mobile-5.0
hg rm mobile
hg commit
hg push -f -e 'ssh -i ~/.ssh/ffxbld_dsa -l ffxbld' ssh://hg.mozilla.org/releases/mozilla-mobile-5.0

Which failed, resulted in an empty changeset on mobile-5.0 and I had to re-do manually. Next time add -m "commit message" to the commits and -f to the pushes to hg to force.

l10n changesets

dashboard changesets - though I actually committed them without the single locale 'android' platform listed (config patch).

Start

  • Landed config
  • Landed mozharness debsign bumps
  • Pulled & updated /tools/buildbotcustom/buildbotcustom because of changes jhford landed
  • reconfig'd master
  • Checked that slaves were allocated (still there from 5.0b1 -- added "return builders" section to end of notes)
  • First sendchange failed right away due to forgetting to clobber the builders (clobbered mv-moz2-linux-ix-slave20 /builds/slave/mobile_* and got the source dir too)
  • Second sendchange:
buildbot sendchange --user lsblakk --master localhost:9010 --branch=releases/mobile-5.0 "Fennec 5.0b2 build1" doit

Tag

No problems mv-moz2-linux-ix-slave20

  • Tagged buildbot-configs/buildbotcustom/mozharness/tools with FENNEC_5_0b2_RELEASE and FENNEC_5_0b2_BUILD1

Source

No problems mv-moz2-linux-ix-slave18

Build/Repack

No problems on builds see Build Data Table

repack

Aki noticed the Maemo5 GTK single-locale repacks all failed (mv-moz2-linux-ix-slave19).

Looking at the buildbot logs, the first repack didn't clone; it pulled in an existing repo. This is problematic after a version change as it saved the previous results from configure; this means the |make wget-en-US| looked for fennec-5.0a2.en-US.linux-gnueabi-arm.tar.bz2 instead of fennec-5.0.en-US.linux-gnueabi-arm.tar.bz2 .

Aki clobbered mv-moz2-linux-ix-slave19:/scratchbox/users/cltbld/home/cltbld/build/mozilla-mobile-5.0-maemo5-gtk-l10n-release and retriggered via force build (en_revision FENNEC_5_0b2_RELEASE, l10n_revision FENNEC_5_0b2_RELEASE, locale ___). Some locales weren't repacked even in this second round so Lukas went around against and forced build on the missing locales.

Sign Android

Created /home/ftp/pub/mozilla.org/mobile/candidates/5.0b2-candidates/build1/android-r7 as ffxbld@stage.m.o and then ran the sign_android.sh script in ~ on keymaster, with the variables updated.

export VERSION=5.0b2
export PRODUCT=fennec
export BUILD=build1

# on keymaster in ~/signing-work
cd ~/signing-work
mkdir $PRODUCT-$VERSION
cd $PRODUCT-$VERSION/

# we sign both en-US and multi 
# need sep dirs since they are both named gecko-unsigned-unaligned.apk
echo "Creating directories"
mkdir -p $BUILD/en-US
mkdir $BUILD/multi
echo "Getting the unsigned apks"
# get en-US apk
cd $BUILD/en-US/
wget http://stage.mozilla.org/pub/mozilla.org/mobile/candidates/$VERSION-candidates/$BUILD/unsigned/android-r7/en-US/gecko-unsigned-unaligned.apk
# get multi apk 
cd ../multi/
wget http://stage.mozilla.org/pub/mozilla.org/mobile/candidates/$VERSION-candidates/$BUILD/unsigned/android-r7/multi/gecko-unsigned-unaligned.apk

# put the signing script in the ~/signing-work/fennec-4.0rc1/ dir
echo "Copying signing script from hg-tools"
cd  ~/signing-work/$PRODUCT-$VERSION/
cp ~/hg-tools/release/signing/* .
# copy the en-US apk up to pwd for signing -- there is a bug on this 
# (608432), it's because sign_android.sh relies on mozpass.py and that has to
# be in the same dir as .apk to work
echo "Prepare to sign en-US"
cp $BUILD/en-US/gecko-unsigned-unaligned.apk .
./sign_android.sh 
# if any problems with signing, remove gecko-unaligned.apk and start again
# signing successful?  copy back to the en-US
echo "en-US signed, cleaning up"
mv gecko-unaligned.apk $BUILD/en-US/
# rename the fennec.apk, then move
mv $PRODUCT.apk $PRODUCT-$VERSION.en-US.eabi-arm.apk
mv $PRODUCT-$VERSION.en-US.eabi-arm.apk $BUILD/en-US/
# clean up any left overs  
rm *.apk
# repeat for multi
echo "Prepare to sign multi"
cp $BUILD/multi/gecko-unsigned-unaligned.apk .
./sign_android.sh 
echo "multi signed, cleaning up"
mv gecko-unaligned.apk $BUILD/multi/
mv $PRODUCT.apk $PRODUCT-$VERSION.multi.eabi-arm.apk
mv $PRODUCT-$VERSION.multi.eabi-arm.apk $BUILD/multi/
rm *.apk
# upload to stage
cd $BUILD/ 
echo "Uploading signed builds"
scp -i ~/.ssh/ffxbld_dsa -r * ffxbld@stage.mozilla.org:/home/ftp/pub/mobile/candidates/$VERSION-candidates/$BUILD/android-r7

Note that if you enter the keystore wrong, this still creates the fennec apk and you have to re-do it. I did this twice, third time was the charm.

Deb Repos

Triggered the mozilla-mobile-5.0 deb sign release builder, no problems.

Push Live

Copy bits to releases/
# ffxbld@stage /home/ftp/pub/mobile/releases
mkdir 5.0b2
cd 5.0b2

# exclude *old* to avoid copying in the old original android apk
# exclude maemo5-gtk to skip single locale repacks
rsync --dry-run -av --exclude=unsigned --exclude=*.txt --exclude=*crashreporter* --exclude=*tests* --exclude=*unaligned* --exclude=*old* --exclude=maemo5-gtk ../../candidates/5.0b2-candidates/build1/. .
rsync -av --exclude=unsigned --exclude=*.txt --exclude=*crashreporter* --exclude=*tests* --exclude=*unaligned* --exclude=*old* --exclude=maemo5-gtk ../../candidates/5.0b2-candidates/build1/. .
mkdir maemo5-gtk
cd maemo5-gtk
rsync --dry-run -av --exclude=unsigned --exclude=*.txt --exclude=*crashreporter* --exclude=*tests* --exclude=*unaligned* --exclude=*old* ../../../candidates/5.0b2-candidates/build1/maemo5-gtk/multi .
rsync -av --exclude=unsigned --exclude=*.txt --exclude=*crashreporter* --exclude=*tests* --exclude=*unaligned* --exclude=*old* --exclude=maemo5-gtk ../../../candidates/5.0b2-candidates/build1/maemo5-gtk/multi .
cd ..

# and repos
mkdir repos
rsync -av --exclude=*.install ../../candidates/5.0b2-candidates/repos/ repos/

# symlink repos
ln -s repos maemo
cd ..
rm latest-*; ln -s 5.0b2 latest-beta; ln -s 5.0b2 latest-alpha

# link freemantle to chinook for multi deb repo
# in /home/ftp/pub/mobile/releases/5.0b2/maemo/multi/dists
ln -s freemantle chinook

# aki copied over single-repack xpis at request
cd /home/ftp/pub/mobile/candidates
for i in `ls -1` ; do   mkdir ../../../../releases/5.0b2/maemo5-gtk/$i; cp $i/*.xpi ../../../../releases/5.0b2/maemo5-gtk/$i/; done

Create bouncer entry for maemo

Firefox-Mobile-5.0b2 maemo /mobile/releases/maemo/:lang/firefox-beta.install

Android Market

Updated the saved Draft .apk for Firefox Beta with the necessary screenshots, localized descriptions, and published it after the official "go" email was sent out and the bits were released.

Notes on the Market

This was the first release where we took over entering the Market info. It is important to know that if you do not enter all the required fields in your initial attempt to fill out and save a Draft that it will not save anything. In the post-mortem for this release I will advise the Mobile release team to provide all the required information in a zipped folder, in ONE bug that is attached to the release tracking bug, so that the release engineer does not have to go chasing down all this information.

Checklist of what was required: For the whole app you need:

  • Assets
    • At least 2 screenshots - the order you upload them in is important and so the mobile team should make sure the image names reflect the order they want them in (ie: fennec_$version_#.png)
      • 320 x 480, 480 x 800, 480 x 854, 1280 x 800 24 bit PNG or JPEG (no alpha)
    • High Resolution Application Icon
      • 512w x 512h 32 bit PNG or JPEG Maximum: 1024 KB
    • Feature Graphic
      • 1024w x 500h 24 bit PNG or JPEG (no alpha)

Note: Promotional graphic is listed as "optional" but if you put promotional text (80 chars max) in the Listing info the graphic is no longer optional. We are also investigating where the 'Promotional Graphic' is used since the Android Market docs are vague and it's possibly related to the install view icon being very small right now. Waiting on a Promo Graphic to test out this theory - see bug 652652

For each locale (minimum is en-US):

  • Listing
    • Title (localized versions have this field required as well for any locale added)
    • Description (same as title, required per locale)
    • Recent Changes (can be localized but not required per locale)
    • Promo Text (can be localized, not required but if it's there then you have to have a Promo Graphic too)

In the 'Listing' section you have to set (for the app):

  • Application type: Applications
  • Category : Productivity
  • Price is set to Free by default (account type)

You also have to set Contact Information:

Check the two consent boxes at the bottom and you should now be able to save your Draft and make adjustments as needed before publishing.

Release the Builders!

Unlock from bb07 master, and reboot them.