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

Unified Diff: tools/push-to-trunk/auto_tag.py

Issue 868473004: External name changes of release scripts. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 5 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: tools/push-to-trunk/auto_tag.py
diff --git a/tools/push-to-trunk/auto_tag.py b/tools/push-to-trunk/auto_tag.py
deleted file mode 100755
index a52a02869756f26131ee6ec45ae8ee73dc630f97..0000000000000000000000000000000000000000
--- a/tools/push-to-trunk/auto_tag.py
+++ /dev/null
@@ -1,201 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2014 the V8 project authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-import argparse
-import sys
-
-from common_includes import *
-
-
-class Preparation(Step):
- MESSAGE = "Preparation."
-
- def RunStep(self):
- # TODO(machenbach): Remove after the git switch.
- if self.Config("PERSISTFILE_BASENAME") == "/tmp/v8-auto-tag-tempfile":
- print "This script is disabled until after the v8 git migration."
- return True
-
- self.CommonPrepare()
- self.PrepareBranch()
- self.GitCheckout("master")
- self.vc.Pull()
-
-
-class GetTags(Step):
- MESSAGE = "Get all V8 tags."
-
- def RunStep(self):
- self.GitCreateBranch(self._config["BRANCHNAME"])
- self["tags"] = self.vc.GetTags()
-
-
-class GetOldestUntaggedVersion(Step):
- MESSAGE = "Check if there's a version on bleeding edge without a tag."
-
- def RunStep(self):
- tags = set(self["tags"])
- self["candidate"] = None
- self["candidate_version"] = None
- self["next"] = None
- self["next_version"] = None
-
- # Iterate backwards through all automatic version updates.
- for git_hash in self.GitLog(
- format="%H", grep="\\[Auto\\-roll\\] Bump up version to").splitlines():
-
- # Get the version.
- if not self.GitCheckoutFileSafe(VERSION_FILE, git_hash):
- continue
-
- self.ReadAndPersistVersion()
- version = self.ArrayToVersion("")
-
- # Strip off trailing patch level (tags don't include tag level 0).
- if version.endswith(".0"):
- version = version[:-2]
-
- # Clean up checked-out version file.
- self.GitCheckoutFileSafe(VERSION_FILE, "HEAD")
-
- if version in tags:
- if self["candidate"]:
- # Revision "git_hash" is tagged already and "candidate" was the next
- # newer revision without a tag.
- break
- else:
- print("Stop as %s is the latest version and it has been tagged." %
- version)
- self.CommonCleanup()
- return True
- else:
- # This is the second oldest version without a tag.
- self["next"] = self["candidate"]
- self["next_version"] = self["candidate_version"]
-
- # This is the oldest version without a tag.
- self["candidate"] = git_hash
- self["candidate_version"] = version
-
- if not self["candidate"] or not self["candidate_version"]:
- print "Nothing found to tag."
- self.CommonCleanup()
- return True
-
- print("Candidate for tagging is %s with version %s" %
- (self["candidate"], self["candidate_version"]))
-
-
-class GetLKGRs(Step):
- MESSAGE = "Get the last lkgrs."
-
- def RunStep(self):
- revision_url = "https://v8-status.appspot.com/revisions?format=json"
- status_json = self.ReadURL(revision_url, wait_plan=[5, 20])
- self["lkgrs"] = [entry["revision"]
- for entry in json.loads(status_json) if entry["status"]]
-
-
-class CalculateTagRevision(Step):
- MESSAGE = "Calculate the revision to tag."
-
- def LastLKGR(self, min_rev, max_rev):
- """Finds the newest lkgr between min_rev (inclusive) and max_rev
- (exclusive).
- """
- for lkgr in self["lkgrs"]:
- # LKGRs are reverse sorted.
- if int(min_rev) <= int(lkgr) and int(lkgr) < int(max_rev):
- return lkgr
- return None
-
- def RunStep(self):
- # Get the lkgr after the tag candidate and before the next tag candidate.
- candidate_svn = self.vc.GitSvn(self["candidate"])
- if self["next"]:
- next_svn = self.vc.GitSvn(self["next"])
- else:
- # Don't include the version change commit itself if there is no upper
- # limit yet.
- candidate_svn = str(int(candidate_svn) + 1)
- next_svn = sys.maxint
- lkgr_svn = self.LastLKGR(candidate_svn, next_svn)
-
- if not lkgr_svn:
- print "There is no lkgr since the candidate version yet."
- self.CommonCleanup()
- return True
-
- # Let's check if the lkgr is at least three hours old.
- self["lkgr"] = self.vc.SvnGit(lkgr_svn)
- if not self["lkgr"]:
- print "Couldn't find git hash for lkgr %s" % lkgr_svn
- self.CommonCleanup()
- return True
-
- lkgr_utc_time = int(self.GitLog(n=1, format="%at", git_hash=self["lkgr"]))
- current_utc_time = self._side_effect_handler.GetUTCStamp()
-
- if current_utc_time < lkgr_utc_time + 10800:
- print "Candidate lkgr %s is too recent for tagging." % lkgr_svn
- self.CommonCleanup()
- return True
-
- print "Tagging revision %s with %s" % (lkgr_svn, self["candidate_version"])
-
-
-class MakeTag(Step):
- MESSAGE = "Tag the version."
-
- def RunStep(self):
- if not self._options.dry_run:
- self.GitReset(self["lkgr"])
- # FIXME(machenbach): Make this work with the git repo.
- self.vc.Tag(self["candidate_version"],
- "svn/bleeding_edge",
- "This won't work!")
-
-
-class CleanUp(Step):
- MESSAGE = "Clean up."
-
- def RunStep(self):
- self.CommonCleanup()
-
-
-class AutoTag(ScriptsBase):
- def _PrepareOptions(self, parser):
- parser.add_argument("--dry_run", help="Don't tag the new version.",
- default=False, action="store_true")
-
- def _ProcessOptions(self, options): # pragma: no cover
- if not options.dry_run and not options.author:
- print "Specify your chromium.org email with -a"
- return False
- options.wait_for_lgtm = False
- options.force_readline_defaults = True
- options.force_upload = True
- return True
-
- def _Config(self):
- return {
- "BRANCHNAME": "auto-tag-v8",
- "PERSISTFILE_BASENAME": "/tmp/v8-auto-tag-tempfile",
- }
-
- def _Steps(self):
- return [
- Preparation,
- GetTags,
- GetOldestUntaggedVersion,
- GetLKGRs,
- CalculateTagRevision,
- MakeTag,
- CleanUp,
- ]
-
-
-if __name__ == "__main__": # pragma: no cover
- sys.exit(AutoTag().Run())

Powered by Google App Engine
This is Rietveld 408576698