Backout Bug 607392 - split tagging into en-US and other. r=backout
authorMassimo Gervasini <mgervasini@mozilla.com>
Wed, 17 Dec 2014 16:36:02 +0100 (2014-12-17)
changeset 4012 f2b3032210ba1ce1afef0c58ddbb9faf20ac7d44
parent 4011 9e35b6086760f69c824cb9af8a966aba0ffcae34
child 4013 a725eaab414a58d7adc97dcc4a713ee441d15f93
child 4017 8c49633d616db315f0a8da484faf92cc3e592cdc
push id3318
push usermgervasini@mozilla.com
push dateWed, 17 Dec 2014 15:57:36 +0000 (2014-12-17)
reviewersbackout
bugs607392
Backout Bug 607392 - split tagging into en-US and other. r=backout
process/release.py
--- a/process/release.py
+++ b/process/release.py
@@ -63,19 +63,16 @@ def generateReleaseBranchObjects(release
     tools_repo_path = releaseConfig.get('build_tools_repo_path',
                                         branchConfig['build_tools_repo_path'])
     tools_repo = '%s%s' % (branchConfig['hgurl'], tools_repo_path)
     config_repo = '%s%s' % (branchConfig['hgurl'],
                             branchConfig['config_repo_path'])
     mozharness_repo_path = releaseConfig.get('mozharness_repo_path',
                                              branchConfig['mozharness_repo_path'])
     mozharness_repo = '%s%s' % (branchConfig['hgurl'], mozharness_repo_path)
-    with_l10n = len(releaseConfig['l10nPlatforms']) > 0 or \
-        (releaseConfig.get('enableMultiLocale') and \
-        releaseConfig.get('multilocale_config', {}).get('platforms'))
     clobberer_url = releaseConfig.get('base_clobber_url',
                                       branchConfig['base_clobber_url'])
     balrog_api_root = releaseConfig.get('balrog_api_root',
                                         branchConfig.get('balrog_api_root', None))
     balrog_username = releaseConfig.get('balrog_username',
                                         branchConfig.get('balrog_username', None))
 
     branchConfigFile = getRealpath('localconfig.py')
@@ -339,17 +336,17 @@ def generateReleaseBranchObjects(release
         if not releaseConfig.get('skip_repo_setup'):
             clone_repositories = dict()
             # The repo_setup builder only needs to the repoPath, so we only
             # give it that
             for sr in releaseConfig['sourceRepositories'].values():
                 clone_repositories.update({sr['clonePath']: {}})
             # get_l10n_repositories spits out more than just the repoPath
             # It's easier to just pass it along rather than strip it out
-            if with_l10n:
+            if len(releaseConfig['l10nPlatforms']) > 0:
                 l10n_clone_repos = get_l10n_repositories(
                     releaseConfig['l10nRevisionFile'],
                     releaseConfig['l10nRepoClonePath'],
                     sourceRepoInfo['relbranch'])
                 clone_repositories.update(l10n_clone_repos)
 
             pf = branchConfig['platforms']['linux']
             hgSshKey = releaseConfig['hgSshKey']
@@ -395,106 +392,64 @@ def generateReleaseBranchObjects(release
                 slaves=all_slaves,
                 category=builderPrefix(''),
                 properties={
                     'platform': None,
                     'branch': 'release-%s' % sourceRepoInfo['name'],
                 },
             ))
 
-    dummy_tag_builders = []
     if not releaseConfig.get('skip_tag'):
         pf = branchConfig['platforms']['linux']
         tag_env = builder_env.copy()
         if pf['env'].get('PATH'):
             tag_env['PATH'] = pf['env']['PATH']
         if pf['env'].get('HG_SHARE_BASE_DIR', None):
             tag_env['HG_SHARE_BASE_DIR'] = pf['env']['HG_SHARE_BASE_DIR']
 
-        # Other includes mozharness, required for Mobile Builds
-        tag_source_factory = ScriptFactory(
+        tag_factory = ScriptFactory(
             scriptRepo=tools_repo,
             scriptName='scripts/release/tagging.sh',
             use_mock=use_mock('linux'),
             mock_target=pf.get('mock_target'),
             mock_packages=pf.get('mock_packages'),
             mock_copyin_files=pf.get('mock_copyin_files'),
             env=tag_env,
-            extra_data={"tag_args": "--tag-source  --tag-other"}
         )
 
         builders.append({
-            'name': builderPrefix('%s_tag_source' % releaseConfig['productName']),
+            'name': builderPrefix('%s_tag' % releaseConfig['productName']),
             'slavenames': pf['slaves'],
             'category': builderPrefix(''),
-            'builddir': builderPrefix('%s_tag_source' % releaseConfig['productName']),
+            'builddir': builderPrefix('%s_tag' % releaseConfig['productName']),
             'slavebuilddir': normalizeName(
                 builderPrefix('%s_tag' % releaseConfig['productName'])),
-            'factory': tag_source_factory,
+            'factory': tag_factory,
             'env': tag_env,
             'properties': {
                 'builddir': builderPrefix(
-                    '%s_tag_source' % releaseConfig['productName']),
+                    '%s_tag' % releaseConfig['productName']),
                 'slavebuilddir': normalizeName(
-                    builderPrefix('%s_tag_source' % releaseConfig['productName'])),
+                    builderPrefix('%s_tag' % releaseConfig['productName'])),
                 'release_config': releaseConfigFile,
                 'platform': None,
                 'branch': 'release-%s' % sourceRepoInfo['name'],
                 'event_group': 'tag',
-                'script_repo_revision': releaseTag,
             }
         })
