backed out rev 466c5a5a791c, to fix Firefox-38.0b7-build1 bustage. r=Sylvester
☠☠ backed out by 9689eb70face ☠ ☠
authorMassimo Gervasini <mgervasini@mozilla.com>
Fri, 24 Apr 2015 11:56:26 +0200 (2015-04-24)
changeset 4202 e42d4fea2bea64e12da51277b13095c85fed4761
parent 4198 bef73c6c14c7bdf051eca65f0d288e9979f83fcd
child 4203 6ead36e840c92b6773ac832830f241d9d2f5a2ea
child 4204 9689eb70facebddaf1de347f75b451e83468403c
push id3506
push usermgervasini@mozilla.com
push dateFri, 24 Apr 2015 09:56:49 +0000 (2015-04-24)
reviewersSylvester
backed out rev 466c5a5a791c, to fix Firefox-38.0b7-build1 bustage. r=Sylvester
common.py
process/factory.py
test/test_common.py
--- a/common.py
+++ b/common.py
@@ -1,12 +1,11 @@
 import re
 import time
 import uuid
-from distutils.version import LooseVersion, StrictVersion
 
 
 def getSupportedPlatforms():
     return ('linux', 'linuxqt', 'linux64',
             'win32', 'macosx', 'macosx64',
             'win64', 'android',
             'gb_armv7a_gecko', 'linux32_gecko',
             'macosx64_gecko', 'win32_gecko',
@@ -159,21 +158,8 @@ def normalizeName(name, product=None, mi
             origName, max_, name)
         raise ValueError(msg)
     # Add a seperator before the padding if necessary
     if len(name) < min_:
         name += '-'
     while len(name) < min_:
         name += filler
     return name
-
-
-def getPreviousVersion(version, partialVersions):
-    """ The patcher config bumper needs to know the exact previous version
-    We use LooseVersion for ESR because StrictVersion can't parse the trailing
-    'esr', but StrictVersion otherwise because it can sort X.0bN lower than X.0.
-    The current version is excluded to avoid an error if build1 is aborted
-    before running the updates builder and now we're doing build2
-    """
-    if version.endswith('esr'):
-        return str(max(LooseVersion(v) for v in partialVersions if v != version))
-    else:
-        return str(max(StrictVersion(v) for v in partialVersions if v != version))
--- a/process/factory.py
+++ b/process/factory.py
@@ -1,14 +1,15 @@
 
 from __future__ import absolute_import
 
 import os.path
 import re
 import random
+from distutils.version import LooseVersion
 
 from twisted.python import log
 
 from buildbot.process.buildstep import regex_log_evaluator
 from buildbot.process.factory import BuildFactory
 from buildbot.steps.shell import WithProperties
 from buildbot.steps.transfer import FileDownload, JSONPropertiesDownload, \
     JSONStringDownload
@@ -52,17 +53,17 @@ from buildbotcustom.steps.misc import Ti
     MozillaClobberer, FindFile, DownloadFile, UnpackFile, \
     SetBuildProperty, DisconnectStep, OutputStep, \
     RepackPartners, UnpackTest, FunctionalStep, setBuildIDProps
 from buildbotcustom.steps.source import MercurialCloneCommand
 from buildbotcustom.steps.test import GraphServerPost
 from buildbotcustom.steps.signing import SigningServerAuthenication
 from buildbotcustom.env import MozillaEnvironments
 from buildbotcustom.common import getSupportedPlatforms, getPlatformFtpDir, \
-    genBuildID, normalizeName, getPreviousVersion
+    genBuildID, normalizeName
 from buildbotcustom.steps.mock import MockReset, MockInit, MockCommand, \
     MockInstall, MockMozillaCheck, MockProperty, RetryingMockProperty, \
     RetryingMockCommand
 
 import buildbotcustom.steps.unittest as unittest_steps
 
 from buildbot.status.builder import SUCCESS, FAILURE, EXCEPTION, RETRY
 
@@ -3926,18 +3927,19 @@ class ReleaseUpdatesFactory(ReleaseFacto
         self.promptWaitTime = promptWaitTime
         self.balrog_api_root = balrog_api_root
         self.balrog_credentials_file = balrog_credentials_file
         self.balrog_username = balrog_username
         self.testChannel = localTestChannel
         self.releaseChannel = releaseChannel
         self.mar_channel_ids = mar_channel_ids
 
-        self.previousVersion = getPreviousVersion(self.version,
-                                                  self.partialUpdates.keys())
+#        # The patcher config bumper needs to know the exact previous version
+        self.previousVersion = str(
+            max(LooseVersion(v) for v in self.partialUpdates))
         self.patcherConfigFile = 'tools/release/patcher-configs/%s' % patcherConfig
         self.shippedLocales = self.getShippedLocales(self.repository, baseTag,
                                                      appName)
         self.brandName = brandName or productName.capitalize()
         self.releaseNotesUrl = releaseNotesUrl
 
         self.bumpConfigs()
         if self.balrog_api_root:
--- a/test/test_common.py
+++ b/test/test_common.py
@@ -1,11 +1,11 @@
 import unittest
 
-from buildbotcustom.common import normalizeName, getPreviousVersion
+from buildbotcustom.common import normalizeName
 
 
 class TestNormalizeName(unittest.TestCase):
     def testNoPrefix(self):
         self.assertEquals(normalizeName('mozilla-beta', min_=1), 'm-beta')
 
     def testExclusiveWordReplacement(self):
         self.assertEquals(normalizeName('errasdebug', min_=1), 'errasdebug')
@@ -18,35 +18,8 @@ class TestNormalizeName(unittest.TestCas
 
     def testPrefixDoesntViolateMax(self):
         got = normalizeName('comm-beta', product='thunderbird', min_=9, max_=9)
         self.assertEquals(got, 'tb-c-beta')
 
     def testPrefixDelimeterOnly(self):
         got = normalizeName('mozilla-release', min_=6, max_=6)
         self.assertEquals(got, 'm-rel-')
-
-
-class TestGetPreviousVersion(unittest.TestCase):
-    def testESR(self):
-        self.assertEquals('31.5.3esr',
-            getPreviousVersion('31.6.0esr', ['31.5.3esr', '31.5.2esr', '31.4.0esr']))
-
-    def testReleaseBuild1(self):
-        self.assertEquals('36.0.4',
-            getPreviousVersion('37.0', ['36.0.4', '36.0.1', '35.0.1']))
-
-    def testReleaseBuild2(self):
-        self.assertEquals('36.0.4',
-            getPreviousVersion('37.0', ['37.0', '36.0.4', '36.0.1', '35.0.1']))
-
-    def testBetaMidCycle(self):
-        self.assertEquals('37.0b4',
-            getPreviousVersion('37.0b5', ['37.0b4', '37.0b3']))
-
-    def testBetaEarlyCycle(self):
-        # 37.0 is the RC build
-        self.assertEquals('38.0b1',
-            getPreviousVersion('38.0b2', ['38.0b1', '37.0']))
-
-    def testBetaFirstInCycle(self):
-        self.assertEquals('37.0',
-            getPreviousVersion('38.0b1', ['37.0', '37.0b7']))