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

Side by Side Diff: tools/release/chromium_roll.py

Issue 918953003: Include range summary when rolling into chromium. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 10 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 unified diff | Download patch
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2014 the V8 project authors. All rights reserved. 2 # Copyright 2014 the V8 project authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 import argparse 6 import argparse
7 import os 7 import os
8 import sys 8 import sys
9 9
10 from common_includes import * 10 from common_includes import *
11 11
12 12
13 ROLL_SUMMARY = ("Summary of changes available at:\n"
14 "https://chromium.googlesource.com/v8/v8/+log/%s..%s")
15
16
13 class Preparation(Step): 17 class Preparation(Step):
14 MESSAGE = "Preparation." 18 MESSAGE = "Preparation."
15 19
16 def RunStep(self): 20 def RunStep(self):
17 # Update v8 remote tracking branches. 21 # Update v8 remote tracking branches.
18 self.GitFetchOrigin() 22 self.GitFetchOrigin()
19 23
20 24
21 class DetectLastPush(Step): 25 class DetectLastPush(Step):
22 MESSAGE = "Detect commit ID of last release." 26 MESSAGE = "Detect commit ID of last release."
23 27
24 def RunStep(self): 28 def RunStep(self):
25 # The revision that should be rolled. 29 # The revision that should be rolled.
26 self["last_push"] = self._options.last_push or self.GetLatestRelease() 30 self["last_push"] = self._options.last_push or self.GetLatestRelease()
27 self["push_title"] = self.GitLog(n=1, format="%s", 31 self["push_title"] = self.GitLog(n=1, format="%s",
28 git_hash=self["last_push"]) 32 git_hash=self["last_push"])
29 33
34 # The master revision this release is based on.
35 self["push_base"] = self.GetLatestReleaseBase()
36
37 # FIXME(machenbach): Manually specifying a revision doesn't work at the
38 # moment. Needs more complicated logic to find the correct push_base above.
39 # Maybe delete that parameter entirely?
tandrii(chromium) 2015/02/13 22:29:08 +1 for deleting it based on this rational, yet I d
Michael Achenbach 2015/02/16 12:20:28 Some weird historical stuff. Probably needed if a
40 assert not self._options.last_push
41
42 # Determine the master revision of the last roll.
43 version = self.GetVersionTag(self._options.last_roll)
44 assert version
45 self["last_rolled_base"] = self.GetLatestReleaseBase(version=version)
46 assert self["last_rolled_base"]
47
30 48
31 class SwitchChromium(Step): 49 class SwitchChromium(Step):
32 MESSAGE = "Switch to Chromium checkout." 50 MESSAGE = "Switch to Chromium checkout."
33 51
34 def RunStep(self): 52 def RunStep(self):
35 self["v8_path"] = os.getcwd() 53 self["v8_path"] = os.getcwd()
36 cwd = self._options.chromium 54 cwd = self._options.chromium
37 os.chdir(cwd) 55 os.chdir(cwd)
38 self.InitialEnvironmentChecks(cwd) 56 self.InitialEnvironmentChecks(cwd)
39 # Check for a clean workdir. 57 # Check for a clean workdir.
(...skipping 22 matching lines...) Expand all
62 class UploadCL(Step): 80 class UploadCL(Step):
63 MESSAGE = "Create and upload CL." 81 MESSAGE = "Create and upload CL."
64 82
65 def RunStep(self): 83 def RunStep(self):
66 # Patch DEPS file. 84 # Patch DEPS file.
67 if self.Command( 85 if self.Command(
68 "roll-dep", "v8 %s" % self["last_push"], 86 "roll-dep", "v8 %s" % self["last_push"],
69 cwd=self._options.chromium) is None: 87 cwd=self._options.chromium) is None:
70 self.Die("Failed to create deps for %s" % self["last_push"]) 88 self.Die("Failed to create deps for %s" % self["last_push"])
71 89
72 commit_title = "Update V8 to %s." % self["push_title"].lower() 90 message = []
73 sheriff = "" 91 message.append("Update V8 to %s." % self["push_title"].lower())
92
93 message.append(
94 ROLL_SUMMARY % (self["last_rolled_base"][:8], self["push_base"][:8]))
tandrii(chromium) 2015/02/13 22:29:08 8chars*4bits = 32 bits should be enough for everyb
Michael Achenbach 2015/02/16 12:20:28 I actually ran a test once over our repo and found
tandrii(chromium) 2015/02/16 14:32:28 So, I actually had some fun with this Birthday's p
Jakob Kummerow 2015/02/16 19:54:55 Just give it 12 chars or so (or 20, I don't care),
95
74 if self["sheriff"]: 96 if self["sheriff"]:
75 sheriff = ("\n\nPlease reply to the V8 sheriff %s in case of problems." 97 message.append("Please reply to the V8 sheriff %s in case of problems."
76 % self["sheriff"]) 98 % self["sheriff"])
77 self.GitCommit("%s%s\n\nTBR=%s" % 99 message.append("TBR=%s" % self._options.reviewer)
78 (commit_title, sheriff, self._options.reviewer), 100 self.GitCommit("\n\n".join(message),
79 author=self._options.author, 101 author=self._options.author,
80 cwd=self._options.chromium) 102 cwd=self._options.chromium)
81 if not self._options.dry_run: 103 if not self._options.dry_run:
82 self.GitUpload(author=self._options.author, 104 self.GitUpload(author=self._options.author,
83 force=True, 105 force=True,
84 cq=self._options.use_commit_queue, 106 cq=self._options.use_commit_queue,
85 cwd=self._options.chromium) 107 cwd=self._options.chromium)
86 print "CL uploaded." 108 print "CL uploaded."
87 else: 109 else:
88 self.GitCheckout("master", cwd=self._options.chromium) 110 self.GitCheckout("master", cwd=self._options.chromium)
(...skipping 23 matching lines...) Expand all
112 Command("rm", "-f %s*" % self._config["PERSISTFILE_BASENAME"]) 134 Command("rm", "-f %s*" % self._config["PERSISTFILE_BASENAME"])
113 135
114 136
115 class ChromiumRoll(ScriptsBase): 137 class ChromiumRoll(ScriptsBase):
116 def _PrepareOptions(self, parser): 138 def _PrepareOptions(self, parser):
117 parser.add_argument("-c", "--chromium", required=True, 139 parser.add_argument("-c", "--chromium", required=True,
118 help=("The path to your Chromium src/ " 140 help=("The path to your Chromium src/ "
119 "directory to automate the V8 roll.")) 141 "directory to automate the V8 roll."))
120 parser.add_argument("-l", "--last-push", 142 parser.add_argument("-l", "--last-push",
121 help="The git commit ID of the last candidates push.") 143 help="The git commit ID of the last candidates push.")
144 parser.add_argument("--last-roll", required=True,
145 help="The git commit ID of the last rolled version.")
122 parser.add_argument("--use-commit-queue", 146 parser.add_argument("--use-commit-queue",
123 help="Check the CQ bit on upload.", 147 help="Check the CQ bit on upload.",
124 default=False, action="store_true") 148 default=False, action="store_true")
125 149
126 def _ProcessOptions(self, options): # pragma: no cover 150 def _ProcessOptions(self, options): # pragma: no cover
127 if not options.author or not options.reviewer: 151 if not options.author or not options.reviewer:
128 print "A reviewer (-r) and an author (-a) are required." 152 print "A reviewer (-r) and an author (-a) are required."
129 return False 153 return False
130 154
131 options.requires_editor = False 155 options.requires_editor = False
(...skipping 14 matching lines...) Expand all
146 SwitchChromium, 170 SwitchChromium,
147 UpdateChromiumCheckout, 171 UpdateChromiumCheckout,
148 UploadCL, 172 UploadCL,
149 SwitchV8, 173 SwitchV8,
150 CleanUp, 174 CleanUp,
151 ] 175 ]
152 176
153 177
154 if __name__ == "__main__": # pragma: no cover 178 if __name__ == "__main__": # pragma: no cover
155 sys.exit(ChromiumRoll().Run()) 179 sys.exit(ChromiumRoll().Run())
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698