diff --git a/build-constraints.yaml b/build-constraints.yaml index 1c5045bd..7d0a195f 100644 --- a/build-constraints.yaml +++ b/build-constraints.yaml @@ -5205,18 +5205,18 @@ packages: - boxes - cassava - charsetdetect-ae # #6326/closed - - coercible-utils # 6271 + - coercible-utils # #6271 - compiler-warnings # #6326/closed - curl - docopt # #6326/closed - dynamic-state # #6326/closed - first-class-patterns # #5965/closed - ghc-trace-events # #6326/closed - - hashing # 6271 - - hnix-store-core # 6271 + - hashing # #6271 + - hnix-store-core # #6271 - ilist # #5965/closed - io-storage # #6326/closed - - monadlist # 6271 + - monadlist # #6271 - non-empty-sequence - numeric-limits # #6326/closed - oo-prototypes # #6326/closed @@ -5224,7 +5224,7 @@ packages: - opentelemetry-extra # #6326/closed - opentelemetry-lightstep # #6326/closed - opentelemetry-wai # #6326/closed - - path # 6271 + - path # #6271 - pattern-arrows - planb-token-introspection # #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 - crypto-pubkey # https://github.com/vincenthz/hs-crypto-pubkey/issues/23 - 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 - gitlab-haskell # https://github.com/commercialhaskell/stackage/issues/6088 - hspec-core # https://github.com/commercialhaskell/stackage/issues/6291 @@ -7713,7 +7712,6 @@ expected-benchmark-failures: # Compilation failures - OrderedBits # 0.0.2.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 - cryptohash # 0.11.9 https://github.com/vincenthz/hs-cryptohash/pull/43 - incremental-parser # 0.5.0.2 diff --git a/etc/commenter/src/lib.rs b/etc/commenter/src/lib.rs index 122cef28..994f310a 100644 --- a/etc/commenter/src/lib.rs +++ b/etc/commenter/src/lib.rs @@ -41,20 +41,20 @@ impl VersionTag { fn version(&self) -> &str { match self { - VersionTag::Manual(s) => &s, - VersionTag::Auto(s) => &s, + VersionTag::Manual(s) => s, + VersionTag::Auto(s) => s, } } } pub fn outdated() { let mut all: Vec = vec![]; - let disabled = handle(false, |_loc, lines| { + let versioned = handle(false, |_loc, lines| { all.extend(lines); vec![] }); let mut map: BTreeMap = BTreeMap::new(); - for DisabledPackage { package, version } in disabled { + for VersionedPackage { package, version } in versioned { map.insert(package, VersionTag::Manual(version)); } let mut support: BTreeMap<(String, String), BTreeSet<(String, String)>> = BTreeMap::new(); @@ -107,7 +107,7 @@ pub fn outdated() { let latest = latest_version(&package); if version != latest { 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 .into_iter() .take(max) @@ -177,34 +177,38 @@ enum State { Done, } -struct DisabledPackage { +struct VersionedPackage { package: String, version: String, } -fn parse_disabled_package(s: &str) -> Option { +fn parse_versioned_package(s: &str) -> Option { if let Some(caps) = regex!(r#"- *([^ ]+) < *0 *# *([\d.]+)"#).captures(s) { let package = caps.get(1).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 { None } } -fn handle(write: bool, mut f: F) -> Vec +fn handle(write: bool, mut f: F) -> Vec where F: FnMut(Location, Vec) -> Vec, { let path = "build-constraints.yaml"; let mut new_lines: Vec = vec![]; - let mut disabled_packages: Vec = vec![]; + let mut versioned_packages: Vec = vec![]; let mut state = State::LookingForLibBounds; let mut buf = vec![]; for line in read_lines(path).map(|s| s.unwrap()) { - if let Some(disabled_package) = parse_disabled_package(&line) { - disabled_packages.push(disabled_package); + if let Some(versioned_package) = parse_versioned_package(&line) { + versioned_packages.push(versioned_package); } match state { @@ -275,7 +279,7 @@ where file.flush().unwrap(); } - disabled_packages + versioned_packages } enum Location {