commenter outdated: Also check test/benchmark versions

This commit is contained in:
Adam Bergmark 2022-01-07 17:01:54 +01:00
parent feac404220
commit 99d2212abb
2 changed files with 22 additions and 20 deletions

View File

@ -5205,18 +5205,18 @@ packages:
- boxes - boxes
- cassava - cassava
- charsetdetect-ae # #6326/closed - charsetdetect-ae # #6326/closed
- coercible-utils # 6271 - coercible-utils # #6271
- compiler-warnings # #6326/closed - compiler-warnings # #6326/closed
- curl - curl
- docopt # #6326/closed - docopt # #6326/closed
- dynamic-state # #6326/closed - dynamic-state # #6326/closed
- first-class-patterns # #5965/closed - first-class-patterns # #5965/closed
- ghc-trace-events # #6326/closed - ghc-trace-events # #6326/closed
- hashing # 6271 - hashing # #6271
- hnix-store-core # 6271 - hnix-store-core # #6271
- ilist # #5965/closed - ilist # #5965/closed
- io-storage # #6326/closed - io-storage # #6326/closed
- monadlist # 6271 - monadlist # #6271
- non-empty-sequence - non-empty-sequence
- numeric-limits # #6326/closed - numeric-limits # #6326/closed
- oo-prototypes # #6326/closed - oo-prototypes # #6326/closed
@ -5224,7 +5224,7 @@ packages:
- opentelemetry-extra # #6326/closed - opentelemetry-extra # #6326/closed
- opentelemetry-lightstep # #6326/closed - opentelemetry-lightstep # #6326/closed
- opentelemetry-wai # #6326/closed - opentelemetry-wai # #6326/closed
- path # 6271 - path # #6271
- pattern-arrows - pattern-arrows
- planb-token-introspection # #6326/closed - planb-token-introspection # #6326/closed
- pointedlist # #6326/closed - pointedlist # #6326/closed
@ -7456,7 +7456,6 @@ expected-test-failures:
- cpio-conduit # Test file not in tarball https://github.com/da-x/cpio-conduit/issues/1 - cpio-conduit # Test file not in tarball https://github.com/da-x/cpio-conduit/issues/1
- crypto-pubkey # https://github.com/vincenthz/hs-crypto-pubkey/issues/23 - crypto-pubkey # https://github.com/vincenthz/hs-crypto-pubkey/issues/23
- doctest - doctest
- doctest-discover # 0.1.0.9 https://github.com/karun012/doctest-discover/issues/22
- ghc-events # https://github.com/haskell/ghc-events/issues/70 - ghc-events # https://github.com/haskell/ghc-events/issues/70
- gitlab-haskell # https://github.com/commercialhaskell/stackage/issues/6088 - gitlab-haskell # https://github.com/commercialhaskell/stackage/issues/6088
- hspec-core # https://github.com/commercialhaskell/stackage/issues/6291 - hspec-core # https://github.com/commercialhaskell/stackage/issues/6291
@ -7713,7 +7712,6 @@ expected-benchmark-failures:
# Compilation failures # Compilation failures
- OrderedBits # 0.0.2.0 - OrderedBits # 0.0.2.0
- aeson-combinators # 0.0.5.0 - aeson-combinators # 0.0.5.0
- cipher-blowfish # 0.0.11 https://github.com/vincenthz/hs-crypto-cipher/issues/46
- cmark-gfm # https://github.com/kivikakk/cmark-gfm-hs/issues/5 - cmark-gfm # https://github.com/kivikakk/cmark-gfm-hs/issues/5
- cryptohash # 0.11.9 https://github.com/vincenthz/hs-cryptohash/pull/43 - cryptohash # 0.11.9 https://github.com/vincenthz/hs-cryptohash/pull/43
- incremental-parser # 0.5.0.2 - incremental-parser # 0.5.0.2

View File

