cosmetical changes to make Firefox and SeaMonkey release config/master files even more similar
authorRobert Kaiser <kairo@kairo.at>
Tue, 31 Aug 2010 14:43:46 +0200
changeset 2916 8e3fa7a209b6b7e85a23f7107f7dec061cb85b75
parent 2915 9683b4334aa91844d650069711b276da7e902883
child 2917 739804317c6691deb0fdcd8f07737661cf808f18
push id2297
push userkairo@kairo.at
push dateTue, 31 Aug 2010 12:43:54 +0000
cosmetical changes to make Firefox and SeaMonkey release config/master files even more similar
seamonkey/release-comm-1.9.1.py
seamonkey/release-comm-central-trunk.py
seamonkey/release_master.py
--- a/seamonkey/release-comm-1.9.1.py
+++ b/seamonkey/release-comm-1.9.1.py
@@ -16,16 +16,21 @@ venkmanRepoRevision        = 'f13c813e4e
 venkmanRelbranchOverride   = 'COMM_1_9_1_BRANCH'
 chatzillaRepoPath          = 'chatzilla' # leave empty if chatzilla is not to be tagged
 chatzillaRepoRevision      = 'f5fd1b073bf8'
 chatzillaRelbranchOverride = 'COMM_1_9_1_BRANCH'
 l10nRepoPath               = 'releases/l10n-mozilla-1.9.1'
 l10nRevisionFile           = 'l10n-changesets'
 cvsroot                    = ':ext:seabld@cvs.mozilla.org:/cvsroot' # for patcher, etc.
 productVersionFile         = 'suite/config/version-191.txt'
+# mergeLocales allows missing localized strings to be filled in by their en-US
+# equivalent string. This is on (True) by default for nightly builds, but
+# should be False for releases *EXCEPT* alphas and early betas. If in doubt,
+# ask release-drivers.
+mergeLocales               = False
 productName                = 'seamonkey'
 brandName                  = 'SeaMonkey'
 appName                    = 'suite'
 # Sometimes we need the application version to be different from what we "call"
 # the build, eg public release candidates for a major release (3.1 RC1).
 # appVersion and oldAppVersion are optional definitions used in places that
 # don't care about what we call it. Eg, when version bumping we will bump to
 # appVersion, not version.
@@ -37,21 +42,26 @@ baseTag                    = 'SEAMONKEY_
 oldVersion                 = '2.0.6'
 oldAppVersion              = oldVersion
 oldBuildNumber             = 1
 oldBaseTag                 = 'SEAMONKEY_2_0_6'
 enUSPlatforms              = ('linux', 'linux64', 'win32', 'macosx')
 l10nPlatforms              = ('linux', 'win32', 'macosx')
 patcherConfig              = 'moz191-seamonkey-branch-patcher2.cfg'
 patcherToolsTag            = 'UPDATE_PACKAGING_R11'
+binaryName                 = brandName
+oldBinaryName              = binaryName
 ftpServer                  = 'ftp.mozilla.org'
 stagingServer              = 'stage-old.mozilla.org'
 talosTestPlatforms         = ()
 unittestPlatforms          = ()
 bouncerServer              = 'download.mozilla.org'
 ausServerUrl               = 'https://aus2-community.mozilla.org'
 testOlderPartials          = True
 releaseNotesUrl            = None
 useBetaChannel             = 1
 verifyConfigs              = {'linux':  'moz191-seamonkey-linux.cfg',
                               'macosx': 'moz191-seamonkey-mac.cfg',
                               'win32':  'moz191-seamonkey-win32.cfg'}
 majorUpdateRepoPath        = None
