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

Side by Side Diff: tools/push-to-trunk/bump_up_version.py

Issue 601103003: Switch v8 mirror in version script. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | tools/push-to-trunk/test_scripts.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 """ 6 """
7 Script for auto-increasing the version on bleeding_edge. 7 Script for auto-increasing the version on bleeding_edge.
8 8
9 The script can be run regularly by a cron job. It will increase the build 9 The script can be run regularly by a cron job. It will increase the build
10 level of the version on bleeding_edge if: 10 level of the version on bleeding_edge if:
(...skipping 19 matching lines...) Expand all
30 30
31 class Preparation(Step): 31 class Preparation(Step):
32 MESSAGE = "Preparation." 32 MESSAGE = "Preparation."
33 33
34 def RunStep(self): 34 def RunStep(self):
35 # Check for a clean workdir. 35 # Check for a clean workdir.
36 if not self.GitIsWorkdirClean(): # pragma: no cover 36 if not self.GitIsWorkdirClean(): # pragma: no cover
37 # This is in case a developer runs this script on a dirty tree. 37 # This is in case a developer runs this script on a dirty tree.
38 self.GitStash() 38 self.GitStash()
39 39
40 # TODO(machenbach): This should be called master after the git switch. 40 self.GitCheckout("master")
41 self.GitCheckout("bleeding_edge")
42 41
43 self.GitPull() 42 self.GitPull()
44 43
45 # Ensure a clean version branch. 44 # Ensure a clean version branch.
46 self.DeleteBranch(VERSION_BRANCH) 45 self.DeleteBranch(VERSION_BRANCH)
47 46
48 47
49 class GetCurrentBleedingEdgeVersion(Step): 48 class GetCurrentBleedingEdgeVersion(Step):
50 MESSAGE = "Get latest bleeding edge version." 49 MESSAGE = "Get latest bleeding edge version."
51 50
52 def RunStep(self): 51 def RunStep(self):
53 # TODO(machenbach): This should be called master after the git switch. 52 self.GitCheckout("master")
54 self.GitCheckout("bleeding_edge")
55 53
56 # Store latest version and revision. 54 # Store latest version and revision.
57 self.ReadAndPersistVersion() 55 self.ReadAndPersistVersion()
58 self["latest_version"] = self.ArrayToVersion("") 56 self["latest_version"] = self.ArrayToVersion("")
59 self["latest"] = self.GitLog(n=1, format="%H") 57 self["latest"] = self.GitLog(n=1, format="%H")
60 print "Bleeding edge version: %s" % self["latest_version"] 58 print "Bleeding edge version: %s" % self["latest_version"]
61 59
62 60
63 # This step is pure paranoia. It forbids the script to continue if the last 61 # This step is pure paranoia. It forbids the script to continue if the last
64 # commit changed version.cc. Just in case the other bailout has a bug, this 62 # commit changed version.cc. Just in case the other bailout has a bug, this
(...skipping 16 matching lines...) Expand all
81 self["lkgr_svn"] = self.ReadURL(lkgr_url, wait_plan=[5]) 79 self["lkgr_svn"] = self.ReadURL(lkgr_url, wait_plan=[5])
82 80
83 81
84 # TODO(machenbach): Implement this for git. With a git lkgr we could simply 82 # TODO(machenbach): Implement this for git. With a git lkgr we could simply
85 # checkout that revision. With svn, we have to search backwards until that 83 # checkout that revision. With svn, we have to search backwards until that
86 # revision is found. 84 # revision is found.
87 class GetLKGRVersion(Step): 85 class GetLKGRVersion(Step):
88 MESSAGE = "Get bleeding edge lkgr version." 86 MESSAGE = "Get bleeding edge lkgr version."
89 87
90 def RunStep(self): 88 def RunStep(self):
91 self.GitCheckout("bleeding_edge") 89 self.GitCheckout("master")
92 # If the commit was made from svn, there is a mapping entry in the commit 90 # If the commit was made from svn, there is a mapping entry in the commit
93 # message. 91 # message.
94 self["lkgr"] = self.GitLog( 92 self["lkgr"] = self.GitLog(
95 grep="^git-svn-id: [^@]*@%s [A-Za-z0-9-]*$" % self["lkgr_svn"], 93 grep="^git-svn-id: [^@]*@%s [A-Za-z0-9-]*$" % self["lkgr_svn"],
96 format="%H") 94 format="%H")
97 95
98 # FIXME(machenbach): http://crbug.com/391712 can lead to svn lkgrs on the 96 # FIXME(machenbach): http://crbug.com/391712 can lead to svn lkgrs on the
99 # trunk branch (rarely). 97 # trunk branch (rarely).
100 if not self["lkgr"]: # pragma: no cover 98 if not self["lkgr"]: # pragma: no cover
101 self.Die("No git hash found for svn lkgr.") 99 self.Die("No git hash found for svn lkgr.")
102 100
103 self.GitCreateBranch(VERSION_BRANCH, self["lkgr"]) 101 self.GitCreateBranch(VERSION_BRANCH, self["lkgr"])
104 self.ReadAndPersistVersion("lkgr_") 102 self.ReadAndPersistVersion("lkgr_")
105 self["lkgr_version"] = self.ArrayToVersion("lkgr_") 103 self["lkgr_version"] = self.ArrayToVersion("lkgr_")
106 print "LKGR version: %s" % self["lkgr_version"] 104 print "LKGR version: %s" % self["lkgr_version"]
107 105
108 # Ensure a clean version branch. 106 # Ensure a clean version branch.
109 self.GitCheckout("bleeding_edge") 107 self.GitCheckout("master")
110 self.DeleteBranch(VERSION_BRANCH) 108 self.DeleteBranch(VERSION_BRANCH)
111 109
112 110
113 class LKGRVersionUpToDateBailout(Step): 111 class LKGRVersionUpToDateBailout(Step):
114 MESSAGE = "Stop script if the lkgr has a renewed version." 112 MESSAGE = "Stop script if the lkgr has a renewed version."
115 113
116 def RunStep(self): 114 def RunStep(self):
117 # If a version-change commit becomes the lkgr, don't bump up the version 115 # If a version-change commit becomes the lkgr, don't bump up the version
118 # again. 116 # again.
119 if VERSION_FILE in self.GitChangedFiles(self["lkgr"]): 117 if VERSION_FILE in self.GitChangedFiles(self["lkgr"]):
120 print "Stop because the lkgr is a version change itself." 118 print "Stop because the lkgr is a version change itself."
121 return True 119 return True
122 120
123 # Don't bump up the version if it got updated already after the lkgr. 121 # Don't bump up the version if it got updated already after the lkgr.
124 if SortingKey(self["lkgr_version"]) < SortingKey(self["latest_version"]): 122 if SortingKey(self["lkgr_version"]) < SortingKey(self["latest_version"]):
125 print("Stop because the latest version already changed since the lkgr " 123 print("Stop because the latest version already changed since the lkgr "
126 "version.") 124 "version.")
127 return True 125 return True
128 126
129 127
130 class GetTrunkVersion(Step): 128 class GetTrunkVersion(Step):
131 MESSAGE = "Get latest trunk version." 129 MESSAGE = "Get latest trunk version."
132 130
133 def RunStep(self): 131 def RunStep(self):
134 # TODO(machenbach): This should be called trunk after the git switch. 132 self.GitCheckout("candidates")
135 self.GitCheckout("master")
136 self.GitPull() 133 self.GitPull()
137 self.ReadAndPersistVersion("trunk_") 134 self.ReadAndPersistVersion("trunk_")
138 self["trunk_version"] = self.ArrayToVersion("trunk_") 135 self["trunk_version"] = self.ArrayToVersion("trunk_")
139 print "Trunk version: %s" % self["trunk_version"] 136 print "Trunk version: %s" % self["trunk_version"]
140 137
141 138
142 class CalculateVersion(Step): 139 class CalculateVersion(Step):
143 MESSAGE = "Calculate the new version." 140 MESSAGE = "Calculate the new version."
144 141
145 def RunStep(self): 142 def RunStep(self):
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 message = json.loads(status_json)["message"] 176 message = json.loads(status_json)["message"]
180 if re.search(r"maintenance|no commits", message, flags=re.I): 177 if re.search(r"maintenance|no commits", message, flags=re.I):
181 print "Skip version change by tree status: \"%s\"" % message 178 print "Skip version change by tree status: \"%s\"" % message
182 return True 179 return True
183 180
184 181
185 class ChangeVersion(Step): 182 class ChangeVersion(Step):
186 MESSAGE = "Bump up the version." 183 MESSAGE = "Bump up the version."
187 184
188 def RunStep(self): 185 def RunStep(self):
189 self.GitCreateBranch(VERSION_BRANCH, "bleeding_edge") 186 self.GitCreateBranch(VERSION_BRANCH, "master")
190 187
191 self.SetVersion(os.path.join(self.default_cwd, VERSION_FILE), "new_") 188 self.SetVersion(os.path.join(self.default_cwd, VERSION_FILE), "new_")
192 189
193 try: 190 try:
194 msg = "[Auto-roll] Bump up version to %s" % self["new_version"] 191 msg = "[Auto-roll] Bump up version to %s" % self["new_version"]
195 self.GitCommit("%s\n\nTBR=%s" % (msg, self._options.author), 192 self.GitCommit("%s\n\nTBR=%s" % (msg, self._options.author),
196 author=self._options.author) 193 author=self._options.author)
197 if self._options.svn: 194 if self._options.svn:
198 self.SVNCommit("branches/bleeding_edge", msg) 195 self.SVNCommit("branches/bleeding_edge", msg)
199 else: 196 else:
200 self.GitUpload(author=self._options.author, 197 self.GitUpload(author=self._options.author,
201 force=self._options.force_upload, 198 force=self._options.force_upload,
202 bypass_hooks=True) 199 bypass_hooks=True)
203 self.GitDCommit() 200 self.GitDCommit()
204 print "Successfully changed the version." 201 print "Successfully changed the version."
205 finally: 202 finally:
206 # Clean up. 203 # Clean up.
207 self.GitCheckout("bleeding_edge") 204 self.GitCheckout("master")
208 self.DeleteBranch(VERSION_BRANCH) 205 self.DeleteBranch(VERSION_BRANCH)
209 206
210 207
211 class BumpUpVersion(ScriptsBase): 208 class BumpUpVersion(ScriptsBase):
212 def _PrepareOptions(self, parser): 209 def _PrepareOptions(self, parser):
213 parser.add_argument("--dry_run", help="Don't commit the new version.", 210 parser.add_argument("--dry_run", help="Don't commit the new version.",
214 default=False, action="store_true") 211 default=False, action="store_true")
215 212
216 def _ProcessOptions(self, options): # pragma: no cover 213 def _ProcessOptions(self, options): # pragma: no cover
217 if not options.dry_run and not options.author: 214 if not options.dry_run and not options.author:
(...skipping 18 matching lines...) Expand all
236 GetLKGRVersion, 233 GetLKGRVersion,
237 LKGRVersionUpToDateBailout, 234 LKGRVersionUpToDateBailout,
238 GetTrunkVersion, 235 GetTrunkVersion,
239 CalculateVersion, 236 CalculateVersion,
240 CheckTreeStatus, 237 CheckTreeStatus,
241 ChangeVersion, 238 ChangeVersion,
242 ] 239 ]
243 240
244 if __name__ == "__main__": # pragma: no cover 241 if __name__ == "__main__": # pragma: no cover
245 sys.exit(BumpUpVersion().Run()) 242 sys.exit(BumpUpVersion().Run())
OLDNEW
« no previous file with comments | « no previous file | tools/push-to-trunk/test_scripts.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698