backed out rev 466c5a5a791c, to fix Firefox-38.0b7-build1 bustage. r=Sylvester
backed out rev 466c5a5a791c, to fix Firefox-38.0b7-build1 bustage. r=Sylvester
--- 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']))