diff options
author | Simon Sapin <simon.sapin@exyr.org> | 2017-08-31 11:17:33 +0200 |
---|---|---|
committer | Simon Sapin <simon.sapin@exyr.org> | 2017-08-31 14:30:28 +0200 |
commit | 56b4f3ae70a217834f88a4233eb9989ff9cfec92 (patch) | |
tree | 4abd8e7eef44d83185a17854952f4c9ca514be73 /python/servo/devenv_commands.py | |
parent | d795ceae17b2ce5346d4f211f73c62e5c25dce79 (diff) | |
download | servo-56b4f3ae70a217834f88a4233eb9989ff9cfec92.tar.gz servo-56b4f3ae70a217834f88a4233eb9989ff9cfec92.zip |
Switch back to pinning Rust by Nightly date instead of commit hash…
… this time using a `rust-toolchain` file compatible with rustup:
https://github.com/rust-lang-nursery/rustup.rs/#the-toolchain-file
And upgrade to rustc 1.21.0-nightly (c11f689d2 2017-08-29)
----
Now if both `system-rust` and `system-cargo` are set to `true` in `.servobuild`’s `[tools]` section,
and the corresponding `rustc` and `cargo` binaries are in fact rustup’s wrappers,
then rustup will use the correct version based on `rust-toolchain`.
CC https://github.com/servo/servo/issues/11361
Unlike https://github.com/servo/servo/pull/17927,
this does not make mach use rustup directly.
Diffstat (limited to 'python/servo/devenv_commands.py')
-rw-r--r-- | python/servo/devenv_commands.py | 30 |
1 files changed, 7 insertions, 23 deletions
diff --git a/python/servo/devenv_commands.py b/python/servo/devenv_commands.py index dae6a38b0ba..cbecb471c0d 100644 --- a/python/servo/devenv_commands.py +++ b/python/servo/devenv_commands.py @@ -136,7 +136,6 @@ class MachCommands(CommandBase): if dry_run: import toml - import json import httplib import colorama @@ -262,31 +261,16 @@ class MachCommands(CommandBase): @Command('rustup', description='Update the Rust version to latest Nightly', category='devenv') - @CommandArgument('--master', - action='store_true', - help='Use the latest commit of the "master" branch') - def rustup(self, master=False): - if master: - url = "https://api.github.com/repos/rust-lang/rust/git/refs/heads/master" - commit = json.load(urllib2.urlopen(url))["object"]["sha"] - else: - import toml - import re - url = "https://static.rust-lang.org/dist/channel-rust-nightly.toml" - version = toml.load(urllib2.urlopen(url))["pkg"]["rustc"]["version"] - short_commit = re.search("\(([0-9a-f]+) ", version).group(1) - url = "https://api.github.com/repos/rust-lang/rust/commits/" + short_commit - commit = json.load(urllib2.urlopen(url))["sha"] - filename = path.join(self.context.topdir, "rust-commit-hash") + def rustup(self): + url = "https://static.rust-lang.org/dist/channel-rust-nightly-date.txt" + nightly_date = urllib2.urlopen(url).read() + filename = path.join(self.context.topdir, "rust-toolchain") with open(filename, "w") as f: - f.write(commit + "\n") + f.write("nightly-%s\n" % nightly_date) - # Reset self.config["tools"]["rust-root"] - self._rust_version = None + # Reset self.config["tools"]["rust-root"] and self.config["tools"]["cargo-root"] + self._rust_nightly_date = None self.set_use_stable_rust(False) - - # Reset self.config["tools"]["cargo-root"] - self._cargo_build_id = None self.set_cargo_root() self.fetch() |