Bug 1324462 - Don't automatically upgrade dependent libraries when running |mach vendor rust|. r?ted draft
authorKartikaya Gupta <kgupta@mozilla.com>
Tue, 20 Dec 2016 13:59:41 -0500
changeset 451569 fee307b28d6ee60d7d9b8d7db8dd74d775f64550
parent 451568 a2b2265c8a35ce2f5bcc06cbbd5030d2ed50938f
child 540075 a1e992f8cab2038c8e83afb302de76a1fc9a82a5
push id39232
push userkgupta@mozilla.com
push dateTue, 20 Dec 2016 19:01:18 +0000
reviewersted
bugs1324462
milestone53.0a1
Bug 1324462 - Don't automatically upgrade dependent libraries when running |mach vendor rust|. r?ted This allows developers to manually upgrade packages as desired by running |cargo update -p <package>| or |cargo update| on gkrust and gkrust-gtest. Previously this update would happen implicitly as part of |mach vendor rust|, and made it hard to upgrade specific packages without upgrading everything. MozReview-Commit-ID: FrtLZof5Hh7
python/mozbuild/mozbuild/vendor_rust.py
--- a/python/mozbuild/mozbuild/vendor_rust.py
+++ b/python/mozbuild/mozbuild/vendor_rust.py
@@ -71,17 +71,17 @@ Please commit or stash these changes bef
             self.run_process(args=[cargo, 'install', 'cargo-vendor'])
         else:
             self.log(logging.DEBUG, 'cargo_vendor', {}, 'cargo-vendor already intalled')
         vendor_dir = mozpath.join(self.topsrcdir, 'third_party/rust')
         self.log(logging.INFO, 'rm_vendor_dir', {}, 'rm -rf %s' % vendor_dir)
         mozfile.remove(vendor_dir)
         # Once we require a new enough cargo to switch to workspaces, we can
         # just do this once on the workspace root crate.
-        for crate_root in ('toolkit/library/rust/',
-                           'toolkit/library/gtest/rust',
-                           'js/src'):
+        for (crate_root, lib) in (('toolkit/library/rust/', 'gkrust'),
+                                  ('toolkit/library/gtest/rust', 'gkrust-gtest'),
+                                  ('js/src', 'mozjs_sys')):
             path = mozpath.join(self.topsrcdir, crate_root)
-            self._run_command_in_srcdir(args=[cargo, 'generate-lockfile', '--manifest-path', mozpath.join(path, 'Cargo.toml')])
+            self._run_command_in_srcdir(args=[cargo, 'update', '--manifest-path', mozpath.join(path, 'Cargo.toml'), '-p', lib])
             self._run_command_in_srcdir(args=[cargo, 'vendor', '--sync', mozpath.join(path, 'Cargo.lock'), vendor_dir])
         #TODO: print stats on size of files added/removed, warn or error
         # when adding very large files (bug 1306078)
         self.repository.add_remove_files(vendor_dir)