-
-        if with_l10n:
-            tag_l10n_factory = ScriptFactory(
-                scriptRepo=tools_repo,
-                scriptName='scripts/release/tagging.sh',
-                use_mock=use_mock('linux'),
-                mock_target=pf.get('mock_target'),
-                mock_packages=pf.get('mock_packages'),
-                mock_copyin_files=pf.get('mock_copyin_files'),
-                env=tag_env,
-                extra_data={"tag_args": "--tag-l10n"},
-            )
-
-            builders.append({
-                'name': builderPrefix('%s_tag_l10n' % releaseConfig['productName']),
-                'slavenames': pf['slaves'] + branchConfig['platforms']['linux64']['slaves'],
-                'category': builderPrefix(''),
-                'builddir': builderPrefix('%s_tag_l10n' % releaseConfig['productName']),
-                'slavebuilddir': normalizeName(
-                    builderPrefix('%s_tag_l10n' % releaseConfig['productName'])),
-                'factory': tag_l10n_factory,
-                'env': tag_env,
-                'properties': {
-                    'builddir': builderPrefix(
-                        '%s_tag_l10n' % releaseConfig['productName']),
-                    'slavebuilddir': normalizeName(
-                        builderPrefix('%s_tag_l10n' % releaseConfig['productName'])),
-                    'release_config': releaseConfigFile,
-                    'platform': None,
-                    'branch': 'release-%s' % sourceRepoInfo['name'],
-                    'script_repo_revision': releaseTag,
-                }
-            })
-        else:
-            dummy_tag_builders.append("l10n")
     else:
-        dummy_tag_builders.extend(["source", "l10n"])
-        for dummy in dummy_tag_builders:
-            builders.append(makeDummyBuilder(
-                            name=builderPrefix('%s_tag_%s' %
-                                               releaseConfig['productName'], dummy),
-                            slaves=all_slaves,
-                            category=builderPrefix(''),
-                            properties={
-                                'platform': None,
-                                'branch': 'release-%s' % sourceRepoInfo['name'],
-                            },
-                            ))
+        builders.append(makeDummyBuilder(
+            name=builderPrefix('%s_tag' % releaseConfig['productName']),
+            slaves=all_slaves,
+            category=builderPrefix(''),
+            properties={
+                'platform': None,
+                'branch': 'release-%s' % sourceRepoInfo['name'],
+            },
+        ))
 
     if not releaseConfig.get('skip_source'):
         pf = branchConfig['platforms']['linux']
         mozconfig = 'linux/%s/release' % sourceRepoInfo['name']
         platform_env = pf['env'].copy()
         platform_env['COMM_REV'] = releaseTag
         platform_env['MOZILLA_REV'] = releaseTag
         # do not use use_mock(platform) check because we are building source
