From a8eb1e619eb9c13a21158885e0763f52e3881023 Mon Sep 17 00:00:00 2001 From: Oleh Prypin Date: Tue, 3 Jul 2018 08:47:28 +0200 Subject: [PATCH] roll_deps: Accept any prefix (like 'git_revision:'), not only 'version:' for CIPD `gclient setdep` was changed in https://chromium-review.googlesource.com/1123940 to support any prefix as well, but note that that was a backwards incompatible change, because it now requires the prefix to be passed. So we just stop stripping the prefix in this CL. Also clarify the error when a CIPD dep is present in WebRTC and missing in Chromium. No-Try: True TBR: phoglund@webrtc.org Bug: webrtc:9470, chromium:858978 Change-Id: I5e42bbda04db37a628a0ac1de69667b9a30dd793 Reviewed-on: https://webrtc-review.googlesource.com/86280 Commit-Queue: Oleh Prypin Reviewed-by: Mirko Bonadei Cr-Commit-Position: refs/heads/master@{#23814} --- tools_webrtc/autoroller/roll_deps.py | 24 +++++++++---------- .../autoroller/unittests/roll_deps_test.py | 4 ++-- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/tools_webrtc/autoroller/roll_deps.py b/tools_webrtc/autoroller/roll_deps.py index 66e5977853..11e1fb8cff 100755 --- a/tools_webrtc/autoroller/roll_deps.py +++ b/tools_webrtc/autoroller/roll_deps.py @@ -234,18 +234,13 @@ def BuildDepsentryDict(deps_dict): return result -def _RemoveStringPrefix(string, substring): - assert string.startswith(substring) - return string[len(substring):] - - def _FindChangedCipdPackages(path, old_pkgs, new_pkgs): assert ({p['package'] for p in old_pkgs} == {p['package'] for p in new_pkgs}) for old_pkg in old_pkgs: for new_pkg in new_pkgs: - old_version = _RemoveStringPrefix(old_pkg['version'], 'version:') - new_version = _RemoveStringPrefix(new_pkg['version'], 'version:') + old_version = old_pkg['version'] + new_version = new_pkg['version'] if (old_pkg['package'] == new_pkg['package'] and old_version != new_version): logging.debug('Roll dependency %s to %s', path, new_version) @@ -289,10 +284,14 @@ def CalculateChangedDeps(webrtc_deps, new_cr_deps): 'WebRTC DEPS entry %s has a different URL (%s) than Chromium (%s).' % (path, webrtc_deps_entry.url, cr_deps_entry.url)) else: - # Use the HEAD of the deps repo. - stdout, _ = _RunCommand(['git', 'ls-remote', webrtc_deps_entry.url, - 'HEAD']) - new_rev = stdout.strip().split('\t')[0] + if isinstance(webrtc_deps_entry, DepsEntry): + # Use the HEAD of the deps repo. + stdout, _ = _RunCommand(['git', 'ls-remote', webrtc_deps_entry.url, + 'HEAD']) + new_rev = stdout.strip().split('\t')[0] + else: + raise RollError('WebRTC DEPS entry %s is missing from Chromium. Remove ' + 'it or add it to DONT_AUTOROLL_THESE.' % path) # Check if an update is necessary. if webrtc_deps_entry.revision != new_rev: @@ -395,7 +394,8 @@ def UpdateDepsFile(deps_filename, rev_update, changed_deps): 'target_os = ["android", "unix", "mac", "ios", "win"];\n' 'Then run "gclient sync" again.' % local_dep_dir) if isinstance(dep, ChangedCipdPackage): - update = '%s:%s@%s' % (dep.path, dep.package, dep.new_version) + package = dep.package.format() # Eliminate double curly brackets + update = '%s:%s@%s' % (dep.path, package, dep.new_version) else: update = '%s@%s' % (dep.path, dep.new_rev) _RunCommand(['gclient', 'setdep', '--revision', update], diff --git a/tools_webrtc/autoroller/unittests/roll_deps_test.py b/tools_webrtc/autoroller/unittests/roll_deps_test.py index c8d22f2e72..2c19198aae 100755 --- a/tools_webrtc/autoroller/unittests/roll_deps_test.py +++ b/tools_webrtc/autoroller/unittests/roll_deps_test.py @@ -144,8 +144,8 @@ class TestRollChromiumRevision(unittest.TestCase): self.assertEquals(changed_deps[2].path, 'src/third_party/xstream') self.assertEquals(changed_deps[2].package, 'chromium/third_party/xstream') - self.assertEquals(changed_deps[2].current_version, '1.4.8-cr0') - self.assertEquals(changed_deps[2].new_version, '1.10.0-cr0') + self.assertEquals(changed_deps[2].current_version, 'version:1.4.8-cr0') + self.assertEquals(changed_deps[2].new_version, 'version:1.10.0-cr0') class TestChooseCQMode(unittest.TestCase):