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 <oprypin@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#23814}
This commit is contained in:
Oleh Prypin
2018-07-03 08:47:28 +02:00
committed by Commit Bot
parent a3b6601c9b
commit a8eb1e619e
2 changed files with 14 additions and 14 deletions

View File

@ -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],

View File

@ -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):