From 14207503a80083e2b4ea6eabada46fbc8db27682 Mon Sep 17 00:00:00 2001 From: Oliver Schneider Date: Thu, 9 Aug 2018 09:41:32 +0200 Subject: [PATCH] Version checks are useless now that we ride the trains --- Cargo.toml | 4 --- build.rs | 87 ------------------------------------------------- min_version.txt | 7 ---- 3 files changed, 98 deletions(-) delete mode 100644 min_version.txt diff --git a/Cargo.toml b/Cargo.toml index 5b690040902..798b713a07f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -59,9 +59,5 @@ derive-new = "0.5" # for more information. rustc-workspace-hack = "1.0.0" -[build-dependencies] -rustc_version = "0.2.2" -ansi_term = "0.11" - [features] debugging = [] diff --git a/build.rs b/build.rs index 9d05678f718..3b9f217c884 100644 --- a/build.rs +++ b/build.rs @@ -13,98 +13,11 @@ //! This build script was originally taken from the Rocket web framework: //! https://github.com/SergioBenitez/Rocket -use ansi_term::Colour::Red; -use rustc_version::{version_meta, version_meta_for, Channel, Version, VersionMeta}; use std::env; fn main() { - check_rustc_version(); - // Forward the profile to the main compilation println!("cargo:rustc-env=PROFILE={}", env::var("PROFILE").unwrap()); // Don't rebuild even if nothing changed println!("cargo:rerun-if-changed=build.rs"); } - -fn check_rustc_version() { - let string = include_str!("min_version.txt"); - let min_version_meta = version_meta_for(string).expect("Could not parse version string in min_version.txt"); - let current_version_meta = version_meta().expect("Could not retrieve current rustc version information from ENV"); - - let min_version = min_version_meta.clone().semver; - let min_date_str = min_version_meta - .clone() - .commit_date - .expect("min_version.txt does not contain a rustc commit date"); - - // Dev channel (rustc built from git) does not have any date or commit information in rustc -vV - // `current_version_meta.commit_date` would crash, so we return early here. - if current_version_meta.channel == Channel::Dev { - return; - } - - let current_version = current_version_meta.clone().semver; - let current_date_str = current_version_meta - .clone() - .commit_date - .expect("current rustc version information does not contain a rustc commit date"); - - let print_version_err = |version: &Version, date: &str| { - eprintln!( - "> {} {}. {} {}.\n", - "Installed rustc version is:", - format!("{} ({})", version, date), - "Minimum required rustc version:", - format!("{} ({})", min_version, min_date_str) - ); - }; - - if !correct_channel(¤t_version_meta) { - eprintln!( - "\n{} {}", - Red.bold().paint("error:"), - "Clippy requires a nightly version of Rust." - ); - print_version_err(¤t_version, &*current_date_str); - eprintln!( - "{}{}{}", - "See the README (", "https://github.com/rust-lang-nursery/rust-clippy#usage", ") for more information." - ); - panic!("Aborting compilation due to incompatible compiler.") - } - - let current_date = str_to_ymd(¤t_date_str).unwrap(); - let min_date = str_to_ymd(&min_date_str).unwrap(); - - if current_date < min_date { - eprintln!( - "\n{} {}", - Red.bold().paint("error:"), - "Clippy does not support this version of rustc nightly." - ); - eprintln!( - "> {}{}{}", - "Use `", "rustup update", "` or your preferred method to update Rust." - ); - print_version_err(¤t_version, &*current_date_str); - panic!("Aborting compilation due to incompatible compiler.") - } -} - -fn correct_channel(version_meta: &VersionMeta) -> bool { - match version_meta.channel { - Channel::Stable | Channel::Beta => false, - Channel::Nightly | Channel::Dev => true, - } -} - -/// Convert a string of %Y-%m-%d to a single u32 maintaining ordering. -fn str_to_ymd(ymd: &str) -> Option { - let ymd: Vec = ymd.split("-").filter_map(|s| s.parse::().ok()).collect(); - if ymd.len() != 3 { - return None; - } - - let (y, m, d) = (ymd[0], ymd[1], ymd[2]); - Some((y << 9) | (m << 5) | d) -} diff --git a/min_version.txt b/min_version.txt deleted file mode 100644 index bd6a57973fc..00000000000 --- a/min_version.txt +++ /dev/null @@ -1,7 +0,0 @@ -rustc 1.28.0-nightly (e3bf634e0 2018-06-28) -binary: rustc -commit-hash: e3bf634e060bc2f8665878288bcea02008ca346e -commit-date: 2018-06-28 -host: x86_64-unknown-linux-gnu -release: 1.28.0-nightly -LLVM version: 6.0