@@ -650,22 +605,26 @@ def generateReleaseBranchObjects(release
             unittestMasters = None
             unittestBranch = None
 
         if not releaseConfig.get('skip_build'):
             platform_env = pf['env'].copy()
             platform_env['MOZ_UPDATE_CHANNEL'] = releaseChannel
             platform_env['COMM_REV'] = releaseTag
             platform_env['MOZILLA_REV'] = releaseTag
+            if platform in releaseConfig['l10nPlatforms']:
+                triggeredSchedulers = [builderPrefix('%s_repack' % platform)]
+            else:
+                triggeredSchedulers = None
             multiLocaleConfig = releaseConfig.get(
                 'multilocale_config', {}).get('platforms', {}).get(platform)
             mozharnessMultiOptions = releaseConfig.get(
                 'multilocale_config', {}).get('multilocaleOptions')
             balrog_credentials_file = releaseConfig.get('balrog_credentials_file',
-                                                        branchConfig.get('balrog_credentials_file', None))
+                branchConfig.get('balrog_credentials_file', None))
             # Turn pymake on by default for Windows, and off by default for
             # other platforms.
             if 'win' in platform:
                 enable_pymake = pf.get('enable_pymake', True)
             else:
                 enable_pymake = pf.get('enable_pymake', False)
             build_factory = ReleaseBuildFactory(
                 env=platform_env,
@@ -700,16 +659,17 @@ def generateReleaseBranchObjects(release
                 partialUpdates=partialUpdates,
                 talosMasters=talosMasters,
                 packageTests=packageTests,
                 unittestMasters=unittestMasters,
                 unittestBranch=unittestBranch,
                 clobberURL=clobberer_url,
                 clobberBranch='release-%s' % sourceRepoInfo['name'],
                 triggerBuilds=True,
+                triggeredSchedulers=triggeredSchedulers,
                 stagePlatform=buildbot2ftp(platform),
                 multiLocale=bool(releaseConfig.get('enableMultiLocale', False) and
                                  pf.get('multi_locale', False)),
                 multiLocaleMerge=releaseConfig.get('mergeLocales', False),
                 compareLocalesRepoPath=branchConfig[
                     'compare_locales_repo_path'],
                 mozharnessRepoPath=mozharness_repo_path,
                 mozharnessTag=releaseTag,
@@ -876,17 +836,17 @@ def generateReleaseBranchObjects(release
                     ])
                     if releaseConfig.get('l10nUsePymake', True) and \
                        platform in ('win32', 'win64'):
                         extra_args.append('--use-pymake')
                     if releaseConfig.get('enablePartialMarsAtBuildTime', True):
                         extra_args.append('--generate-partials')
                     if pf.get('tooltool_l10n_manifest_src'):
                         extra_args.extend(['--tooltool-manifest',
-                                          pf.get('tooltool_l10n_manifest_src')])
+                            pf.get('tooltool_l10n_manifest_src')])
                     if pf.get('tooltool_script'):
                         for script in pf['tooltool_script']:
                             extra_args.extend(['--tooltool-script', script])
                     for url in branchConfig['tooltool_url_list']:
                         extra_args.extend(['--tooltool-url', url])
                     if balrog_api_root:
                         extra_args.extend([
                             "--balrog-api-root", balrog_api_root,
@@ -1174,17 +1134,17 @@ def generateReleaseBranchObjects(release
             not releaseConfig.get('skip_updates'):
         pf = branchConfig['platforms']['linux']
         try:
             moz_repo_path = releaseConfig[
                 'sourceRepositories']['mozilla']['path']
         except KeyError:
             moz_repo_path = sourceRepoInfo['path']
         balrog_credentials_file = releaseConfig.get('balrog_credentials_file',
-                                                    branchConfig.get('balrog_credentials_file', None))
+            branchConfig.get('balrog_credentials_file', None))
         updates_factory = ReleaseUpdatesFactory(
             hgHost=branchConfig['hghost'],
             repoPath=sourceRepoInfo['path'],
             buildToolsRepoPath=tools_repo_path,
             configRepoPath=branchConfig['config_repo_path'],
             patcherConfig=releaseConfig['patcherConfig'],
             verifyConfigs=releaseConfig['verifyConfigs'],
             appName=releaseConfig['appName'],
@@ -1634,17 +1594,17 @@ def generateReleaseBranchObjects(release
         bouncer_submitter_factory = ScriptFactory(
             scriptRepo=mozharness_repo,
             scriptName="scripts/bouncer_submitter.py",
             extra_args=extra_args,
             use_credentials_file=True,
         )
 
         builders.append({
-            'name': builderPrefix('%s_bouncer_submitter' % releaseConfig['productName']),
+            'name': builderPrefix('%s_bouncer_submitter' % releaseConfig['productName'] ),
             'slavenames': branchConfig['platforms']['linux']['slaves'] +
             branchConfig['platforms']['linux64']['slaves'],
             'category': builderPrefix(''),
             'builddir': builderPrefix('%s_bouncer_submitter' % releaseConfig['productName']),
             'slavebuilddir': normalizeName(builderPrefix('bncr_sub'), releaseConfig['productName']),
             'factory': bouncer_submitter_factory,
             'env': builder_env,
             'properties': {
@@ -1671,94 +1631,78 @@ def generateReleaseBranchObjects(release
     if releaseConfig.get('enable_repo_setup'):
         repo_setup_scheduler = Dependent(
             name=builderPrefix('%s_repo_setup' % releaseConfig['productName']),
             upstream=reset_schedulers_scheduler,
             builderNames=[builderPrefix(
                 '%s_repo_setup' % releaseConfig['productName'])],
         )
         schedulers.append(repo_setup_scheduler)
-        tag_source_scheduler = Dependent(
-            name=builderPrefix('%s_tag_source' % releaseConfig['productName']),
+        tag_scheduler = Dependent(
+            name=builderPrefix('%s_tag' % releaseConfig['productName']),
             upstream=repo_setup_scheduler,
             builderNames=[builderPrefix(
-                '%s_tag_source' % releaseConfig['productName'])],
+                '%s_tag' % releaseConfig['productName'])],
         )
     else:
-        tag_source_scheduler = Dependent(
-            name=builderPrefix('%s_tag_source' % releaseConfig['productName']),
+        tag_scheduler = Dependent(
+            name=builderPrefix('%s_tag' % releaseConfig['productName']),
             upstream=reset_schedulers_scheduler,
             builderNames=[builderPrefix(
-                '%s_tag_source' % releaseConfig['productName'])],
+                '%s_tag' % releaseConfig['productName'])],
         )
+    schedulers.append(tag_scheduler)
 
-        tag_l10n_scheduler = Dependent(
-            name=builderPrefix('%s_tag_l10n' % releaseConfig['productName']),
-            upstream=reset_schedulers_scheduler,
-            builderNames=[builderPrefix(
-                '%s_tag_l10n' % releaseConfig['productName'])],
-        )
-    schedulers.append(tag_source_scheduler)
-    schedulers.append(tag_l10n_scheduler)
-
-    tag_source_downstream = [builderPrefix('%s_source' % releaseConfig[
-                                           'productName'])]
+    tag_downstream = [builderPrefix('%s_source' % releaseConfig[
+                                    'productName'])]
 
     if releaseConfig['buildNumber'] == 1 \
             and not releaseConfig.get('disableBouncerEntries'):
-        tag_source_downstream.append(builderPrefix('%s_bouncer_submitter' % releaseConfig['productName']))
+        tag_downstream.append(builderPrefix('%s_bouncer_submitter' % releaseConfig['productName']))
 
     if releaseConfig.get('xulrunnerPlatforms'):
-        tag_source_downstream.append(builderPrefix('xulrunner_source'))
+        tag_downstream.append(builderPrefix('xulrunner_source'))
         xr_postrelease_scheduler = Triggerable(
             name=builderPrefix('xr_postrelease'),
             builderNames=[builderPrefix('xr_postrelease')],
         )
         schedulers.append(xr_postrelease_scheduler)
 
     for platform in releaseConfig['enUSPlatforms']:
-        tag_source_downstream.append(builderPrefix('%s_build' % platform))
+        tag_downstream.append(builderPrefix('%s_build' % platform))
         if platform in releaseConfig['notifyPlatforms']:
             important_builders.append(builderPrefix('%s_build' % platform))
         if platform in releaseConfig['l10nPlatforms']:
             if platform in releaseConfig.get('l10nNotifyPlatforms', []):
                 important_builders.append(builderPrefix('%s_repack_complete' % platform))
             l10nBuilderNames = l10nBuilders(platform).values()
-            repack_upstream = [
-                builderPrefix('%s_build' % platform),
-                builderPrefix('%s_tag_l10n' % releaseConfig['productName']),
-            ]
-
-            repack_scheduler = AggregatingScheduler(
-                 name=builderPrefix('%s_repack' % platform),
-                 branch=sourceRepoInfo['path'],
-                 upstreamBuilders=repack_upstream,
-                 builderNames=l10nBuilderNames,
-                 properties={'script_repo_revision': releaseTag, },)
-
+            repack_scheduler = Triggerable(
+                name=builderPrefix('%s_repack' % platform),
+                builderNames=l10nBuilderNames,
+            )
             schedulers.append(repack_scheduler)
             repack_complete_scheduler = AggregatingScheduler(
                 name=builderPrefix('%s_repack_complete' % platform),
                 branch=sourceRepoInfo['path'],
                 upstreamBuilders=l10nBuilderNames,
                 builderNames=[builderPrefix('repack_complete', platform), ]
             )
             schedulers.append(repack_complete_scheduler)
 
     for platform in releaseConfig.get('xulrunnerPlatforms', []):
-        tag_source_downstream.append(builderPrefix('xulrunner_%s_build' % platform))
+        tag_downstream.append(builderPrefix('xulrunner_%s_build' % platform))
 
     DependentID = makePropertiesScheduler(
         Dependent, [buildIDSchedFunc, buildUIDSchedFunc])
 
     schedulers.append(
         DependentID(
             name=builderPrefix('%s_build' % releaseConfig['productName']),
-            upstream=tag_source_scheduler,
-            builderNames=tag_source_downstream,
+            upstream=tag_scheduler,
+            builderNames=tag_downstream,
         ))
 
     for platform in releaseConfig['unittestPlatforms']:
         platform_test_builders = []
         for suites_name, suites in branchConfig['unittest_suites']:
             platform_test_builders.extend(
                 generateTestBuilderNames(
                     builderPrefix('%s_test' % platform),