+# Tuxedo/Bouncer related - XXX: atm not allowed for SeaMonkey
+#tuxedoConfig        = 'seamonkey-tuxedo.ini'
+#tuxedoServerUrl     = 'https://bounceradmin.mozilla.com/api/'
--- a/seamonkey/release-comm-central-trunk.py
+++ b/seamonkey/release-comm-central-trunk.py
@@ -16,16 +16,21 @@ venkmanRepoRevision        = '5d2f0995ba
 venkmanRelbranchOverride   = 'COMM20b4_20100815_RELBRANCH'
 chatzillaRepoPath          = 'chatzilla' # leave empty if chatzilla is not to be tagged
 chatzillaRepoRevision      = '2c5f8e558d1d'
 chatzillaRelbranchOverride = 'COMM20b4_20100815_RELBRANCH'
 l10nRepoPath               = 'l10n-central'
 l10nRevisionFile           = 'l10n-changesets'
 cvsroot                    = ':ext:seabld@cvs.mozilla.org:/cvsroot' # for patcher, etc.
 productVersionFile         = 'suite/config/version.txt'
+# mergeLocales allows missing localized strings to be filled in by their en-US
+# equivalent string. This is on (True) by default for nightly builds, but
+# should be False for releases *EXCEPT* alphas and early betas. If in doubt,
+# ask release-drivers.
+mergeLocales               = False
 productName                = 'seamonkey'
 brandName                  = 'SeaMonkey'
 appName                    = 'suite'
 # Sometimes we need the application version to be different from what we "call"
 # the build, eg public release candidates for a major release (3.1 RC1).
 # appVersion and oldAppVersion are optional definitions used in places that
 # don't care about what we call it. Eg, when version bumping we will bump to
 # appVersion, not version.
@@ -37,21 +42,26 @@ baseTag                    = 'SEAMONKEY_
 oldVersion                 = '2.1a2'
 oldAppVersion              = oldVersion
 oldBuildNumber             = 2
 oldBaseTag                 = 'SEAMONKEY_2_1a2'
 enUSPlatforms              = ('linux', 'linux64', 'win32', 'macosx')
 l10nPlatforms              = ()
 patcherConfig              = 'moz20-seamonkey-branch-patcher2.cfg'
 patcherToolsTag            = 'UPDATE_PACKAGING_R12'
+binaryName                 = brandName
+oldBinaryName              = binaryName
 ftpServer                  = 'ftp.mozilla.org'
 stagingServer              = 'stage-old.mozilla.org'
 talosTestPlatforms         = ()
 unittestPlatforms          = ()
 bouncerServer              = 'download.mozilla.org'
 ausServerUrl               = 'https://aus2-community.mozilla.org'
 testOlderPartials          = False
 releaseNotesUrl            = None
 useBetaChannel             = 0
 verifyConfigs              = {'linux':  'moz20-seamonkey-linux.cfg',
                               'macosx': 'moz20-seamonkey-mac.cfg',
                               'win32':  'moz20-seamonkey-win32.cfg'}
 majorUpdateRepoPath        = None
+# Tuxedo/Bouncer related - XXX: atm not allowed for SeaMonkey
+#tuxedoConfig        = 'seamonkey-tuxedo.ini'
+#tuxedoServerUrl     = 'https://bounceradmin.mozilla.com/api/'
--- a/seamonkey/release_master.py
+++ b/seamonkey/release_master.py
@@ -6,17 +6,18 @@ import buildbotcustom.misc
 import buildbotcustom.process.factory
 
 from buildbotcustom.l10n import DependentL10n
 from buildbotcustom.misc import get_l10n_repositories, isHgPollerTriggered, \
   generateTestBuilderNames, generateCCTestBuilder
 from buildbotcustom.process.factory import StagingRepositorySetupFactory, \
   ReleaseTaggingFactory, CCSourceFactory, CCReleaseBuildFactory, \
   ReleaseUpdatesFactory, UpdateVerifyFactory, ReleaseFinalVerification, \
