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

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

Issue 389353003: Add script to bump up version on bleeding edge. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 5 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 | « tools/push-to-trunk/bump_up_version.py ('k') | tools/push-to-trunk/git_recipes.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 2013 the V8 project authors. All rights reserved. 2 # Copyright 2013 the V8 project authors. All rights reserved.
3 # Redistribution and use in source and binary forms, with or without 3 # Redistribution and use in source and binary forms, with or without
4 # modification, are permitted provided that the following conditions are 4 # modification, are permitted provided that the following conditions are
5 # met: 5 # met:
6 # 6 #
7 # * Redistributions of source code must retain the above copyright 7 # * Redistributions of source code must retain the above copyright
8 # notice, this list of conditions and the following disclaimer. 8 # notice, this list of conditions and the following disclaimer.
9 # * Redistributions in binary form must reproduce the above 9 # * Redistributions in binary form must reproduce the above
10 # copyright notice, this list of conditions and the following 10 # copyright notice, this list of conditions and the following
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 164
165 FormatIssues("", v8bugs) 165 FormatIssues("", v8bugs)
166 FormatIssues("Chromium ", crbugs) 166 FormatIssues("Chromium ", crbugs)
167 167
168 if len(bug_groups) > 0: 168 if len(bug_groups) > 0:
169 return "(%s)" % ", ".join(bug_groups) 169 return "(%s)" % ", ".join(bug_groups)
170 else: 170 else:
171 return "" 171 return ""
172 172
173 173
174 def SortingKey(version):
175 """Key for sorting version number strings: '3.11' > '3.2.1.1'"""
176 version_keys = map(int, version.split("."))
177 # Fill up to full version numbers to normalize comparison.
178 while len(version_keys) < 4: # pragma: no cover
179 version_keys.append(0)
180 # Fill digits.
181 return ".".join(map("{0:04d}".format, version_keys))
182
183
174 # Some commands don't like the pipe, e.g. calling vi from within the script or 184 # Some commands don't like the pipe, e.g. calling vi from within the script or
175 # from subscripts like git cl upload. 185 # from subscripts like git cl upload.
176 def Command(cmd, args="", prefix="", pipe=True): 186 def Command(cmd, args="", prefix="", pipe=True):
177 # TODO(machenbach): Use timeout. 187 # TODO(machenbach): Use timeout.
178 cmd_line = "%s %s %s" % (prefix, cmd, args) 188 cmd_line = "%s %s %s" % (prefix, cmd, args)
179 print "Command: %s" % cmd_line 189 print "Command: %s" % cmd_line
180 sys.stdout.flush() 190 sys.stdout.flush()
181 try: 191 try:
182 if pipe: 192 if pipe:
183 return subprocess.check_output(cmd_line, shell=True) 193 return subprocess.check_output(cmd_line, shell=True)
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 msg = msg or "Only available in manual mode." 372 msg = msg or "Only available in manual mode."
363 self.Die(msg) 373 self.Die(msg)
364 374
365 def Confirm(self, msg): 375 def Confirm(self, msg):
366 print "%s [Y/n] " % msg, 376 print "%s [Y/n] " % msg,
367 answer = self.ReadLine(default="Y") 377 answer = self.ReadLine(default="Y")
368 return answer == "" or answer == "Y" or answer == "y" 378 return answer == "" or answer == "Y" or answer == "y"
369 379
370 def DeleteBranch(self, name): 380 def DeleteBranch(self, name):
371 for line in self.GitBranch().splitlines(): 381 for line in self.GitBranch().splitlines():
372 if re.match(r".*\s+%s$" % name, line): 382 if re.match(r"\*?\s*%s$" % re.escape(name), line):
373 msg = "Branch %s exists, do you want to delete it?" % name 383 msg = "Branch %s exists, do you want to delete it?" % name
374 if self.Confirm(msg): 384 if self.Confirm(msg):
375 self.GitDeleteBranch(name) 385 self.GitDeleteBranch(name)
376 print "Branch %s deleted." % name 386 print "Branch %s deleted." % name
377 else: 387 else:
378 msg = "Can't continue. Please delete branch %s and try again." % name 388 msg = "Can't continue. Please delete branch %s and try again." % name
379 self.Die(msg) 389 self.Die(msg)
380 390
381 def InitialEnvironmentChecks(self): 391 def InitialEnvironmentChecks(self):
382 # Cancel if this is not a git checkout. 392 # Cancel if this is not a git checkout.
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
460 def FindLastTrunkPush(self, parent_hash="", include_patches=False): 470 def FindLastTrunkPush(self, parent_hash="", include_patches=False):
461 push_pattern = "^Version [[:digit:]]*\.[[:digit:]]*\.[[:digit:]]*" 471 push_pattern = "^Version [[:digit:]]*\.[[:digit:]]*\.[[:digit:]]*"
462 if not include_patches: 472 if not include_patches:
463 # Non-patched versions only have three numbers followed by the "(based 473 # Non-patched versions only have three numbers followed by the "(based
464 # on...) comment." 474 # on...) comment."
465 push_pattern += " (based" 475 push_pattern += " (based"
466 branch = "" if parent_hash else "svn/trunk" 476 branch = "" if parent_hash else "svn/trunk"
467 return self.GitLog(n=1, format="%H", grep=push_pattern, 477 return self.GitLog(n=1, format="%H", grep=push_pattern,
468 parent_hash=parent_hash, branch=branch) 478 parent_hash=parent_hash, branch=branch)
469 479
480 def ArrayToVersion(self, prefix):
481 return ".".join([self[prefix + "major"],
482 self[prefix + "minor"],
483 self[prefix + "build"],
484 self[prefix + "patch"]])
485
486 def SetVersion(self, version_file, prefix):
487 output = ""
488 for line in FileToText(version_file).splitlines():
489 if line.startswith("#define MAJOR_VERSION"):
490 line = re.sub("\d+$", self[prefix + "major"], line)
491 elif line.startswith("#define MINOR_VERSION"):
492 line = re.sub("\d+$", self[prefix + "minor"], line)
493 elif line.startswith("#define BUILD_NUMBER"):
494 line = re.sub("\d+$", self[prefix + "build"], line)
495 elif line.startswith("#define PATCH_LEVEL"):
496 line = re.sub("\d+$", self[prefix + "patch"], line)
497 output += "%s\n" % line
498 TextToFile(output, version_file)
470 499
471 class UploadStep(Step): 500 class UploadStep(Step):
472 MESSAGE = "Upload for code review." 501 MESSAGE = "Upload for code review."
473 502
474 def RunStep(self): 503 def RunStep(self):
475 if self._options.reviewer: 504 if self._options.reviewer:
476 print "Using account %s for review." % self._options.reviewer 505 print "Using account %s for review." % self._options.reviewer
477 reviewer = self._options.reviewer 506 reviewer = self._options.reviewer
478 else: 507 else:
479 print "Please enter the email address of a V8 reviewer for your patch: ", 508 print "Please enter the email address of a V8 reviewer for your patch: ",
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
618 for (number, step_class) in enumerate(step_classes): 647 for (number, step_class) in enumerate(step_classes):
619 steps.append(MakeStep(step_class, number, self._state, self._config, 648 steps.append(MakeStep(step_class, number, self._state, self._config,
620 options, self._side_effect_handler)) 649 options, self._side_effect_handler))
621 for step in steps[options.step:]: 650 for step in steps[options.step:]:
622 if step.Run(): 651 if step.Run():
623 return 1 652 return 1
624 return 0 653 return 0
625 654
626 def Run(self, args=None): 655 def Run(self, args=None):
627 return self.RunSteps(self._Steps(), args) 656 return self.RunSteps(self._Steps(), args)
OLDNEW
« no previous file with comments | « tools/push-to-trunk/bump_up_version.py ('k') | tools/push-to-trunk/git_recipes.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698