OLD | NEW |
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 269 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
280 | 280 |
281 | 281 |
282 class ApplyChanges(Step): | 282 class ApplyChanges(Step): |
283 MESSAGE = "Apply squashed changes." | 283 MESSAGE = "Apply squashed changes." |
284 | 284 |
285 def RunStep(self): | 285 def RunStep(self): |
286 self.ApplyPatch(self.Config("PATCH_FILE")) | 286 self.ApplyPatch(self.Config("PATCH_FILE")) |
287 os.remove(self.Config("PATCH_FILE")) | 287 os.remove(self.Config("PATCH_FILE")) |
288 | 288 |
289 | 289 |
| 290 class CommitSquash(Step): |
| 291 MESSAGE = "Commit to local candidates branch." |
| 292 |
| 293 def RunStep(self): |
| 294 # Make a first commit with a slightly different title to not confuse |
| 295 # the tagging. |
| 296 msg = FileToText(self.Config("COMMITMSG_FILE")).splitlines() |
| 297 msg[0] = msg[0].replace("(based on", "(squashed - based on") |
| 298 self.GitCommit(message = "\n".join(msg)) |
| 299 |
| 300 |
| 301 class PrepareVersionBranch(Step): |
| 302 MESSAGE = "Prepare new branch to commit version and changelog file." |
| 303 |
| 304 def RunStep(self): |
| 305 self.GitCheckout("master") |
| 306 self.Git("fetch") |
| 307 self.GitDeleteBranch(self.Config("TRUNKBRANCH")) |
| 308 self.GitCreateBranch(self.Config("TRUNKBRANCH"), |
| 309 self.vc.RemoteCandidateBranch()) |
| 310 |
| 311 |
290 class AddChangeLog(Step): | 312 class AddChangeLog(Step): |
291 MESSAGE = "Add ChangeLog changes to trunk branch." | 313 MESSAGE = "Add ChangeLog changes to trunk branch." |
292 | 314 |
293 def RunStep(self): | 315 def RunStep(self): |
294 # The change log has been modified by the patch. Reset it to the version | 316 # The change log has been modified by the patch. Reset it to the version |
295 # on trunk and apply the exact changes determined by this PrepareChangeLog | 317 # on trunk and apply the exact changes determined by this PrepareChangeLog |
296 # step above. | 318 # step above. |
297 self.GitCheckoutFile(CHANGELOG_FILE, self.vc.RemoteCandidateBranch()) | 319 self.GitCheckoutFile(CHANGELOG_FILE, self.vc.RemoteCandidateBranch()) |
298 changelog_entry = FileToText(self.Config("CHANGELOG_ENTRY_FILE")) | 320 changelog_entry = FileToText(self.Config("CHANGELOG_ENTRY_FILE")) |
299 old_change_log = FileToText(os.path.join(self.default_cwd, CHANGELOG_FILE)) | 321 old_change_log = FileToText(os.path.join(self.default_cwd, CHANGELOG_FILE)) |
300 new_change_log = "%s\n\n\n%s" % (changelog_entry, old_change_log) | 322 new_change_log = "%s\n\n\n%s" % (changelog_entry, old_change_log) |
301 TextToFile(new_change_log, os.path.join(self.default_cwd, CHANGELOG_FILE)) | 323 TextToFile(new_change_log, os.path.join(self.default_cwd, CHANGELOG_FILE)) |
302 os.remove(self.Config("CHANGELOG_ENTRY_FILE")) | 324 os.remove(self.Config("CHANGELOG_ENTRY_FILE")) |
303 | 325 |
304 | 326 |
305 class SetVersion(Step): | 327 class SetVersion(Step): |
306 MESSAGE = "Set correct version for trunk." | 328 MESSAGE = "Set correct version for trunk." |
307 | 329 |
308 def RunStep(self): | 330 def RunStep(self): |
309 # The version file has been modified by the patch. Reset it to the version | 331 # The version file has been modified by the patch. Reset it to the version |
310 # on trunk and apply the correct version. | 332 # on trunk and apply the correct version. |
311 self.GitCheckoutFile(VERSION_FILE, self.vc.RemoteCandidateBranch()) | 333 self.GitCheckoutFile(VERSION_FILE, self.vc.RemoteCandidateBranch()) |
312 self.SetVersion(os.path.join(self.default_cwd, VERSION_FILE), "new_") | 334 self.SetVersion(os.path.join(self.default_cwd, VERSION_FILE), "new_") |
313 | 335 |
314 | 336 |
315 class CommitTrunk(Step): | 337 class CommitCandidate(Step): |
316 MESSAGE = "Commit to local trunk branch." | 338 MESSAGE = "Commit version and changelog to local candidates branch." |
317 | 339 |
318 def RunStep(self): | 340 def RunStep(self): |
319 self.GitCommit(file_name = self.Config("COMMITMSG_FILE")) | 341 self.GitCommit(file_name = self.Config("COMMITMSG_FILE")) |
320 os.remove(self.Config("COMMITMSG_FILE")) | 342 os.remove(self.Config("COMMITMSG_FILE")) |
321 | 343 |
322 | 344 |
323 class SanityCheck(Step): | 345 class SanityCheck(Step): |
324 MESSAGE = "Sanity check." | 346 MESSAGE = "Sanity check." |
325 | 347 |
326 def RunStep(self): | 348 def RunStep(self): |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
406 PreparePushRevision, | 428 PreparePushRevision, |
407 DetectLastPush, | 429 DetectLastPush, |
408 GetLatestVersion, | 430 GetLatestVersion, |
409 IncrementVersion, | 431 IncrementVersion, |
410 PrepareChangeLog, | 432 PrepareChangeLog, |
411 EditChangeLog, | 433 EditChangeLog, |
412 StragglerCommits, | 434 StragglerCommits, |
413 SquashCommits, | 435 SquashCommits, |
414 NewBranch, | 436 NewBranch, |
415 ApplyChanges, | 437 ApplyChanges, |
| 438 CommitSquash, |
| 439 SanityCheck, |
| 440 Land, |
| 441 PrepareVersionBranch, |
416 AddChangeLog, | 442 AddChangeLog, |
417 SetVersion, | 443 SetVersion, |
418 CommitTrunk, | 444 CommitCandidate, |
419 SanityCheck, | |
420 Land, | 445 Land, |
421 TagRevision, | 446 TagRevision, |
422 CleanUp, | 447 CleanUp, |
423 ] | 448 ] |
424 | 449 |
425 | 450 |
426 if __name__ == "__main__": # pragma: no cover | 451 if __name__ == "__main__": # pragma: no cover |
427 sys.exit(PushToTrunk().Run()) | 452 sys.exit(PushToTrunk().Run()) |
OLD | NEW |