-  L10nVerifyFactory, CCReleaseRepackFactory, MajorUpdateFactory
+  L10nVerifyFactory, CCReleaseRepackFactory, UnittestPackagedBuildFactory, \
+  MajorUpdateFactory, TuxedoEntrySubmitterFactory
 from buildbotcustom.changes.ftppoller import FtpPoller
 
 # this is where all of our important configuration is stored. build number,
 # version number, sign-off revisions, etc.
 import release_config
 reload(release_config)
 from release_config import *
 
@@ -109,28 +110,29 @@ if majorUpdateRepoPath:
         majorUpdateBuilderNames.append('%s_major_update_verify' % platform)
     major_update_verify_scheduler = Triggerable(
         name='major_update_verify',
         builderNames=majorUpdateBuilderNames
     )
     schedulers.append(major_update_verify_scheduler)
 
 for platform in unittestPlatforms:
-    platform_test_builders = []
-    base_name = branchConfig['platforms'][platform]['base_name']
-    for suites_name, suites in branchConfig['unittest_suites']:
-        platform_test_builders.extend(generateTestBuilderNames('%s_test' % platform, suites_name, suites))
+    if branchConfig['platforms'][platform]['enable_opt_unittests']:
+        platform_test_builders = []
+        base_name = branchConfig['platforms'][platform]['base_name']
+        for suites_name, suites in branchConfig['unittest_suites']:
+            platform_test_builders.extend(generateTestBuilderNames('%s_test' % platform, suites_name, suites))
 
