| Index: tools/release/chromium_roll.py
|
| diff --git a/tools/release/chromium_roll.py b/tools/release/chromium_roll.py
|
| index eb7c3b561b31b739ee34c256a1903f1ed2cc3629..de0a569a905d411817b0ac81254113202c4a30d6 100755
|
| --- a/tools/release/chromium_roll.py
|
| +++ b/tools/release/chromium_roll.py
|
| @@ -24,30 +24,21 @@ class Preparation(Step):
|
| def RunStep(self):
|
| # Update v8 remote tracking branches.
|
| self.GitFetchOrigin()
|
| + self.Git("fetch origin +refs/tags/*:refs/tags/*")
|
|
|
|
|
| -class DetectLastPush(Step):
|
| - MESSAGE = "Detect commit ID of last release."
|
| +class PrepareRollCandidate(Step):
|
| + MESSAGE = "Robustness checks of the roll candidate."
|
|
|
| def RunStep(self):
|
| - # The revision that should be rolled.
|
| - self["last_push"] = self._options.last_push or self.GetLatestRelease()
|
| - self["push_title"] = self.GitLog(n=1, format="%s",
|
| - git_hash=self["last_push"])
|
| + self["roll_title"] = self.GitLog(n=1, format="%s",
|
| + git_hash=self._options.roll)
|
|
|
| - # The master revision this release is based on.
|
| - self["push_base"] = self.GetLatestReleaseBase()
|
| -
|
| - # FIXME(machenbach): Manually specifying a revision doesn't work at the
|
| - # moment. Needs more complicated logic to find the correct push_base above.
|
| - # Maybe delete that parameter entirely?
|
| - assert not self._options.last_push
|
| -
|
| - # Determine the master revision of the last roll.
|
| + # Make sure the last roll and the roll candidate are releases.
|
| + version = self.GetVersionTag(self._options.roll)
|
| + assert version, "The revision to roll is not tagged."
|
| version = self.GetVersionTag(self._options.last_roll)
|
| - assert version
|
| - self["last_rolled_base"] = self.GetLatestReleaseBase(version=version)
|
| - assert self["last_rolled_base"]
|
| + assert version, "The revision used as last roll is not tagged."
|
|
|
|
|
| class SwitchChromium(Step):
|
| @@ -77,7 +68,7 @@ class UpdateChromiumCheckout(Step):
|
| # Update v8 remotes.
|
| self.GitFetchOrigin()
|
|
|
| - self.GitCreateBranch("v8-roll-%s" % self["last_push"],
|
| + self.GitCreateBranch("v8-roll-%s" % self._options.roll,
|
| cwd=self._options.chromium)
|
|
|
|
|
| @@ -87,15 +78,15 @@ class UploadCL(Step):
|
| def RunStep(self):
|
| # Patch DEPS file.
|
| if self.Command(
|
| - "roll-dep", "v8 %s" % self["last_push"],
|
| + "roll-dep", "v8 %s" % self._options.roll,
|
| cwd=self._options.chromium) is None:
|
| - self.Die("Failed to create deps for %s" % self["last_push"])
|
| + self.Die("Failed to create deps for %s" % self._options.roll)
|
|
|
| message = []
|
| - message.append("Update V8 to %s." % self["push_title"].lower())
|
| + message.append("Update V8 to %s." % self["roll_title"].lower())
|
|
|
| message.append(
|
| - ROLL_SUMMARY % (self["last_rolled_base"][:8], self["push_base"][:8]))
|
| + ROLL_SUMMARY % (self._options.last_roll[:8], self._options.roll[:8]))
|
|
|
| message.append(ISSUE_MSG)
|
|
|
| @@ -111,7 +102,7 @@ class UploadCL(Step):
|
| print "CL uploaded."
|
| else:
|
| self.GitCheckout("master", cwd=self._options.chromium)
|
| - self.GitDeleteBranch("v8-roll-%s" % self["last_push"],
|
| + self.GitDeleteBranch("v8-roll-%s" % self._options.roll,
|
| cwd=self._options.chromium)
|
| print "Dry run - don't upload."
|
|
|
| @@ -130,8 +121,8 @@ class CleanUp(Step):
|
|
|
| def RunStep(self):
|
| print("Congratulations, you have successfully rolled %s into "
|
| - "Chromium. Please don't forget to update the v8rel spreadsheet."
|
| - % self["last_push"])
|
| + "Chromium."
|
| + % self._options.roll)
|
|
|
| # Clean up all temporary files.
|
| Command("rm", "-f %s*" % self._config["PERSISTFILE_BASENAME"])
|
| @@ -142,10 +133,9 @@ class ChromiumRoll(ScriptsBase):
|
| parser.add_argument("-c", "--chromium", required=True,
|
| help=("The path to your Chromium src/ "
|
| "directory to automate the V8 roll."))
|
| - parser.add_argument("-l", "--last-push",
|
| - help="The git commit ID of the last candidates push.")
|
| parser.add_argument("--last-roll", required=True,
|
| help="The git commit ID of the last rolled version.")
|
| + parser.add_argument("roll", nargs=1, help="Revision to roll."),
|
| parser.add_argument("--use-commit-queue",
|
| help="Check the CQ bit on upload.",
|
| default=False, action="store_true")
|
| @@ -158,6 +148,7 @@ class ChromiumRoll(ScriptsBase):
|
| options.requires_editor = False
|
| options.force = True
|
| options.manual = False
|
| + options.roll = options.roll[0]
|
| return True
|
|
|
| def _Config(self):
|
| @@ -168,7 +159,7 @@ class ChromiumRoll(ScriptsBase):
|
| def _Steps(self):
|
| return [
|
| Preparation,
|
| - DetectLastPush,
|
| + PrepareRollCandidate,
|
| DetermineV8Sheriff,
|
| SwitchChromium,
|
| UpdateChromiumCheckout,
|
|
|