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

Unified Diff: update_deps.py

Issue 243953003: Update script to roll chrome DEPS for all our variants (Closed) Base URL: svn://svn.chromium.org/chrome/branches/dart/1847/src/dartium_tools
Patch Set: Created 6 years, 8 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: update_deps.py
diff --git a/update_deps.py b/update_deps.py
index 0b675a1091e8933e2159cd81aaefa88d5beb3b75..b66efee497e43cdc601dbeeeb51496d8f41319a8 100755
--- a/update_deps.py
+++ b/update_deps.py
@@ -17,11 +17,11 @@ from time import strptime
# > mkdir /usr/local/google/home/$USER/dartium_deps_updater
# > cd /usr/local/google/home/$USER/dartium_deps_updater
#
-# (b) Checkout a copy of the DEPS for the updater to process / update:
-# > svn co https://dart.googlecode.com/svn/branches/bleeding_edge/deps/dartium.deps
+# (b) Make a 'deps' directory to store temporary files:
+# > mkdir deps
#
-# (c) Checkout dartium_tools (with this script) using the current branch instead of 1750:
-# > svn co svn://svn.chromium.org/chrome/branches/dart/1750/src/dartium_tools
+# (c) Checkout dartium_tools (with this script) using the current branch instead of 1847:
+# > svn co svn://svn.chromium.org/chrome/branches/dart/1847/src/dartium_tools
#
# (d) If your home directory is remote, consider redefining it for this shell/script:
# > cp -R $HOME/.subversion /usr/local/google/home/$USER
@@ -29,6 +29,9 @@ from time import strptime
#
# (e) Test by running (Ctrl-C to quit):
# > ./dartium_tools/update_deps.py
+# > ./dartium_tools/update_deps.py --target=multivm
+# > ./dartium_tools/update_deps.py --target=clank
+# > ./dartium_tools/update_deps.py --target=integration
#
# (f) Run periodical update:
# > while true; do ./dartium_tools/update_deps.py --force ; sleep 300 ; done
@@ -37,6 +40,37 @@ from time import strptime
# Repositories to auto-update
########################################################################
+BRANCH_CURRENT="dart/1847"
+BRANCH_NEXT="dart/1908"
+BRANCH_MULTIVM="dart/multivm"
+
+TARGETS = {
+ 'dartium': (
+ 'https://dart.googlecode.com/svn/branches/bleeding_edge/deps/dartium.deps',
+ 'dartium',
+ ['webkit', 'chromium'],
+ BRANCH_CURRENT,
+ ),
+ 'integration': (
+ 'https://dart.googlecode.com/svn/branches/dartium_integration/deps/dartium.deps',
+ 'dartium',
+ ['webkit', 'chromium'],
+ BRANCH_NEXT,
+ ),
+ 'clank': (
+ 'https://dart.googlecode.com/svn/branches/bleeding_edge/deps/clank.deps',
+ 'dartium',
+ ['webkit', 'chromium'],
+ BRANCH_CURRENT,
+ ),
+ 'multivm': (
+ 'https://dart.googlecode.com/svn/branches/bleeding_edge/deps/multivm.deps',
+ 'multivm',
+ ['blink'],
+ BRANCH_MULTIVM,
+ ),
+}
+
# Each element in this map represents a repository to update. Entries
# take the form:
# (repo_tag: (svn_url, view_url))
@@ -50,11 +84,14 @@ from time import strptime
# used to generated the commit message.
REPOSITORY_INFO = {
'webkit': (
- 'http://src.chromium.org/blink/branches/dart/1750',
- 'http://src.chromium.org/viewvc/blink/branches/dart/1750?view=rev&revision=%s'),
+ 'http://src.chromium.org/blink/branches/%s',
+ 'http://src.chromium.org/viewvc/blink?view=rev&revision=%s'),
+ 'blink': (
+ 'http://src.chromium.org/blink/branches/%s',
+ 'http://src.chromium.org/viewvc/blink?view=rev&revision=%s'),
'chromium': (
- 'http://src.chromium.org/chrome/branches/dart/1750/src',
- 'http://src.chromium.org/viewvc/chrome/branches/dart/1750/src?view=rev&revision=%s'),
+ 'http://src.chromium.org/chrome/branches/%s',
+ 'http://src.chromium.org/viewvc/chrome?view=rev&revision=%s'),
}
REPOSITORIES = REPOSITORY_INFO.keys()
@@ -148,31 +185,37 @@ def merge_revs(revs):
def main():
option_parser = optparse.OptionParser()
+ option_parser.add_option('', '--target', help="Update one of [dartium|integration|multivm|clank]", action="store", dest="target", default="dartium")
option_parser.add_option('', '--force', help="Push DEPS update to server without prompting", action="store_true", dest="force")
options, args = option_parser.parse_args()
- src_dir = "/usr/local/google/home/%s/dartium_deps_updater/dartium.deps" % os.environ["USER"]
+ target = options.target
+ if not target in TARGETS.keys():
+ print "Error: invalid target"
+ print "Choose one of " + str(TARGETS)
+ (deps_dir, prefix, repos, branch) = TARGETS[target]
+ deps_file = deps_dir + '/DEPS'
+
+ src_dir = "/usr/local/google/home/%s/dartium_deps_updater/deps/%s" % (os.environ["USER"], target)
os.putenv("GIT_PAGER", "")
if not os.path.exists(src_dir):
- print "Error: prior to running this script, you need to check out a Dartium source tree at"
- print " %s" % src_dir
- print "Please reserve the above directory for this script and do not use it for other purposes."
- sys.exit(1)
+ print run_cmd(['svn', 'co', deps_dir, src_dir])
os.chdir(src_dir)
# parse DEPS
- deps = run_cmd(['svn', 'cat', 'https://dart.googlecode.com/svn/branches/bleeding_edge/deps/dartium.deps/DEPS'])
+ deps = run_cmd(['svn', 'cat', deps_file])
rev_num = {}
- for repo in REPOSITORIES:
- revision = 'dartium_%s_revision":\s*"(.+)"' % repo
+ for repo in repos:
+ revision = '%s_%s_revision":\s*"(.+)"' % (prefix, repo)
rev_num[repo] = re.search(revision, deps).group(1)
# update repos
all_revs = []
- for repo, (svn_url, _) in REPOSITORY_INFO.items():
- output = run_cmd(["svn", "log", "-r", "HEAD:%s" % rev_num[repo], svn_url])
+ for repo in repos:
+ (svn_url, _) = REPOSITORY_INFO[repo]
+ output = run_cmd(["svn", "log", "-r", "HEAD:%s" % rev_num[repo], svn_url % branch])
revs = parse_svn_log(output, repo)
if revs and revs[-1]['rev'] == rev_num[repo]:
revs.pop()
@@ -183,8 +226,8 @@ def main():
print
print "Current DEPS revisions:"
- for repo in REPOSITORIES:
- print ' dartium_%s_revision=%s' % (repo, rev_num[repo])
+ for repo in repos:
+ print ' %s_%s_revision=%s' % (prefix, repo, rev_num[repo])
if len(pending_updates) == 0:
print "DEPS is up-to-date."
@@ -200,8 +243,8 @@ def main():
print run_cmd(['svn', 'update'])
s = pending_updates[0]
- pattern = re.compile('dartium_' + s['repo'] + '_revision":\s*"(.+)"')
- new_deps = pattern.sub('dartium_' + s['repo'] + '_revision": "' + s['rev'] + '"', deps)
+ pattern = re.compile(prefix + '_' + s['repo'] + '_revision":\s*"(.+)"')
+ new_deps = pattern.sub(prefix + '_' + s['repo'] + '_revision": "' + s['rev'] + '"', deps)
write_file('DEPS', new_deps)
commit_log = 'DEPS AutoUpdate: %s to %s (%s) %s\n' % (s['repo'], s['rev'], s['isotime'], s['author'])
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698