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:
@ -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],
|
||||
|
||||
@ -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):
|
||||
|
||||
Reference in New Issue
Block a user