Bug 1344229 - alter version bumping to prevent race conditions. r=rail a=release DONTBUILD draft
authorMihai Tabara <mtabara@mozilla.com>
Fri, 10 Mar 2017 23:24:12 +0000
changeset 496953 b6cd22a15bfe2dc874940089f1cd49b320cf18b3
parent 496768 a8d497b09753c91783b68c5805c64f34a2f39629
child 548761 db3e9b2d5bb41d8ec44a8383c5da730bb9b5a851
push id48754
push userbmo:mtabara@mozilla.com
push dateFri, 10 Mar 2017 23:25:13 +0000
reviewersrail, release
bugs1344229
milestone55.0a1
Bug 1344229 - alter version bumping to prevent race conditions. r=rail a=release DONTBUILD MozReview-Commit-ID: Fy38tKghu2M
testing/mozharness/scripts/release/postrelease_version_bump.py
--- a/testing/mozharness/scripts/release/postrelease_version_bump.py
+++ b/testing/mozharness/scripts/release/postrelease_version_bump.py
@@ -153,20 +153,27 @@ class PostReleaseVersionBump(MercurialSc
     def pull(self):
         super(PostReleaseVersionBump, self).pull(
                 repos=self.query_repos())
 
     def bump_postrelease(self, *args, **kwargs):
         """Bump version"""
         dirs = self.query_abs_dirs()
         for f in self.config["version_files"]:
-            curr_version = ".".join(
-                self.get_version(dirs['abs_gecko_dir'], f["file"]))
-            self.replace(os.path.join(dirs['abs_gecko_dir'], f["file"]),
-                         curr_version, self.config["next_version"])
+            curr_version = self.get_version(dirs['abs_gecko_dir'], f["file"])
+            next_version = self.config['next_version'].split('.')
+
+            if next_version <= curr_version:
+                self.warning("Version bumping skipped due to conflicting values")
+                continue
+            else:
+                curr_version = ".".join(curr_version)
+                next_version = ".".join(next_version)
+                self.replace(os.path.join(dirs['abs_gecko_dir'], f["file"]),
+                             curr_version, self.config["next_version"])
 
     def tag(self):
         dirs = self.query_abs_dirs()
         tags = ["{product}_{version}_BUILD{build_number}",
                 "{product}_{version}_RELEASE"]
         tags = [t.format(product=self.config["product"].upper(),
                          version=self.config["version"].replace(".", "_"),
                          build_number=self.config["build_number"])