@ -41,20 +41,20 @@ impl VersionTag {
fn version(&self) -> &str { fn version(&self) -> &str {
match self { match self {
VersionTag::Manual(s) => &s, VersionTag::Manual(s) => s,
VersionTag::Auto(s) => &s, VersionTag::Auto(s) => s,
} }
} }
} }
pub fn outdated() { pub fn outdated() {
let mut all: Vec<String> = vec![]; let mut all: Vec<String> = vec![];
let disabled = handle(false, |_loc, lines| { let versioned = handle(false, |_loc, lines| {
all.extend(lines); all.extend(lines);
vec![] vec![]
}); });
let mut map: BTreeMap<String, VersionTag> = BTreeMap::new(); let mut map: BTreeMap<String, VersionTag> = BTreeMap::new();
for DisabledPackage { package, version } in disabled { for VersionedPackage { package, version } in versioned {
map.insert(package, VersionTag::Manual(version)); map.insert(package, VersionTag::Manual(version));
} }
let mut support: BTreeMap<(String, String), BTreeSet<(String, String)>> = BTreeMap::new(); let mut support: BTreeMap<(String, String), BTreeSet<(String, String)>> = BTreeMap::new();
@ -107,7 +107,7 @@ pub fn outdated() {
let latest = latest_version(&package); let latest = latest_version(&package);
if version != latest { if version != latest {
let max = 3; let max = 3;
let dependents_stripped = dependents.len().checked_sub(max).unwrap_or(0); let dependents_stripped = dependents.len().saturating_sub(max);
let dependents = dependents let dependents = dependents
.into_iter() .into_iter()
.take(max) .take(max)
@ -177,34 +177,38 @@ enum State {
Done, Done,
} }
struct DisabledPackage { struct VersionedPackage {
package: String, package: String,
version: String, version: String,
} }
fn parse_disabled_package(s: &str) -> Option<DisabledPackage> { fn parse_versioned_package(s: &str) -> Option<VersionedPackage> {
if let Some(caps) = regex!(r#"- *([^ ]+) < *0 *# *([\d.]+)"#).captures(s) { if let Some(caps) = regex!(r#"- *([^ ]+) < *0 *# *([\d.]+)"#).captures(s) {
let package = caps.get(1).unwrap().as_str().to_owned(); let package = caps.get(1).unwrap().as_str().to_owned();
let version = caps.get(2).unwrap().as_str().to_owned(); let version = caps.get(2).unwrap().as_str().to_owned();
Some(DisabledPackage { package, version }) Some(VersionedPackage { package, version })
} else if let Some(caps) = regex!(r#"- *([^ ]+) *# *([\d.]+)"#).captures(s) {
let package = caps.get(1).unwrap().as_str().to_owned();
let version = caps.get(2).unwrap().as_str().to_owned();
Some(VersionedPackage { package, version })
} else { } else {
None None
} }
} }
fn handle<F>(write: bool, mut f: F) -> Vec<DisabledPackage> fn handle<F>(write: bool, mut f: F) -> Vec<VersionedPackage>
where where
F: FnMut(Location, Vec<String>) -> Vec<String>, F: FnMut(Location, Vec<String>) -> Vec<String>,
{ {
let path = "build-constraints.yaml"; let path = "build-constraints.yaml";
let mut new_lines: Vec<String> = vec![]; let mut new_lines: Vec<String> = vec![];
let mut disabled_packages: Vec<DisabledPackage> = vec![]; let mut versioned_packages: Vec<VersionedPackage> = vec![];
let mut state = State::LookingForLibBounds; let mut state = State::LookingForLibBounds;
let mut buf = vec![]; let mut buf = vec![];
for line in read_lines(path).map(|s| s.unwrap()) { for line in read_lines(path).map(|s| s.unwrap()) {
if let Some(disabled_package) = parse_disabled_package(&line) { if let Some(versioned_package) = parse_versioned_package(&line) {
disabled_packages.push(disabled_package); versioned_packages.push(versioned_package);
} }
match state { match state {
@ -275,7 +279,7 @@ where
file.flush().unwrap(); file.flush().unwrap();
} }
disabled_packages versioned_packages
} }
enum Location { enum Location {