-    s = Scheduler(
-     name='%s_release_unittest' % platform,
-     treeStableTimer=0,
-     branch='%s-release-unittest' % platform,
-     builderNames=platform_test_builders,
-    )
-    schedulers.append(s)
+        s = Scheduler(
+         name='%s_release_unittest' % platform,
+         treeStableTimer=0,
+         branch='release-%s-%s-opt-unittest' % (sourceRepoName, platform),
+         builderNames=platform_test_builders,
+        )
+        schedulers.append(s)
 
 # Purposely, there is not a Scheduler for ReleaseFinalVerification
 # This is a step run very shortly before release, and is triggered manually
 # from the waterfall
 
 ##### Builders
 repositories = {
     sourceRepoPath: {
@@ -236,17 +238,18 @@ for platform in enUSPlatforms:
     if platform in talosTestPlatforms:
         talosMasters = branchConfig['talos_masters']
     else:
         talosMasters = None
 
     if platform in unittestPlatforms:
         packageTests = True
         unittestMasters = branchConfig['unittest_masters']
-        unittestBranch = '%s-release-unittest' % platform
+        unittestBranch = 'release-%s-%s-opt-unittest' % (sourceRepoName,
+                                                         platform)
     else:
         packageTests = False
         unittestMasters = None
         unittestBranch = None
 
     build_factory = CCReleaseBuildFactory(
         env=pf['env'],
         objdir=pf['platform_objdir'],
@@ -302,16 +305,17 @@ for platform in enUSPlatforms:
             brandName=brandName,
             repoPath=sourceRepoPath,
             mozRepoPath=mozillaRepoPath,
             inspectorRepoPath=inspectorRepoPath,
             venkmanRepoPath=venkmanRepoPath,
             chatzillaRepoPath=chatzillaRepoPath,
             cvsroot=cvsroot,
             l10nRepoPath=l10nRepoPath,
+            mergeLocales=mergeLocales,
             stageServer=branchConfig['stage_server'],
             stageUsername=branchConfig['stage_username'],
             stageSshKey=branchConfig['stage_ssh_key'],
             buildToolsRepoPath=branchConfig['build_tools_repo_path'],
             compareLocalesRepoPath=branchConfig['compare_locales_repo_path'],
             compareLocalesTag=branchConfig['compare_locales_tag'],
             buildSpace=2,
             configRepoPath=branchConfig['config_repo_path'],
@@ -328,28 +332,28 @@ for platform in enUSPlatforms:
         builders.append({
             'name': '%s_repack' % platform,
             'slavenames': branchConfig['l10n_slaves'][platform],
             'category': 'release',
             'builddir': '%s_repack' % platform,
             'factory': repack_factory
         })
 
-    if platform in unittestPlatforms:
+    if pf['enable_opt_unittests']:
         mochitestLeakThreshold = pf.get('mochitest_leak_threshold', None)
         crashtestLeakThreshold = pf.get('crashtest_leak_threshold', None)
         for suites_name, suites in branchConfig['unittest_suites']:
             # Release builds on mac don't have a11y enabled, do disable the mochitest-a11y test
-            if platform == 'macosx' and 'mochitest-a11y' in suites:
+            if platform.startswith('macosx') and 'mochitest-a11y' in suites:
                 suites = suites[:]
                 suites.remove('mochitest-a11y')
 
             test_builders.extend(generateCCTestBuilder(
                 branchConfig, 'release', platform, "%s_test" % platform,
-                "release-%s-unittest" % (platform,),
+                'release-%s-%s-opt-unittest' % (sourceRepoName, platform),
                 suites_name, suites, mochitestLeakThreshold,
                 crashtestLeakThreshold))
 
 for platform in l10nPlatforms:
     l10n_verification_factory = L10nVerifyFactory(
         hgHost=branchConfig['hghost'],
         buildToolsRepoPath=branchConfig['build_tools_repo_path'],
         cvsroot=cvsroot,
@@ -402,16 +406,18 @@ updates_factory = ReleaseUpdatesFactory(
     ausSshKey=branchConfig['aus2_ssh_key'],
     ausHost=branchConfig['aus2_host'],
     ausServerUrl=ausServerUrl,
     hgSshKey=hgSshKey,
     hgUsername=hgUsername,
     clobberURL=branchConfig['base_clobber_url'],
     oldRepoPath=sourceRepoPath,
     releaseNotesUrl=releaseNotesUrl,
+    binaryName=binaryName,
+    oldBinaryName=oldBinaryName,
     testOlderPartials=testOlderPartials
 )
 
 builders.append({
     'name': 'updates',
     'slavenames': branchConfig['platforms']['linux']['slaves'],
     'category': 'release',
     'builddir': 'updates',
@@ -510,16 +516,41 @@ if majorUpdateRepoPath:
         builders.append({
             'name': '%s_major_update_verify' % platform,
             'slavenames': branchConfig['platforms'][platform]['slaves'],
             'category': 'release',
             'builddir': '%s_major_update_verify' % platform,
             'factory': major_update_verify_factory,
         })
 
+# XXX: SeaMonkey atm doesn't have permission to use this :(
+#bouncer_submitter_factory = TuxedoEntrySubmitterFactory(
+#    baseTag=baseTag,
+#    appName=appName,
+#    config=tuxedoConfig,
+#    productName=productName,
+#    version=version,
+#    milestone=milestone,
+#    tuxedoServerUrl=tuxedoServerUrl,
+#    enUSPlatforms=enUSPlatforms,
+#    l10nPlatforms=l10nPlatforms,
+#    oldVersion=oldVersion,
+#    hgHost=branchConfig['hghost'],
+#    repoPath=sourceRepoPath,
+#    buildToolsRepoPath=branchConfig['build_tools_repo_path'],
+#    credentialsFile=os.path.join(os.getcwd(), "BuildSlaves.py"),
+#)
+
+#builders.append({
+#    'name': 'bouncer_submitter',
+#    'slavenames': branchConfig['platforms']['linux']['slaves'],
+#    'category': 'release',
+#    'builddir': 'bouncer_submitter',
+#    'factory': bouncer_submitter_factory
+#})
 
 status.append(TinderboxMailNotifier(
     fromaddr="comm.buildbot@build.mozilla.org",
     tree=branchConfig["tinderbox_tree"] + "-Release",
     extraRecipients=["tinderbox-daemon@tinderbox.mozilla.org",],
     relayhost="mail.build.mozilla.org",
     builders=[b['name'] for b in builders],
     logCompression="bzip2")