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

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

Issue 61263011: Refactor ChangeLog generation for push-to-trunk script. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 1 month 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/common_includes.py ('k') | no next file » | 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 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 date = datetime.date.today().strftime("%Y-%m-%d") 103 date = datetime.date.today().strftime("%Y-%m-%d")
104 self.Persist("date", date) 104 self.Persist("date", date)
105 output = "%s: Version %s.%s.%s\n\n" % (date, 105 output = "%s: Version %s.%s.%s\n\n" % (date,
106 self._state["major"], 106 self._state["major"],
107 self._state["minor"], 107 self._state["minor"],
108 self._state["build"]) 108 self._state["build"])
109 TextToFile(output, self.Config(CHANGELOG_ENTRY_FILE)) 109 TextToFile(output, self.Config(CHANGELOG_ENTRY_FILE))
110 110
111 args = "log %s..HEAD --format=%%H" % self._state["last_push"] 111 args = "log %s..HEAD --format=%%H" % self._state["last_push"]
112 commits = self.Git(args).strip() 112 commits = self.Git(args).strip()
113 for commit in commits.splitlines():
114 # Get the commit's title line.
115 args = "log -1 %s --format=\"%%w(80,8,8)%%s\"" % commit
116 title = "%s\n" % self.Git(args).rstrip()
117 AppendToFile(title, self.Config(CHANGELOG_ENTRY_FILE))
118 113
119 # Grep for "BUG=xxxx" lines in the commit message and convert them to 114 def GetCommitMessages():
120 # "(issue xxxx)". 115 for commit in commits.splitlines():
121 out = self.Git("log -1 %s --format=\"%%B\"" % commit).splitlines() 116 yield [
122 out = filter(lambda x: re.search(r"^BUG=", x), out) 117 self.Git("log -1 %s --format=\"%%w(80,8,8)%%s\"" % commit),
123 out = filter(lambda x: not re.search(r"BUG=$", x), out) 118 self.Git("log -1 %s --format=\"%%B\"" % commit),
124 out = filter(lambda x: not re.search(r"BUG=none$", x), out) 119 self.Git("log -1 %s --format=\"%%w(80,8,8)(%%an)\"" % commit),
120 ]
125 121
126 # TODO(machenbach): Handle multiple entries (e.g. BUG=123, 234). 122 body = MakeChangeLogBody(GetCommitMessages)
127 def FormatIssue(text): 123 AppendToFile(body, self.Config(CHANGELOG_ENTRY_FILE))
128 text = re.sub(r"BUG=v8:(.*)$", r"(issue \1)", text)
129 text = re.sub(r"BUG=chromium:(.*)$", r"(Chromium issue \1)", text)
130 text = re.sub(r"BUG=(.*)$", r"(Chromium issue \1)", text)
131 return " %s\n" % text
132
133 for line in map(FormatIssue, out):
134 AppendToFile(line, self.Config(CHANGELOG_ENTRY_FILE))
135
136 # Append the commit's author for reference.
137 args = "log -1 %s --format=\"%%w(80,8,8)(%%an)\"" % commit
138 author = self.Git(args).rstrip()
139 AppendToFile("%s\n\n" % author, self.Config(CHANGELOG_ENTRY_FILE))
140 124
141 msg = " Performance and stability improvements on all platforms.\n" 125 msg = " Performance and stability improvements on all platforms.\n"
142 AppendToFile(msg, self.Config(CHANGELOG_ENTRY_FILE)) 126 AppendToFile(msg, self.Config(CHANGELOG_ENTRY_FILE))
143 127
128
144 class EditChangeLog(Step): 129 class EditChangeLog(Step):
145 def __init__(self): 130 def __init__(self):
146 Step.__init__(self, "Edit ChangeLog entry.") 131 Step.__init__(self, "Edit ChangeLog entry.")
147 132
148 def RunStep(self): 133 def RunStep(self):
149 print ("Please press <Return> to have your EDITOR open the ChangeLog " 134 print ("Please press <Return> to have your EDITOR open the ChangeLog "
150 "entry, then edit its contents to your liking. When you're done, " 135 "entry, then edit its contents to your liking. When you're done, "
151 "save the file and exit your EDITOR. ") 136 "save the file and exit your EDITOR. ")
152 self.ReadLine() 137 self.ReadLine()
153 138
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after
575 def Main(): 560 def Main():
576 parser = BuildOptions() 561 parser = BuildOptions()
577 (options, args) = parser.parse_args() 562 (options, args) = parser.parse_args()
578 if not ProcessOptions(options): 563 if not ProcessOptions(options):
579 parser.print_help() 564 parser.print_help()
580 return 1 565 return 1
581 RunScript(CONFIG, options) 566 RunScript(CONFIG, options)
582 567
583 if __name__ == "__main__": 568 if __name__ == "__main__":
584 sys.exit(Main()) 569 sys.exit(Main())
OLDNEW
« no previous file with comments | « tools/push-to-trunk/common_includes.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698