Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(139)

Unified Diff: tools/push-to-trunk/push_to_trunk.py

Issue 868693002: Calculate new version based on latest tag when pushing. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/push-to-trunk/common_includes.py ('k') | tools/push-to-trunk/test_scripts.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/push-to-trunk/push_to_trunk.py
diff --git a/tools/push-to-trunk/push_to_trunk.py b/tools/push-to-trunk/push_to_trunk.py
index 6e821f2a0bff9b8f31c784750227ed517555aa69..a8c131f8c37cd2281473d5fe79401208baf38978 100755
--- a/tools/push-to-trunk/push_to_trunk.py
+++ b/tools/push-to-trunk/push_to_trunk.py
@@ -36,6 +36,7 @@ from common_includes import *
PUSH_MSG_GIT_SUFFIX = " (based on %s)"
PUSH_MSG_GIT_RE = re.compile(r".* \(based on (?P<git_rev>[a-fA-F0-9]+)\)$")
+VERSION_RE = re.compile(r"^\d+\.\d+\.\d+(?:\.\d+)?$")
class Preparation(Step):
MESSAGE = "Preparation."
@@ -44,6 +45,9 @@ class Preparation(Step):
self.InitialEnvironmentChecks(self.default_cwd)
self.CommonPrepare()
+ # Make sure tags are fetched.
+ self.Git("fetch origin +refs/tags/*:refs/tags/*")
+
if(self["current_branch"] == self.Config("TRUNKBRANCH")
or self["current_branch"] == self.Config("BRANCHNAME")):
print "Warning: Script started on branch %s" % self["current_branch"]
@@ -109,55 +113,37 @@ class DetectLastPush(Step):
self["last_push_bleeding_edge"] = last_push_bleeding_edge
-# TODO(machenbach): Code similarities with bump_up_version.py. Merge after
-# turning this script into a pure git script.
-class GetCurrentBleedingEdgeVersion(Step):
- MESSAGE = "Get latest bleeding edge version."
+class GetLatestVersion(Step):
+ MESSAGE = "Get latest version from tags."
def RunStep(self):
+ versions = sorted(filter(VERSION_RE.match, self.vc.GetTags()),
+ key=SortingKey, reverse=True)
+ self.StoreVersion(versions[0], "latest_")
+ self["latest_version"] = self.ArrayToVersion("latest_")
+
+ # The version file on master can be used to bump up major/minor at
+ # branch time.
self.GitCheckoutFile(VERSION_FILE, self.vc.RemoteMasterBranch())
+ self.ReadAndPersistVersion("master_")
+ self["master_version"] = self.ArrayToVersion("master_")
- # Store latest version.
- self.ReadAndPersistVersion("latest_")
- self["latest_version"] = self.ArrayToVersion("latest_")
- print "Bleeding edge version: %s" % self["latest_version"]
+ if SortingKey(self["master_version"]) > SortingKey(self["latest_version"]):
+ self["latest_version"] = self["master_version"]
+ self.StoreVersion(self["latest_version"], "latest_")
+
+ print "Determined latest version %s" % self["latest_version"]
class IncrementVersion(Step):
MESSAGE = "Increment version number."
def RunStep(self):
- # Retrieve current version from last trunk push.
- self.GitCheckoutFile(VERSION_FILE, self["last_push_trunk"])
- self.ReadAndPersistVersion()
- self["trunk_version"] = self.ArrayToVersion("")
-
- if self["latest_build"] == "9999": # pragma: no cover
- # If version control on bleeding edge was switched off, just use the last
- # trunk version.
- self["latest_version"] = self["trunk_version"]
-
- if SortingKey(self["trunk_version"]) < SortingKey(self["latest_version"]):
- # If the version on bleeding_edge is newer than on trunk, use it.
- self.GitCheckoutFile(VERSION_FILE, self.vc.RemoteMasterBranch())
- self.ReadAndPersistVersion()
-
- if self.Confirm(("Automatically increment BUILD_NUMBER? (Saying 'n' will "
- "fire up your EDITOR on %s so you can make arbitrary "
- "changes. When you're done, save the file and exit your "
- "EDITOR.)" % VERSION_FILE)):
-
- text = FileToText(os.path.join(self.default_cwd, VERSION_FILE))
- text = MSub(r"(?<=#define BUILD_NUMBER)(?P<space>\s+)\d*$",
- r"\g<space>%s" % str(int(self["build"]) + 1),
- text)
- TextToFile(text, os.path.join(self.default_cwd, VERSION_FILE))
- else:
- self.Editor(os.path.join(self.default_cwd, VERSION_FILE))
-
# Variables prefixed with 'new_' contain the new version numbers for the
# ongoing trunk push.
- self.ReadAndPersistVersion("new_")
+ self["new_major"] = self["latest_major"]
+ self["new_minor"] = self["latest_minor"]
+ self["new_build"] = str(int(self["latest_build"]) + 1)
# Make sure patch level is 0 in a new push.
self["new_patch"] = "0"
@@ -419,7 +405,7 @@ class PushToTrunk(ScriptsBase):
FreshBranch,
PreparePushRevision,
DetectLastPush,
- GetCurrentBleedingEdgeVersion,
+ GetLatestVersion,
IncrementVersion,
PrepareChangeLog,
EditChangeLog,
« no previous file with comments | « tools/push-to-trunk/common_includes.py ('k') | tools/push-to-trunk/test_scripts.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698