summaryrefslogtreecommitdiffstats
path: root/builder
diff options
context:
space:
mode:
authorKornel <kornel@geekhood.net>2019-09-04 23:01:41 +0100
committerKornel <kornel@geekhood.net>2019-09-04 23:02:02 +0100
commitb3fe5f737f58b6bde586c8968af83caf4bb4a2e0 (patch)
treeaeecc18a4d54a301c9e534e333f411ae1d4f974d /builder
parent41bbaad4fc685e1bb9221702e18feffb93f8b1d8 (diff)
Collect broken pre-1.0 versions sparately
Diffstat (limited to 'builder')
-rw-r--r--builder/src/bin/export.rs29
1 files changed, 17 insertions, 12 deletions
diff --git a/builder/src/bin/export.rs b/builder/src/bin/export.rs
index 02fd6c7..c406c41 100644
--- a/builder/src/bin/export.rs
+++ b/builder/src/bin/export.rs
@@ -20,28 +20,30 @@ fn main() {
println!("9.9.9 rand <=0.3.8");
println!("9.9.9 pkg-config <=0.3.2");
- for (origin, rows) in db.get_all_compat().unwrap() {
- if !origin.is_crates_io() {
+ for c in db.get_all_compat().unwrap() {
+ if !c.origin.is_crates_io() || c.origin.short_crate_name() != "getopts" {
continue;
}
- let mut combined = HashMap::with_capacity(rows.len());
- if rows.iter().all(|(_, compat)| compat.newest_ok.is_none()) {
+ let mut combined = HashMap::with_capacity(c.rustc_versions.len());
+ if c.rustc_versions.iter().all(|(_, compat)| compat.crate_newest_ok.is_none()) {
// Can't build it at all, so it's probably our env that's broken, not the crate
continue;
}
- for (rust_ver, compat) in rows {
- if let Some(bork) = compat.oldest_bad {
- if compat.newest_ok.map_or(false, |n| n > bork) {
- // invalid data (old version didn't build, but a newer does build)
- continue;
+ for (rust_ver, compat) in c.rustc_versions {
+ if let Some(bork) = compat.crate_oldest_bad {
+ if let Some(n) = compat.crate_newest_ok {
+ if n > bork {
+ // invalid data (old version didn't build, but a newer does build)
+ continue;
+ }
}
- match combined.entry(bork) {
+ match combined.entry(bork.clone()) {
Entry::Vacant(e) => {
e.insert(rust_ver);
},
Entry::Occupied(mut e) => {
- if e.get() > &rust_ver {
+ if e.get() < &rust_ver {
e.insert(rust_ver);
}
},
@@ -49,10 +51,13 @@ fn main() {
}
}
// sort
- let name: Arc<str> = origin.short_crate_name().into();
+ let name: Arc<str> = c.origin.short_crate_name().into();
for (bork, rust_ver) in combined {
outputs.insert((rust_ver, name.clone(), bork));
}
+ if let Some(oldbork) = c.old_crates_broken_up_to {
+ println!("9.9.9 {} <={}", name, oldbork);
+ }
}
for (rust_ver, name, bork) in outputs {
println!("{} {} >={}", rust_ver, name, bork);