on master help sign in
commenter outdated: Also check test/benchmark versions
99d2212Adam Bergmark
build-constraints.yaml+5−7
@@ -5205,18 +5205,18 @@ packages:
5205 - boxes
5205 - boxes
5206 - cassava
5206 - cassava
5207 - charsetdetect-ae # #6326/closed
5207 - charsetdetect-ae # #6326/closed
5208− - coercible-utils # 6271
5208+ - coercible-utils # #6271
5209 - compiler-warnings # #6326/closed
5209 - compiler-warnings # #6326/closed
5210 - curl
5210 - curl
5211 - docopt # #6326/closed
5211 - docopt # #6326/closed
5212 - dynamic-state # #6326/closed
5212 - dynamic-state # #6326/closed
5213 - first-class-patterns # #5965/closed
5213 - first-class-patterns # #5965/closed
5214 - ghc-trace-events # #6326/closed
5214 - ghc-trace-events # #6326/closed
5215− - hashing # 6271
5215+ - hashing # #6271
5216− - hnix-store-core # 6271
5216+ - hnix-store-core # #6271
5217 - ilist # #5965/closed
5217 - ilist # #5965/closed
5218 - io-storage # #6326/closed
5218 - io-storage # #6326/closed
5219− - monadlist # 6271
5219+ - monadlist # #6271
5220 - non-empty-sequence
5220 - non-empty-sequence
5221 - numeric-limits # #6326/closed
5221 - numeric-limits # #6326/closed
5222 - oo-prototypes # #6326/closed
5222 - oo-prototypes # #6326/closed
@@ -5224,7 +5224,7 @@ packages:
5224 - opentelemetry-extra # #6326/closed
5224 - opentelemetry-extra # #6326/closed
5225 - opentelemetry-lightstep # #6326/closed
5225 - opentelemetry-lightstep # #6326/closed
5226 - opentelemetry-wai # #6326/closed
5226 - opentelemetry-wai # #6326/closed
5227− - path # 6271
5227+ - path # #6271
5228 - pattern-arrows
5228 - pattern-arrows
5229 - planb-token-introspection # #6326/closed
5229 - planb-token-introspection # #6326/closed
5230 - pointedlist # #6326/closed
5230 - pointedlist # #6326/closed
@@ -7456,7 +7456,6 @@ expected-test-failures:
7456 - cpio-conduit # Test file not in tarball https://github.com/da-x/cpio-conduit/issues/1
7456 - cpio-conduit # Test file not in tarball https://github.com/da-x/cpio-conduit/issues/1
7457 - crypto-pubkey # https://github.com/vincenthz/hs-crypto-pubkey/issues/23
7457 - crypto-pubkey # https://github.com/vincenthz/hs-crypto-pubkey/issues/23
7458 - doctest
7458 - doctest
7459− - doctest-discover # 0.1.0.9 https://github.com/karun012/doctest-discover/issues/22
7460 - ghc-events # https://github.com/haskell/ghc-events/issues/70
7459 - ghc-events # https://github.com/haskell/ghc-events/issues/70
7461 - gitlab-haskell # https://github.com/commercialhaskell/stackage/issues/6088
7460 - gitlab-haskell # https://github.com/commercialhaskell/stackage/issues/6088
7462 - hspec-core # https://github.com/commercialhaskell/stackage/issues/6291
7461 - hspec-core # https://github.com/commercialhaskell/stackage/issues/6291
@@ -7713,7 +7712,6 @@ expected-benchmark-failures:
7713 # Compilation failures
7712 # Compilation failures
7714 - OrderedBits # 0.0.2.0
7713 - OrderedBits # 0.0.2.0
7715 - aeson-combinators # 0.0.5.0
7714 - aeson-combinators # 0.0.5.0
7716− - cipher-blowfish # 0.0.11 https://github.com/vincenthz/hs-crypto-cipher/issues/46
7717 - cmark-gfm # https://github.com/kivikakk/cmark-gfm-hs/issues/5
7715 - cmark-gfm # https://github.com/kivikakk/cmark-gfm-hs/issues/5
7718 - cryptohash # 0.11.9 https://github.com/vincenthz/hs-cryptohash/pull/43
7716 - cryptohash # 0.11.9 https://github.com/vincenthz/hs-cryptohash/pull/43
7719 - incremental-parser # 0.5.0.2
7717 - incremental-parser # 0.5.0.2
etc/commenter/src/lib.rs+17−13
@@ -41,20 +41,20 @@ impl VersionTag {
41
41
42 fn version(&self) -> &str {
42 fn version(&self) -> &str {
43 match self {
43 match self {
44− VersionTag::Manual(s) => &s,
44+ VersionTag::Manual(s) => s,
45− VersionTag::Auto(s) => &s,
45+ VersionTag::Auto(s) => s,
46 }
46 }
47 }
47 }
48}
48}
49
49
50pub fn outdated() {
50pub fn outdated() {
51 let mut all: Vec<String> = vec![];
51 let mut all: Vec<String> = vec![];
52− let disabled = handle(false, |_loc, lines| {
52+ let versioned = handle(false, |_loc, lines| {
53 all.extend(lines);
53 all.extend(lines);
54 vec![]
54 vec![]
55 });
55 });
56 let mut map: BTreeMap<String, VersionTag> = BTreeMap::new();
56 let mut map: BTreeMap<String, VersionTag> = BTreeMap::new();
57− for DisabledPackage { package, version } in disabled {
57+ for VersionedPackage { package, version } in versioned {
58 map.insert(package, VersionTag::Manual(version));
58 map.insert(package, VersionTag::Manual(version));
59 }
59 }
60 let mut support: BTreeMap<(String, String), BTreeSet<(String, String)>> = BTreeMap::new();
60 let mut support: BTreeMap<(String, String), BTreeSet<(String, String)>> = BTreeMap::new();
@@ -107,7 +107,7 @@ pub fn outdated() {
107 let latest = latest_version(&package);
107 let latest = latest_version(&package);
108 if version != latest {
108 if version != latest {
109 let max = 3;
109 let max = 3;
110− let dependents_stripped = dependents.len().checked_sub(max).unwrap_or(0);
110+ let dependents_stripped = dependents.len().saturating_sub(max);
111 let dependents = dependents
111 let dependents = dependents
112 .into_iter()
112 .into_iter()
113 .take(max)
113 .take(max)
@@ -177,34 +177,38 @@ enum State {
177 Done,
177 Done,
178}
178}
179
179
180−struct DisabledPackage {
180+struct VersionedPackage {
181 package: String,
181 package: String,
182 version: String,
182 version: String,
183}
183}
184
184
185−fn parse_disabled_package(s: &str) -> Option<DisabledPackage> {
185+fn parse_versioned_package(s: &str) -> Option<VersionedPackage> {
186 if let Some(caps) = regex!(r#"- *([^ ]+) < *0 *# *([\d.]+)"#).captures(s) {
186 if let Some(caps) = regex!(r#"- *([^ ]+) < *0 *# *([\d.]+)"#).captures(s) {
187 let package = caps.get(1).unwrap().as_str().to_owned();
187 let package = caps.get(1).unwrap().as_str().to_owned();
188 let version = caps.get(2).unwrap().as_str().to_owned();
188 let version = caps.get(2).unwrap().as_str().to_owned();
189+ Some(VersionedPackage { package, version })
190+ } else if let Some(caps) = regex!(r#"- *([^ ]+) *# *([\d.]+)"#).captures(s) {
191+ let package = caps.get(1).unwrap().as_str().to_owned();
192+ let version = caps.get(2).unwrap().as_str().to_owned();
189− Some(DisabledPackage { package, version })
193+ Some(VersionedPackage { package, version })
190 } else {
194 } else {
191 None
195 None
192 }
196 }
193}
197}
194
198
195−fn handle<F>(write: bool, mut f: F) -> Vec<DisabledPackage>
199+fn handle<F>(write: bool, mut f: F) -> Vec<VersionedPackage>
196where
200where
197 F: FnMut(Location, Vec<String>) -> Vec<String>,
201 F: FnMut(Location, Vec<String>) -> Vec<String>,
198{
202{
199 let path = "build-constraints.yaml";
203 let path = "build-constraints.yaml";
200 let mut new_lines: Vec<String> = vec![];
204 let mut new_lines: Vec<String> = vec![];
201− let mut disabled_packages: Vec<DisabledPackage> = vec![];
205+ let mut versioned_packages: Vec<VersionedPackage> = vec![];
202
206
203 let mut state = State::LookingForLibBounds;
207 let mut state = State::LookingForLibBounds;
204 let mut buf = vec![];
208 let mut buf = vec![];
205 for line in read_lines(path).map(|s| s.unwrap()) {
209 for line in read_lines(path).map(|s| s.unwrap()) {
206− if let Some(disabled_package) = parse_disabled_package(&line) {
210+ if let Some(versioned_package) = parse_versioned_package(&line) {
207− disabled_packages.push(disabled_package);
211+ versioned_packages.push(versioned_package);
208 }
212 }
209
213
210 match state {
214 match state {
@@ -275,7 +279,7 @@ where
275 file.flush().unwrap();
279 file.flush().unwrap();
276 }
280 }
277
281
278− disabled_packages
282+ versioned_packages
279}
283}
280
284
281enum Location {
285enum Location {