on c463837 help sign in
8 files changed+164−381
since splitsnapshots
unifiedsplit
CURATORS.md+16−26 build-constraints.yaml+90−96 commenter−20 etc/commenter/latest-version/latest-version.cabal+1−1 etc/commenter/latest-version/src/Main.hs+7−17 etc/commenter/latest-version/stack.yaml.lock−13 etc/commenter/src/lib.rs+46−202 etc/commenter/src/main.rs+4−6
CURATORS.md+16−26
@@ -317,7 +317,7 @@ First run `build.sh` to regenerate updated `ltsXX/work/constraints.yaml` and `lt
317317
318318For an LTS minor bump, you'll typically want to:
319319
320−* Add constraints to package `range:` fields _under_ the `source:` field in that `constraints.yaml` (should not be necessary normally to edit `snapshot-incomplete.yaml` to change the version used for that package).
320+* Add constraints to package `range:` fields _under_ the `source:` field in that `constraints.yaml`, and edit `snapshot-incomplete.yaml` to change the version used for that package, if necessary.
321321* Add new packages to the `constraints.yaml` file
322322* Test, benchmark, haddock failures can also be added to package fields in the `constraints.yaml` if necessary, though it should be avoided if possible for LTS.
323323
@@ -422,16 +422,20 @@ errors for builds, tests and benchmarks.
422422
423423### Large scale enabling/disabling of packages
424424
425−`etc/commenter` is a binary that automates `build-constraints.yaml` workflows.
425+`etc/commenter` is a binary that mostly automates the translation of
426+`./check` errors into lines that go into `build-constraints.yaml`. It
427+can only handle bounds issues, compilation issues still need to be
428+handled manually.
429+
430+It disables all offending packages/test suites/benchmarks, so it is
431+only meant to be used when we close bounds issues and want to disable
432+packages, and when upgrading GHC.
426433
427434#### Setup
428435This is currently a rust program, You can install the rust toolchain
429436by using [rustup](https://rustup.rs/).
430437
431−For some commands you also need etc/commenter/latest-version installed.
432−```
433−stack install --stack-yaml etc/commenter/latest-version/stack.yaml
434−```
438+Then `cargo install --locked --path etc/commenter`
435439
436440#### Example usage
437441
@@ -452,7 +456,7 @@ testing-feat (GHC 9 bounds issues, Grandfathered dependencies) (not present) dep
452456
453457Now run:
454458```
455−./check 2>&1 >/dev/null | ./commenter add
459+./check 2>&1 >/dev/null | commenter add
456460```
457461
458462You will get this output:
@@ -479,8 +483,8 @@ Re-run this command until no more packages are disabled.
479483We can periodically remove all packages under the bounds sections and then re-run the disabling flow above until we get a clean plan. This will automatically pick up packages that have been fixed.
480484
481485```
482−./commenter clear
483−./check 2>&1 >/dev/null | ./commenter add
486+commenter clear
487+./check 2>&1 >/dev/null | commenter add
484488```
485489
486490Repeat the second command until no updates are made to build-constraints.yaml.
@@ -489,7 +493,7 @@ Repeat the second command until no updates are made to build-constraints.yaml.
489493
490494Run `stack update` before doing this.
491495
492−`./commenter outdated` looks through all bounds issues and library
496+`commenter outdated` looks through all bounds issues and library
493497compilation failures and compares the marked version with the latest hackage release. Example output is
494498
495499```
@@ -500,7 +504,7 @@ aeson mismatch, auto: 1.5.6.0, hackage: 2.0.2.0
500504where "manual" means the bound was added manually by a curator,
501505perhaps due to a compilation failure so we could try re-enabling the
502506package. "auto" means it's part of the sections generated by
503−`./commenter`, to update that run the `Re-enabling` step as documented
507+`commenter`, to update that run the `Re-enabling` step as documented
504508above.
505509
506510`outdated` only finds packages that are in the auto generated
@@ -516,7 +520,7 @@ To diff existing snapshots, or to evaluate changes before they end up
516520in a snapshot you can run:
517521
518522```
519−./commenter diff-snapshot <old-snapshot.yaml> <new-snapshot.yaml>
523+commenter diff-snapshot <old-snapshot.yaml> <new-snapshot.yaml>
520524```
521525
522526Existing snapshots can be retrieved from https://github.com/commercialhaskell/stackage-snapshots. Preliminary snapshots can be generated by running relevant parts of `automated/build.sh`, at the time of writing:
@@ -529,20 +533,6 @@ TARGET=nightly-2021-01-14 \ # the date doesn't matter
529533 curator snapshot
530534```
531535
532−#### Finding disabled packages with lots of dependents
533−
534−`./commenter disabled` prints the number of transitive dependents a disabled package has. Low hanging fruit to get a lot of packages included again.
535−
536−Example output:
537−```
538−[...]
539−stringable is disabled with 10 dependents
540−llvm-hs is disabled with 12 dependents
541−th-data-compat is disabled with 12 dependents
542−amazonka-core is disabled with 96 dependents
543−gogol-core is disabled with 96 dependents
544−```
545−
546536## Adding new curators
547537
5485381. Add public ssh key to `~/.ssh/authorized_keys` on build server
build-constraints.yaml+90−96
@@ -10,14 +10,6 @@ cabal-format-version: "3.0"
1010# Constraints for brand new builds
1111packages:
1212
13− "Xy Ren <xy.r@outlook.com> @re-xyr":
14− - cleff
15−
16− "Janus Troelsen <ysangkok@gmail.com> @ysangkok":
17− - ListZipper
18− - rollbar
19− - timezone-olson-th
20−
2113 "David Burkett <david@davidburkett.xyz> @Disco-Dave":
2214 - katip-wai
2315
@@ -74,7 +66,6 @@ packages:
7466 - regex-posix-clib
7567 - regex-tdfa
7668 - java-adt
77− - shelly
7869 - tasty-silver
7970
8071 "Diogo Biazus <diogo@biazus.ca>":
@@ -316,10 +307,8 @@ packages:
316307 - essence-of-live-coding-gloss
317308 - essence-of-live-coding-pulse
318309 - essence-of-live-coding-quickcheck
319− - essence-of-live-coding-warp
320310 - pulse-simple
321311 - simple-affine-space
322− - has-transformers
323312
324313 "Paul Johnson <paul@cogito.org.uk> @PaulJohnson":
325314 - geodetics
@@ -408,7 +397,7 @@ packages:
408397 - normalization-insensitive
409398
410399 "Jacob Stanley <jacob@stanley.io> @jacobstanley":
411− - hedgehog < 1.1 # https://github.com/commercialhaskell/stackage/issues/6415
400+ - hedgehog
412401 - hedgehog-quickcheck
413402 - transformers-bifunctors
414403 - unix-compat
@@ -766,7 +755,7 @@ packages:
766755 - cryptonite-conduit
767756 - streaming-commons
768757
769− - alex < 3.2.7 || > 3.2.7
758+ - alex
770759 - async
771760 - base16-bytestring
772761 - csv-conduit
@@ -775,7 +764,7 @@ packages:
775764 - foreign-store
776765 - formatting
777766 - gtk2hs-buildtools
778− - happy < 1.21.0 || > 1.21.0 # https://github.com/commercialhaskell/stackage/issues/6294
767+ - happy
779768 - hybrid-vectors
780769 - indents
781770 - language-c
@@ -901,6 +890,7 @@ packages:
901890 - wai-slack-middleware
902891 - sysinfo
903892 - xmonad-extras
893+ - shelly
904894 - persistent-redis
905895 - fakedata
906896 - fakedata-parser
@@ -1133,7 +1123,7 @@ packages:
11331123 - bugsnag-haskell
11341124 - gravatar
11351125 - load-env
1136− - yesod-auth-oauth2 < 0.7 # https://github.com/commercialhaskell/stackage/issues/6424
1126+ - yesod-auth-oauth2
11371127 - yesod-markdown
11381128 - yesod-paginator
11391129
@@ -2975,7 +2965,7 @@ packages:
29752965 - wai-session-postgresql
29762966
29772967 "Haisheng Wu <freizl@gmail.com> @freizl":
2978− - hoauth2 < 2.0 # https://github.com/commercialhaskell/stackage/issues/6424
2968+ - hoauth2
29792969
29802970 "Falko Peters <falko.peters@gmail.com> @informatikr":
29812971 - scrypt
@@ -3017,7 +3007,7 @@ packages:
30173007 "Justus Adam <dev@justus.science> @JustusAdam":
30183008 - marvin
30193009 - marvin-interpolate
3020− - mustache < 2.4.0 # https://github.com/commercialhaskell/stackage/issues/6421
3010+ - mustache
30213011 - exit-codes >= 1.0.0
30223012
30233013 "Cindy Wang <cindylinz@gmail.com> @CindyLinz":
@@ -3354,7 +3344,6 @@ packages:
33543344 - quote-quot
33553345 - tasty-bench
33563346 - tasty-inspection-testing
3357− - text-rope
33583347
33593348 "Ashley Yakeley <ashley@semantic.org> @AshleyYakeley":
33603349 - countable
@@ -3732,7 +3721,7 @@ packages:
37323721 - hslua-classes
37333722 - hslua-core
37343723 - hslua-marshalling
3735− - hslua-module-doclayout < 0 # https://github.com/commercialhaskell/stackage/issues/6416
3724+ - hslua-module-doclayout
37363725 - hslua-module-path
37373726 - hslua-module-system
37383727 - hslua-module-text
@@ -4439,7 +4428,7 @@ packages:
44394428 - gtk-strut
44404429 - rate-limit
44414430 - status-notifier-item
4442− - taffybar < 0 # https://github.com/taffybar/taffybar/issues/542
4431+ - taffybar
44434432 - time-units
44444433 - xml-helpers
44454434 - xdg-desktop-entry
@@ -4552,7 +4541,7 @@ packages:
45524541 - multi-containers
45534542
45544543 "Vaclav Svejcar <vaclav.svejcar@gmail.com> @vaclavsvejcar":
4555− - headroom
4544+ - headroom < 0 # 0.4.2.0 compile fail https://github.com/commercialhaskell/stackage/issues/6342
45564545 - vcs-ignore
45574546
45584547 "Adrian Sieber <stackage@ad-si.com> @ad-si":
@@ -4751,22 +4740,8 @@ packages:
47514740 "Ghais Issa <0x47@0x49.dev> @ghais":
47524741 - LetsBeRational
47534742
4754− "Edward Yang <qwbarch@gmail.com> @qwbarch":
4755− - captcha-core
4756− - captcha-2captcha
4757− - captcha-capmonster
4758− - data-default-extra
4759− - data-default-instances-base
4760− - data-default-instances-bytestring
4761− - data-default-instances-case-insensitive
4762− - data-default-instances-new-base
4763− - data-default-instances-text
4764− - data-default-instances-unordered-containers
4765− - data-default-instances-vector
4766−
47674743 "Grandfathered dependencies":
47684744 - Boolean
4769− - Cabal-syntax
47704745 - Decimal
47714746 - Diff
47724747 - FloatingHex
@@ -4894,7 +4869,7 @@ packages:
48944869 - dlist
48954870 - dlist-instances
48964871 - dlist-nonempty
4897− - double-conversion < 2.0.3.0 # https://github.com/commercialhaskell/stackage/issues/6417
4872+ - double-conversion
48984873 - dual-tree
48994874 - easy-file
49004875 - easytest
@@ -5444,8 +5419,8 @@ packages:
54445419 # for compilation failures as we need to build those packages to
54455420 # verify if they have been fixeq.
54465421 "Library and exe bounds failures":
5447− - BiobaseHTTP < 0 # tried BiobaseHTTP-1.2.0, but its *library* does not support: network-3.1.2.7
5448− - BlastHTTP < 0 # tried BlastHTTP-1.4.2, but its *library* does not support: network-3.1.2.7
5422+ - BiobaseHTTP < 0 # tried BiobaseHTTP-1.2.0, but its *library* does not support: network-3.1.2.5
5423+ - BlastHTTP < 0 # tried BlastHTTP-1.4.2, but its *library* does not support: network-3.1.2.5
54495424 - Chart-cairo < 0 # tried Chart-cairo-1.9.3, but its *library* requires the disabled package: cairo
54505425 - Chart-diagrams < 0 # tried Chart-diagrams-1.9.3, but its *library* does not support: SVGFonts-1.8.0.1
54515426 - EntrezHTTP < 0 # tried EntrezHTTP-1.0.4, but its *library* requires the disabled package: biocore
@@ -5456,7 +5431,7 @@ packages:
54565431 - HaskellNet < 0 # tried HaskellNet-0.6, but its *library* does not support: base-4.15.1.0
54575432 - HaskellNet-SSL < 0 # tried HaskellNet-SSL-0.3.4.4, but its *library* requires the disabled package: HaskellNet
54585433 - Hoed < 0 # tried Hoed-0.5.1, but its *library* requires the disabled package: regex-tdfa-text
5459− - IPv6DB < 0 # tried IPv6DB-0.3.2, but its *executable* does not support: fast-logger-3.1.1
5434+ - IPv6DB < 0 # tried IPv6DB-0.3.2, but its *executable* does not support: fast-logger-3.1.0
54605435 - IPv6DB < 0 # tried IPv6DB-0.3.2, but its *executable* does not support: optparse-applicative-0.16.1.0
54615436 - IPv6DB < 0 # tried IPv6DB-0.3.2, but its *library* does not support: IPv6Addr-2.0.4
54625437 - IPv6DB < 0 # tried IPv6DB-0.3.2, but its *library* does not support: aeson-1.5.6.0
@@ -5476,7 +5451,7 @@ packages:
54765451 - RNAlien < 0 # tried RNAlien-1.7.0, but its *library* does not support: BiobaseHTTP-1.2.0
54775452 - RNAlien < 0 # tried RNAlien-1.7.0, but its *library* does not support: BiobaseTypes-0.2.1.0
54785453 - RNAlien < 0 # tried RNAlien-1.7.0, but its *library* does not support: aeson-1.5.6.0
5479− - RNAlien < 0 # tried RNAlien-1.7.0, but its *library* does not support: network-3.1.2.7
5454+ - RNAlien < 0 # tried RNAlien-1.7.0, but its *library* does not support: network-3.1.2.5
54805455 - RNAlien < 0 # tried RNAlien-1.7.0, but its *library* requires the disabled package: hierarchical-clustering
54815456 - Spock < 0 # tried Spock-0.14.0.0, but its *library* requires the disabled package: Spock-core
54825457 - Spock-api-server < 0 # tried Spock-api-server-0.14.0.0, but its *library* requires the disabled package: Spock-core
@@ -5523,7 +5498,7 @@ packages:
55235498 - airship < 0 # tried airship-0.9.4, but its *library* does not support: wai-3.2.3
55245499 - airship < 0 # tried airship-0.9.4, but its *library* does not support: wai-extra-3.1.8
55255500 - alg < 0 # tried alg-0.2.13.1, but its *library* requires the disabled package: util
5526− - amazonka < 0 # tried amazonka-1.6.1, but its *library* does not support: http-client-0.7.10
5501+ - amazonka < 0 # tried amazonka-1.6.1, but its *library* does not support: http-client-0.7.9
55275502 - amazonka < 0 # tried amazonka-1.6.1, but its *library* does not support: unliftio-core-0.2.0.1
55285503 - amazonka-apigateway < 0 # tried amazonka-apigateway-1.6.1, but its *library* requires the disabled package: amazonka-core
55295504 - amazonka-application-autoscaling < 0 # tried amazonka-application-autoscaling-1.6.1, but its *library* requires the disabled package: amazonka-core
@@ -5549,7 +5524,7 @@ packages:
55495524 - amazonka-cognito-idp < 0 # tried amazonka-cognito-idp-1.6.1, but its *library* requires the disabled package: amazonka-core
55505525 - amazonka-cognito-sync < 0 # tried amazonka-cognito-sync-1.6.1, but its *library* requires the disabled package: amazonka-core
55515526 - amazonka-config < 0 # tried amazonka-config-1.6.1, but its *library* requires the disabled package: amazonka-core
5552− - amazonka-core < 0 # tried amazonka-core-1.6.1, but its *library* does not support: http-client-0.7.10
5527+ - amazonka-core < 0 # tried amazonka-core-1.6.1, but its *library* does not support: http-client-0.7.9
55535528 - amazonka-datapipeline < 0 # tried amazonka-datapipeline-1.6.1, but its *library* requires the disabled package: amazonka-core
55545529 - amazonka-devicefarm < 0 # tried amazonka-devicefarm-1.6.1, but its *library* requires the disabled package: amazonka-core
55555530 - amazonka-directconnect < 0 # tried amazonka-directconnect-1.6.1, but its *library* requires the disabled package: amazonka-core
@@ -5655,12 +5630,19 @@ packages:
56555630 - base-noprelude < 0 # tried base-noprelude-4.13.0.0, but its *library* does not support: base-4.15.1.0
56565631 - bcp47 < 0 # tried bcp47-0.2.0.5, but its *library* requires the disabled package: country
56575632 - bcp47-orphans < 0 # tried bcp47-orphans-0.1.0.4, but its *library* requires the disabled package: bcp47
5633+ - beam-core < 0 # tried beam-core-0.9.1.0, but its *library* does not support: dlist-1.0
5634+ - beam-core < 0 # tried beam-core-0.9.1.0, but its *library* does not support: ghc-prim-0.7.0
5635+ - beam-core < 0 # tried beam-core-0.9.1.0, but its *library* does not support: vector-sized-1.5.0
5636+ - beam-migrate < 0 # tried beam-migrate-0.5.1.0, but its *library* does not support: ghc-prim-0.7.0
56585637 - beam-mysql < 0 # tried beam-mysql-0.2.0.0, but its *library* does not support: aeson-1.5.6.0
5659− - beam-mysql < 0 # tried beam-mysql-0.2.0.0, but its *library* does not support: beam-core-0.9.2.0
5638+ - beam-mysql < 0 # tried beam-mysql-0.2.0.0, but its *library* does not support: beam-core-0.9.1.0
56605639 - beam-mysql < 0 # tried beam-mysql-0.2.0.0, but its *library* does not support: hashable-1.3.5.0
56615640 - beam-mysql < 0 # tried beam-mysql-0.2.0.0, but its *library* does not support: mysql-0.2.1
5641+ - beam-postgres < 0 # tried beam-postgres-0.5.1.0, but its *library* does not support: attoparsec-0.14.4
5642+ - beam-sqlite < 0 # tried beam-sqlite-0.5.1.0, but its *library* does not support: attoparsec-0.14.4
5643+ - beam-sqlite < 0 # tried beam-sqlite-0.5.1.0, but its *library* does not support: dlist-1.0
56625644 - bench-show < 0 # tried bench-show-0.3.1, but its *library* does not support: statistics-0.16.0.1
5663− - bhoogle < 0 # tried bhoogle-0.1.3.5, but its *executable* does not support: brick-0.66.1
5645+ - bhoogle < 0 # tried bhoogle-0.1.3.5, but its *executable* does not support: brick-0.65
56645646 - bhoogle < 0 # tried bhoogle-0.1.3.5, but its *executable* does not support: bytestring-0.10.12.1
56655647 - bhoogle < 0 # tried bhoogle-0.1.3.5, but its *executable* does not support: directory-1.3.6.2
56665648 - bhoogle < 0 # tried bhoogle-0.1.3.5, but its *executable* does not support: filepath-1.4.2.1
@@ -5707,13 +5689,16 @@ packages:
57075689 - chatwork < 0 # tried chatwork-0.1.3.5, but its *library* does not support: aeson-casing-0.2.0.0
57085690 - chatwork < 0 # tried chatwork-0.1.3.5, but its *library* does not support: connection-0.3.1
57095691 - chatwork < 0 # tried chatwork-0.1.3.5, but its *library* does not support: http-api-data-0.4.3
5710− - chatwork < 0 # tried chatwork-0.1.3.5, but its *library* does not support: http-client-0.7.10
5692+ - chatwork < 0 # tried chatwork-0.1.3.5, but its *library* does not support: http-client-0.7.9
57115693 - chatwork < 0 # tried chatwork-0.1.3.5, but its *library* does not support: req-3.9.2
57125694 - chronos < 0 # tried chronos-1.1.3, but its *library* requires the disabled package: bytebuild
57135695 - chronos < 0 # tried chronos-1.1.3, but its *library* requires the disabled package: byteslice
57145696 - chronos < 0 # tried chronos-1.1.3, but its *library* requires the disabled package: bytesmith
57155697 - chronos-bench < 0 # tried chronos-bench-0.2.0.2, but its *library* requires the disabled package: chronos
57165698 - clang-compilation-database < 0 # tried clang-compilation-database-0.1.0.1, but its *library* does not support: base-4.15.1.0
5699+ - clash-ghc < 0 # tried clash-ghc-1.4.6, but its *library* does not support: ghc-bignum-1.1
5700+ - clash-lib < 0 # tried clash-lib-1.4.6, but its *library* does not support: ghc-bignum-1.1
5701+ - clash-prelude < 0 # tried clash-prelude-1.4.6, but its *library* does not support: ghc-bignum-1.1
57175702 - classyplate < 0 # tried classyplate-0.3.2.0, but its *library* does not support: base-4.15.1.0
57185703 - classyplate < 0 # tried classyplate-0.3.2.0, but its *library* does not support: template-haskell-2.17.0.0
57195704 - clock-extras < 0 # tried clock-extras-0.1.0.2, but its *library* does not support: clock-0.8.2
@@ -5800,10 +5785,10 @@ packages:
58005785 - distributed-process-lifted < 0 # tried distributed-process-lifted-0.3.0.1, but its *library* requires the disabled package: distributed-process
58015786 - distributed-process-monad-control < 0 # tried distributed-process-monad-control-0.5.1.3, but its *library* requires the disabled package: distributed-process
58025787 - distributed-process-simplelocalnet < 0 # tried distributed-process-simplelocalnet-0.2.4, but its *library* does not support: containers-0.6.4.1
5803− - distributed-process-simplelocalnet < 0 # tried distributed-process-simplelocalnet-0.2.4, but its *library* does not support: network-3.1.2.7
5788+ - distributed-process-simplelocalnet < 0 # tried distributed-process-simplelocalnet-0.2.4, but its *library* does not support: network-3.1.2.5
58045789 - distributed-process-simplelocalnet < 0 # tried distributed-process-simplelocalnet-0.2.4, but its *library* does not support: network-transport-tcp-0.8.0
58055790 - distributed-process-simplelocalnet < 0 # tried distributed-process-simplelocalnet-0.2.4, but its *library* requires the disabled package: network-multicast
5806− - distributed-process-tests < 0 # tried distributed-process-tests-0.4.11, but its *library* does not support: network-3.1.2.7
5791+ - distributed-process-tests < 0 # tried distributed-process-tests-0.4.11, but its *library* does not support: network-3.1.2.5
58075792 - distributed-process-tests < 0 # tried distributed-process-tests-0.4.11, but its *library* does not support: random-1.2.1
58085793 - distributed-process-tests < 0 # tried distributed-process-tests-0.4.11, but its *library* requires the disabled package: rematch
58095794 - distribution < 0 # tried distribution-1.1.1.0, but its *library* does not support: containers-0.6.4.1
@@ -5861,6 +5846,7 @@ packages:
58615846 - ghc-clippy-plugin < 0 # tried ghc-clippy-plugin-0.0.0.1, but its *library* does not support: dhall-1.40.2
58625847 - ghc-clippy-plugin < 0 # tried ghc-clippy-plugin-0.0.0.1, but its *library* does not support: ghc-9.0.2
58635848 - ghc-syb-utils < 0 # tried ghc-syb-utils-0.3.0.0, but its *library* does not support: ghc-9.0.2
5849+ - ghc-typelits-extra < 0 # tried ghc-typelits-extra-0.4.3, but its *library* does not support: ghc-bignum-1.1
58645850 - ghcjs-dom < 0 # tried ghcjs-dom-0.9.5.0, but its *library* requires the disabled package: ghcjs-dom-jsaddle
58655851 - gi-gsk < 0 # tried gi-gsk-4.0.4, but its *library* does not support: gi-gdk-3.0.25
58665852 - gi-webkit2 < 0 # tried gi-webkit2-4.0.28, but its *library* requires the disabled package: gi-soup
@@ -5988,7 +5974,7 @@ packages:
59885974 - google-cloud < 0 # tried google-cloud-0.0.4, but its *library* does not support: base-4.15.1.0
59895975 - google-oauth2-jwt < 0 # tried google-oauth2-jwt-0.3.3, but its *library* does not support: base64-bytestring-1.2.1.0
59905976 - google-translate < 0 # tried google-translate-0.5, but its *library* does not support: http-api-data-0.4.3
5991− - google-translate < 0 # tried google-translate-0.5, but its *library* does not support: http-client-0.7.10
5977+ - google-translate < 0 # tried google-translate-0.5, but its *library* does not support: http-client-0.7.9
59925978 - graphql-client < 0 # tried graphql-client-1.1.1, but its *executable* does not support: path-0.9.2
59935979 - groundhog-inspector < 0 # tried groundhog-inspector-0.11.0, but its *library* does not support: groundhog-0.12.0
59945980 - groundhog-inspector < 0 # tried groundhog-inspector-0.11.0, but its *library* does not support: groundhog-th-0.12
@@ -5996,7 +5982,7 @@ packages:
59965982 - grouped-list < 0 # tried grouped-list-0.2.2.1, but its *library* does not support: base-4.15.1.0
59975983 - gtk3 < 0 # tried gtk3-0.15.6, but its *library* does not support: Cabal-3.4.1.0
59985984 - hOpenPGP < 0 # tried hOpenPGP-2.9.7, but its *library* requires the disabled package: ixset-typed
5999− - hackernews < 0 # tried hackernews-1.4.0.0, but its *library* does not support: http-client-0.7.10
5985+ - hackernews < 0 # tried hackernews-1.4.0.0, but its *library* does not support: http-client-0.7.9
60005986 - hackernews < 0 # tried hackernews-1.4.0.0, but its *library* does not support: servant-0.18.3
60015987 - hackernews < 0 # tried hackernews-1.4.0.0, but its *library* does not support: servant-client-0.18.3
60025988 - hadolint < 0 # tried hadolint-2.8.0, but its *library* does not support: deepseq-1.4.5.0
@@ -6027,7 +6013,7 @@ packages:
60276013 - haskell-tools-daemon < 0 # tried haskell-tools-daemon-1.1.1.0, but its *library* does not support: aeson-1.5.6.0
60286014 - haskell-tools-daemon < 0 # tried haskell-tools-daemon-1.1.1.0, but its *library* does not support: base-4.15.1.0
60296015 - haskell-tools-daemon < 0 # tried haskell-tools-daemon-1.1.1.0, but its *library* does not support: ghc-9.0.2
6030− - haskell-tools-daemon < 0 # tried haskell-tools-daemon-1.1.1.0, but its *library* does not support: network-3.1.2.7
6016+ - haskell-tools-daemon < 0 # tried haskell-tools-daemon-1.1.1.0, but its *library* does not support: network-3.1.2.5
60316017 - haskell-tools-daemon < 0 # tried haskell-tools-daemon-1.1.1.0, but its *library* does not support: optparse-applicative-0.16.1.0
60326018 - haskell-tools-daemon < 0 # tried haskell-tools-daemon-1.1.1.0, but its *library* does not support: strict-0.4.0.1
60336019 - haskell-tools-daemon < 0 # tried haskell-tools-daemon-1.1.1.0, but its *library* does not support: template-haskell-2.17.0.0
@@ -6058,8 +6044,8 @@ packages:
60586044 - haskell-tools-rewrite < 0 # tried haskell-tools-rewrite-1.1.1.0, but its *library* requires the disabled package: references
60596045 - haskey < 0 # tried haskey-0.3.1.0, but its *library* does not support: stm-containers-1.2
60606046 - haskey-mtl < 0 # tried haskey-mtl-0.3.1.0, but its *library* does not support: monad-control-1.0.3.1
6061− - haskoin-store < 0 # tried haskoin-store-0.64.18, but its *library* requires the disabled package: haskoin-node
6062− - haskoin-store < 0 # tried haskoin-store-0.64.18, but its *library* requires the disabled package: haskoin-store-data
6047+ - haskoin-store < 0 # tried haskoin-store-0.64.16, but its *library* requires the disabled package: haskoin-node
6048+ - haskoin-store < 0 # tried haskoin-store-0.64.16, but its *library* requires the disabled package: haskoin-store-data
60636049 - hasmin < 0 # tried hasmin-1.0.3, but its *executable* does not support: optparse-applicative-0.16.1.0
60646050 - hasmin < 0 # tried hasmin-1.0.3, but its *library* does not support: attoparsec-0.14.4
60656051 - haxl-amazonka < 0 # tried haxl-amazonka-0.1.1, but its *library* requires the disabled package: haxl
@@ -6068,7 +6054,7 @@ packages:
60686054 - heist < 0 # tried heist-1.1.0.1, but its *library* does not support: base-4.15.1.0
60696055 - heist < 0 # tried heist-1.1.0.1, but its *library* does not support: dlist-1.0
60706056 - herms < 0 # tried herms-1.9.0.4, but its *executable* does not support: ansi-terminal-0.11.1
6071− - herms < 0 # tried herms-1.9.0.4, but its *executable* does not support: brick-0.66.1
6057+ - herms < 0 # tried herms-1.9.0.4, but its *executable* does not support: brick-0.65
60726058 - herms < 0 # tried herms-1.9.0.4, but its *executable* does not support: optparse-applicative-0.16.1.0
60736059 - herms < 0 # tried herms-1.9.0.4, but its *executable* does not support: semigroups-0.19.2
60746060 - herms < 0 # tried herms-1.9.0.4, but its *executable* does not support: vty-5.33
@@ -6108,7 +6094,7 @@ packages:
61086094 - hsdev < 0 # tried hsdev-0.3.4.0, but its *library* does not support: ghc-boot-9.0.2
61096095 - hsdev < 0 # tried hsdev-0.3.4.0, but its *library* does not support: ghc-lib-parser-9.0.2.20211226
61106096 - hsdev < 0 # tried hsdev-0.3.4.0, but its *library* does not support: hlint-3.3.6
6111− - hsdev < 0 # tried hsdev-0.3.4.0, but its *library* does not support: http-client-0.7.10
6097+ - hsdev < 0 # tried hsdev-0.3.4.0, but its *library* does not support: http-client-0.7.9
61126098 - hsdev < 0 # tried hsdev-0.3.4.0, but its *library* does not support: lens-5.0.1
61136099 - hsdev < 0 # tried hsdev-0.3.4.0, but its *library* does not support: optparse-applicative-0.16.1.0
61146100 - hsdev < 0 # tried hsdev-0.3.4.0, but its *library* does not support: template-haskell-2.17.0.0
@@ -6121,7 +6107,7 @@ packages:
61216107 - hw-hspec-hedgehog < 0 # tried hw-hspec-hedgehog-0.1.1.0, but its *library* does not support: hspec-2.8.5
61226108 - hyraxAbif < 0 # tried hyraxAbif-0.2.3.27, but its *library* does not support: text-1.2.5.0
61236109 - idris < 0 # tried idris-1.3.4, but its *library* does not support: Cabal-3.4.1.0
6124− - idris < 0 # tried idris-1.3.4, but its *library* does not support: network-3.1.2.7
6110+ - idris < 0 # tried idris-1.3.4, but its *library* does not support: network-3.1.2.5
61256111 - importify < 0 # tried importify-1.0.1, but its *library* requires the disabled package: hse-cpp
61266112 - indentation-core < 0 # tried indentation-core-0.0.0.2, but its *library* does not support: base-4.15.1.0
61276113 - indentation-parsec < 0 # tried indentation-parsec-0.0.0.2, but its *library* does not support: base-4.15.1.0
@@ -6133,7 +6119,7 @@ packages:
61336119 - io-streams-haproxy < 0 # tried io-streams-haproxy-1.0.1.0, but its *library* does not support: base-4.15.1.0
61346120 - ipa < 0 # tried ipa-0.3.1.1, but its *library* does not support: unicode-transforms-0.4.0
61356121 - irc-dcc < 0 # tried irc-dcc-2.0.1, but its *library* does not support: attoparsec-0.14.4
6136− - irc-dcc < 0 # tried irc-dcc-2.0.1, but its *library* does not support: network-3.1.2.7
6122+ - irc-dcc < 0 # tried irc-dcc-2.0.1, but its *library* does not support: network-3.1.2.5
61376123 - irc-dcc < 0 # tried irc-dcc-2.0.1, but its *library* does not support: path-0.9.2
61386124 - it-has < 0 # tried it-has-0.2.0.0, but its *library* does not support: generic-lens-2.2.0.0
61396125 - ixset < 0 # tried ixset-1.1.1.1, but its *library* requires the disabled package: syb-with-class
@@ -6212,7 +6198,7 @@ packages:
62126198 - logging-effect-extra-handler < 0 # tried logging-effect-extra-handler-2.0.1, but its *library* does not support: prettyprinter-1.7.1
62136199 - logging-effect-extra-handler < 0 # tried logging-effect-extra-handler-2.0.1, but its *library* requires the disabled package: logging-effect
62146200 - loopbreaker < 0 # tried loopbreaker-0.1.1.1, but its *library* does not support: ghc-9.0.2
6215− - lxd-client < 0 # tried lxd-client-0.1.0.6, but its *library* does not support: network-3.1.2.7
6201+ - lxd-client < 0 # tried lxd-client-0.1.0.6, but its *library* does not support: network-3.1.2.5
62166202 - lxd-client < 0 # tried lxd-client-0.1.0.6, but its *library* does not support: servant-0.18.3
62176203 - lxd-client < 0 # tried lxd-client-0.1.0.6, but its *library* does not support: servant-client-0.18.3
62186204 - machines-directory < 0 # tried machines-directory-7.0.0.0, but its *library* requires the disabled package: machines-io
@@ -6224,12 +6210,12 @@ packages:
62246210 - map-syntax < 0 # tried map-syntax-0.3, but its *library* does not support: base-4.15.1.0
62256211 - markup < 0 # tried markup-4.2.0, but its *library* requires the disabled package: attoparsec-uri
62266212 - marvin < 0 # tried marvin-0.2.5, but its *library* does not support: aeson-1.5.6.0
6227− - marvin < 0 # tried marvin-0.2.5, but its *library* does not support: http-client-0.7.10
6213+ - marvin < 0 # tried marvin-0.2.5, but its *library* does not support: http-client-0.7.9
62286214 - marvin < 0 # tried marvin-0.2.5, but its *library* does not support: lens-5.0.1
62296215 - marvin < 0 # tried marvin-0.2.5, but its *library* requires the disabled package: marvin-interpolate
62306216 - mbug < 0 # tried mbug-1.3.2, but its *library* does not support: extra-1.7.10
62316217 - mbug < 0 # tried mbug-1.3.2, but its *library* does not support: formatting-7.1.3
6232− - mbug < 0 # tried mbug-1.3.2, but its *library* does not support: http-client-0.7.10
6218+ - mbug < 0 # tried mbug-1.3.2, but its *library* does not support: http-client-0.7.9
62336219 - mbug < 0 # tried mbug-1.3.2, but its *library* does not support: optparse-applicative-0.16.1.0
62346220 - mbug < 0 # tried mbug-1.3.2, but its *library* does not support: scalpel-core-0.6.2
62356221 - mbug < 0 # tried mbug-1.3.2, but its *library* does not support: time-1.9.3
@@ -6238,14 +6224,14 @@ packages:
62386224 - messagepack-rpc < 0 # tried messagepack-rpc-0.5.1, but its *library* does not support: containers-0.6.4.1
62396225 - microformats2-parser < 0 # tried microformats2-parser-1.0.2.0, but its *executable* requires the disabled package: aws-lambda-haskell-runtime-wai
62406226 - microformats2-parser < 0 # tried microformats2-parser-1.0.2.0, but its *library* requires the disabled package: xml-lens
6241− - microsoft-translator < 0 # tried microsoft-translator-0.1.2, but its *library* does not support: http-client-0.7.10
6227+ - microsoft-translator < 0 # tried microsoft-translator-0.1.2, but its *library* does not support: http-client-0.7.9
62426228 - microsoft-translator < 0 # tried microsoft-translator-0.1.2, but its *library* does not support: http-media-0.8.0.0
62436229 - microsoft-translator < 0 # tried microsoft-translator-0.1.2, but its *library* does not support: servant-0.18.3
62446230 - microsoft-translator < 0 # tried microsoft-translator-0.1.2, but its *library* does not support: servant-client-0.18.3
62456231 - microsoft-translator < 0 # tried microsoft-translator-0.1.2, but its *library* does not support: time-1.9.3
62466232 - midi-music-box < 0 # tried midi-music-box-0.0.1.2, but its *executable* requires the disabled package: diagrams-postscript
62476233 - milena < 0 # tried milena-0.5.4.0, but its *library* does not support: lens-5.0.1
6248− - milena < 0 # tried milena-0.5.4.0, but its *library* does not support: network-3.1.2.7
6234+ - milena < 0 # tried milena-0.5.4.0, but its *library* does not support: network-3.1.2.5
62496235 - milena < 0 # tried milena-0.5.4.0, but its *library* does not support: random-1.2.1
62506236 - milena < 0 # tried milena-0.5.4.0, but its *library* does not support: semigroups-0.19.2
62516237 - mini-egison < 0 # tried mini-egison-1.0.0, but its *library* requires the disabled package: egison-pattern-src
@@ -6275,7 +6261,7 @@ packages:
62756261 - msgpack-rpc < 0 # tried msgpack-rpc-1.0.0, but its *library* does not support: binary-conduit-1.3.1
62766262 - msgpack-rpc < 0 # tried msgpack-rpc-1.0.0, but its *library* does not support: conduit-1.3.4.2
62776263 - msgpack-rpc < 0 # tried msgpack-rpc-1.0.0, but its *library* does not support: conduit-extra-1.3.5
6278− - msgpack-rpc < 0 # tried msgpack-rpc-1.0.0, but its *library* does not support: network-3.1.2.7
6264+ - msgpack-rpc < 0 # tried msgpack-rpc-1.0.0, but its *library* does not support: network-3.1.2.5
62796265 - msgpack-rpc < 0 # tried msgpack-rpc-1.0.0, but its *library* does not support: random-1.2.1
62806266 - multistate < 0 # tried multistate-0.8.0.3, but its *library* does not support: base-4.15.1.0
62816267 - mwc-random-accelerate < 0 # tried mwc-random-accelerate-0.2.0.0, but its *library* requires the disabled package: accelerate
@@ -6294,7 +6280,8 @@ packages:
62946280 - netrc < 0 # tried netrc-0.2.0.0, but its *library* does not support: base-4.15.1.0
62956281 - network-anonymous-tor < 0 # tried network-anonymous-tor-0.11.0, but its *library* requires the disabled package: hexstring
62966282 - network-anonymous-tor < 0 # tried network-anonymous-tor-0.11.0, but its *library* requires the disabled package: network-attoparsec
6297− - network-msgpack-rpc < 0 # tried network-msgpack-rpc-0.0.6, but its *library* does not support: network-3.1.2.7
6283+ - network-msgpack-rpc < 0 # tried network-msgpack-rpc-0.0.6, but its *library* does not support: network-3.1.2.5
6284+ - network-msgpack-rpc < 0 # tried network-msgpack-rpc-0.0.6, but its *library* requires the disabled package: data-default-instances-base
62986285 - network-transport-inmemory < 0 # tried network-transport-inmemory-0.5.2, but its *library* does not support: containers-0.6.4.1
62996286 - nri-test-encoding < 0 # tried nri-test-encoding-0.1.1.1, but its *library* requires the disabled package: servant-auth-server
63006287 - numhask-prelude < 0 # tried numhask-prelude-0.5.0, but its *library* does not support: numhask-0.8.1.0
@@ -6318,7 +6305,7 @@ packages:
63186305 - persistable-record < 0 # tried persistable-record-0.6.0.5, but its *library* requires the disabled package: th-data-compat
63196306 - persistable-types-HDBC-pg < 0 # tried persistable-types-HDBC-pg-0.0.3.5, but its *library* requires the disabled package: persistable-record
63206307 - persistable-types-HDBC-pg < 0 # tried persistable-types-HDBC-pg-0.0.3.5, but its *library* requires the disabled package: relational-query-HDBC
6321− - persistent-mysql-haskell < 0 # tried persistent-mysql-haskell-0.6.0, but its *library* does not support: tls-1.5.7
6308+ - persistent-mysql-haskell < 0 # tried persistent-mysql-haskell-0.6.0, but its *library* does not support: tls-1.5.6
63226309 - pg-harness-server < 0 # tried pg-harness-server-0.6.2, but its *executable* does not support: random-1.2.1
63236310 - pg-harness-server < 0 # tried pg-harness-server-0.6.2, but its *executable* does not support: scotty-0.12
63246311 - picedit < 0 # tried picedit-0.2.3.0, but its *executable* requires the disabled package: cli
@@ -6337,9 +6324,9 @@ packages:
63376324 - pier-core < 0 # tried pier-core-0.3.0.0, but its *library* does not support: base64-bytestring-1.2.1.0
63386325 - pier-core < 0 # tried pier-core-0.3.0.0, but its *library* does not support: containers-0.6.4.1
63396326 - pier-core < 0 # tried pier-core-0.3.0.0, but its *library* does not support: hashable-1.3.5.0
6340− - pier-core < 0 # tried pier-core-0.3.0.0, but its *library* does not support: http-client-0.7.10
6327+ - pier-core < 0 # tried pier-core-0.3.0.0, but its *library* does not support: http-client-0.7.9
63416328 - pier-core < 0 # tried pier-core-0.3.0.0, but its *library* does not support: shake-0.19.6
6342− - pinboard < 0 # tried pinboard-0.10.2.0, but its *library* does not support: http-client-0.7.10
6329+ - pinboard < 0 # tried pinboard-0.10.2.0, but its *library* does not support: http-client-0.7.9
63436330 - pipes-category < 0 # tried pipes-category-0.3.0.0, but its *library* does not support: lens-5.0.1
63446331 - pipes-misc < 0 # tried pipes-misc-0.5.0.0, but its *library* requires the disabled package: pipes-category
63456332 - pipes-network-tls < 0 # tried pipes-network-tls-0.4, but its *library* requires the disabled package: pipes-network
@@ -6377,7 +6364,7 @@ packages:
63776364 - rakuten < 0 # tried rakuten-0.1.1.5, but its *library* does not support: connection-0.3.1
63786365 - rakuten < 0 # tried rakuten-0.1.1.5, but its *library* does not support: constraints-0.13.2
63796366 - rakuten < 0 # tried rakuten-0.1.1.5, but its *library* does not support: http-api-data-0.4.3
6380− - rakuten < 0 # tried rakuten-0.1.1.5, but its *library* does not support: http-client-0.7.10
6367+ - rakuten < 0 # tried rakuten-0.1.1.5, but its *library* does not support: http-client-0.7.9
63816368 - rakuten < 0 # tried rakuten-0.1.1.5, but its *library* does not support: lens-5.0.1
63826369 - rakuten < 0 # tried rakuten-0.1.1.5, but its *library* does not support: req-3.9.2
63836370 - rakuten < 0 # tried rakuten-0.1.1.5, but its *library* requires the disabled package: extensible
@@ -6406,10 +6393,10 @@ packages:
64066393 - rethinkdb-client-driver < 0 # tried rethinkdb-client-driver-0.0.25, but its *library* does not support: base-4.15.1.0
64076394 - rhine-gloss < 0 # tried rhine-gloss-0.7.0, but its *library* requires the disabled package: rhine
64086395 - riak < 0 # tried riak-1.2.0.0, but its *library* does not support: attoparsec-0.14.4
6409− - riak < 0 # tried riak-1.2.0.0, but its *library* does not support: network-3.1.2.7
6396+ - riak < 0 # tried riak-1.2.0.0, but its *library* does not support: network-3.1.2.5
64106397 - rollbar-hs < 0 # tried rollbar-hs-0.3.1.0, but its *library* does not support: aeson-1.5.6.0
6411− - rollbar-hs < 0 # tried rollbar-hs-0.3.1.0, but its *library* does not support: http-client-0.7.10
6412− - rollbar-hs < 0 # tried rollbar-hs-0.3.1.0, but its *library* does not support: network-3.1.2.7
6398+ - rollbar-hs < 0 # tried rollbar-hs-0.3.1.0, but its *library* does not support: http-client-0.7.9
6399+ - rollbar-hs < 0 # tried rollbar-hs-0.3.1.0, but its *library* does not support: network-3.1.2.5
64136400 - rollbar-hs < 0 # tried rollbar-hs-0.3.1.0, but its *library* does not support: time-1.9.3
64146401 - safe-tensor < 0 # tried safe-tensor-0.2.1.1, but its *library* does not support: singletons-3.0.1
64156402 - salak-toml < 0 # tried salak-toml-0.3.5.3, but its *library* requires the disabled package: tomland
@@ -6421,7 +6408,7 @@ packages:
64216408 - sendgrid-v3 < 0 # tried sendgrid-v3-0.3.0.0, but its *library* does not support: base-4.15.1.0
64226409 - sensu-run < 0 # tried sensu-run-0.7.0.5, but its *executable* does not support: aeson-1.5.6.0
64236410 - sensu-run < 0 # tried sensu-run-0.7.0.5, but its *executable* does not support: base-4.15.1.0
6424− - sensu-run < 0 # tried sensu-run-0.7.0.5, but its *executable* does not support: http-client-0.7.10
6411+ - sensu-run < 0 # tried sensu-run-0.7.0.5, but its *executable* does not support: http-client-0.7.9
64256412 - sensu-run < 0 # tried sensu-run-0.7.0.5, but its *executable* does not support: lens-5.0.1
64266413 - sensu-run < 0 # tried sensu-run-0.7.0.5, but its *executable* does not support: optparse-applicative-0.16.1.0
64276414 - seqloc < 0 # tried seqloc-0.6.1.1, but its *library* requires the disabled package: biocore
@@ -6488,7 +6475,7 @@ packages:
64886475 - sized-grid < 0 # tried sized-grid-0.2.0.1, but its *library* does not support: lens-5.0.1
64896476 - sized-grid < 0 # tried sized-grid-0.2.0.1, but its *library* does not support: random-1.2.1
64906477 - skeletons < 0 # tried skeletons-0.4.0, but its *executable* requires the disabled package: tinytemplate
6491− - slack-web < 0 # tried slack-web-0.4.0.0, but its *library* does not support: http-client-0.7.10
6478+ - slack-web < 0 # tried slack-web-0.4.0.0, but its *library* does not support: http-client-0.7.9
64926479 - smallcheck-series < 0 # tried smallcheck-series-0.7.1.0, but its *library* does not support: base-4.15.1.0
64936480 - smash-lens < 0 # tried smash-lens-0.1.0.1, but its *library* does not support: lens-5.0.1
64946481 - snap < 0 # tried snap-1.1.3.1, but its *library* does not support: aeson-1.5.6.0
@@ -6501,7 +6488,7 @@ packages:
65016488 - snap < 0 # tried snap-1.1.3.1, but its *library* requires the disabled package: snap-server
65026489 - snap-blaze < 0 # tried snap-blaze-0.2.1.5, but its *library* requires the disabled package: snap-core
65036490 - snap-core < 0 # tried snap-core-1.0.4.2, but its *library* does not support: attoparsec-0.14.4
6504− - socket-activation < 0 # tried socket-activation-0.1.0.2, but its *library* does not support: network-3.1.2.7
6491+ - socket-activation < 0 # tried socket-activation-0.1.0.2, but its *library* does not support: network-3.1.2.5
65056492 - sparkle < 0 # tried sparkle-0.7.4, but its *library* does not support: inline-java-0.10.0
65066493 - sparkle < 0 # tried sparkle-0.7.4, but its *library* does not support: jvm-0.6.0
65076494 - sparkle < 0 # tried sparkle-0.7.4, but its *library* requires the disabled package: distributed-closure
@@ -6526,17 +6513,17 @@ packages:
65266513 - sv-core < 0 # tried sv-core-0.5, but its *library* does not support: profunctors-5.6.2
65276514 - swagger-petstore < 0 # tried swagger-petstore-0.0.2.0, but its *library* does not support: containers-0.6.4.1
65286515 - swagger-petstore < 0 # tried swagger-petstore-0.0.2.0, but its *library* does not support: http-api-data-0.4.3
6529− - swagger-petstore < 0 # tried swagger-petstore-0.0.2.0, but its *library* does not support: http-client-0.7.10
6516+ - swagger-petstore < 0 # tried swagger-petstore-0.0.2.0, but its *library* does not support: http-client-0.7.9
65306517 - swagger-petstore < 0 # tried swagger-petstore-0.0.2.0, but its *library* does not support: http-media-0.8.0.0
65316518 - swagger-petstore < 0 # tried swagger-petstore-0.0.2.0, but its *library* does not support: katip-0.8.7.0
6532− - swagger-petstore < 0 # tried swagger-petstore-0.0.2.0, but its *library* does not support: network-3.1.2.7
6519+ - swagger-petstore < 0 # tried swagger-petstore-0.0.2.0, but its *library* does not support: network-3.1.2.5
65336520 - swagger2 < 0 # tried swagger2-2.7, but its *library* does not support: aeson-1.5.6.0
65346521 - sweet-egison < 0 # tried sweet-egison-0.1.1.3, but its *library* requires the disabled package: egison-pattern-src
65356522 - sweet-egison < 0 # tried sweet-egison-0.1.1.3, but its *library* requires the disabled package: egison-pattern-src-th-mode
65366523 - tasty-stats < 0 # tried tasty-stats-0.2.0.4, but its *library* does not support: containers-0.6.4.1
65376524 - tasty-stats < 0 # tried tasty-stats-0.2.0.4, but its *library* does not support: tasty-1.4.2.1
65386525 - tasty-stats < 0 # tried tasty-stats-0.2.0.4, but its *library* does not support: time-1.9.3
6539− - tcp-streams-openssl < 0 # tried tcp-streams-openssl-1.0.1.0, but its *library* does not support: network-3.1.2.7
6526+ - tcp-streams-openssl < 0 # tried tcp-streams-openssl-1.0.1.0, but its *library* does not support: network-3.1.2.5
65406527 - termcolor < 0 # tried termcolor-0.2.0.0, but its *executable* requires the disabled package: cli
65416528 - termonad < 0 # tried termonad-4.2.0.0, but its *library* requires the disabled package: xml-html-qq
65426529 - test-fixture < 0 # tried test-fixture-0.5.1.0, but its *library* does not support: template-haskell-2.17.0.0
@@ -6556,21 +6543,22 @@ packages:
65566543 - tonatona < 0 # tried tonatona-0.1.2.1, but its *library* does not support: base-4.15.1.0
65576544 - tonatona-logger < 0 # tried tonatona-logger-0.2.0.2, but its *library* does not support: base-4.15.1.0
65586545 - tonatona-persistent-postgresql < 0 # tried tonatona-persistent-postgresql-0.1.0.2, but its *library* does not support: base-4.15.1.0
6559− - tonatona-persistent-postgresql < 0 # tried tonatona-persistent-postgresql-0.1.0.2, but its *library* does not support: persistent-2.13.2.2
6560− - tonatona-persistent-postgresql < 0 # tried tonatona-persistent-postgresql-0.1.0.2, but its *library* does not support: persistent-postgresql-2.13.2.2
6546+ - tonatona-persistent-postgresql < 0 # tried tonatona-persistent-postgresql-0.1.0.2, but its *library* does not support: persistent-2.13.2.1
6547+ - tonatona-persistent-postgresql < 0 # tried tonatona-persistent-postgresql-0.1.0.2, but its *library* does not support: persistent-postgresql-2.13.2.1
65616548 - tonatona-persistent-sqlite < 0 # tried tonatona-persistent-sqlite-0.1.0.2, but its *library* does not support: base-4.15.1.0
6562− - tonatona-persistent-sqlite < 0 # tried tonatona-persistent-sqlite-0.1.0.2, but its *library* does not support: persistent-2.13.2.2
6563− - tonatona-persistent-sqlite < 0 # tried tonatona-persistent-sqlite-0.1.0.2, but its *library* does not support: persistent-sqlite-2.13.0.4
6549+ - tonatona-persistent-sqlite < 0 # tried tonatona-persistent-sqlite-0.1.0.2, but its *library* does not support: persistent-2.13.2.1
6550+ - tonatona-persistent-sqlite < 0 # tried tonatona-persistent-sqlite-0.1.0.2, but its *library* does not support: persistent-sqlite-2.13.0.3
65646551 - tonatona-servant < 0 # tried tonatona-servant-0.1.0.4, but its *library* does not support: base-4.15.1.0
65656552 - tonatona-servant < 0 # tried tonatona-servant-0.1.0.4, but its *library* does not support: servant-0.18.3
65666553 - tonatona-servant < 0 # tried tonatona-servant-0.1.0.4, but its *library* does not support: servant-server-0.18.3
65676554 - tonatona-servant < 0 # tried tonatona-servant-0.1.0.4, but its *library* does not support: wai-extra-3.1.8
65686555 - transformers-lift < 0 # tried transformers-lift-0.2.0.2, but its *library* does not support: base-4.15.1.0
65696556 - transformers-lift < 0 # tried transformers-lift-0.2.0.2, but its *library* does not support: writer-cps-transformers-0.5.6.1
6570− - transient-universe < 0 # tried transient-universe-0.6.0.1, but its *library* does not support: network-3.1.2.7
6557+ - transient-universe < 0 # tried transient-universe-0.6.0.1, but its *library* does not support: network-3.1.2.5
65716558 - tries < 0 # tried tries-0.0.6.1, but its *library* requires the disabled package: rose-trees
65726559 - true-name < 0 # tried true-name-0.1.0.3, but its *library* does not support: template-haskell-2.17.0.0
65736560 - type-combinators-singletons < 0 # tried type-combinators-singletons-0.2.1.0, but its *library* requires the disabled package: type-combinators
6561+ - tz < 0 # tried tz-0.1.3.5, but its *library* does not support: template-haskell-2.17.0.0
65746562 - ucam-webauth < 0 # tried ucam-webauth-0.1.0.0, but its *library* does not support: aeson-1.5.6.0
65756563 - ucam-webauth < 0 # tried ucam-webauth-0.1.0.0, but its *library* does not support: attoparsec-0.14.4
65766564 - ucam-webauth < 0 # tried ucam-webauth-0.1.0.0, but its *library* does not support: base-4.15.1.0
@@ -6592,13 +6580,13 @@ packages:
65926580 - vector-circular < 0 # tried vector-circular-0.1.3, but its *library* does not support: template-haskell-2.17.0.0
65936581 - vector-fftw < 0 # tried vector-fftw-0.1.4.0, but its *library* does not support: base-4.15.1.0
65946582 - viewprof < 0 # tried viewprof-0.0.0.33, but its *executable* does not support: base-4.15.1.0
6595− - viewprof < 0 # tried viewprof-0.0.0.33, but its *executable* does not support: brick-0.66.1
6583+ - viewprof < 0 # tried viewprof-0.0.0.33, but its *executable* does not support: brick-0.65
65966584 - viewprof < 0 # tried viewprof-0.0.0.33, but its *executable* does not support: lens-5.0.1
65976585 - viewprof < 0 # tried viewprof-0.0.0.33, but its *executable* does not support: vty-5.33
65986586 - wai-middleware-crowd < 0 # tried wai-middleware-crowd-0.1.4.2, but its *executable* does not support: optparse-applicative-0.16.1.0
65996587 - wai-middleware-metrics < 0 # tried wai-middleware-metrics-0.2.4, but its *library* requires the disabled package: ekg-core
66006588 - wai-middleware-rollbar < 0 # tried wai-middleware-rollbar-0.11.0, but its *library* does not support: aeson-1.5.6.0
6601− - wai-middleware-rollbar < 0 # tried wai-middleware-rollbar-0.11.0, but its *library* does not support: http-client-0.7.10
6589+ - wai-middleware-rollbar < 0 # tried wai-middleware-rollbar-0.11.0, but its *library* does not support: http-client-0.7.9
66026590 - wai-middleware-rollbar < 0 # tried wai-middleware-rollbar-0.11.0, but its *library* does not support: time-1.9.3
66036591 - wai-middleware-throttle < 0 # tried wai-middleware-throttle-0.3.0.1, but its *library* requires the disabled package: token-bucket
66046592 - wai-routing < 0 # tried wai-routing-0.13.0, but its *library* requires the disabled package: wai-predicates
@@ -6613,7 +6601,7 @@ packages:
66136601 - web3 < 0 # tried web3-0.9.1.0, but its *library* does not support: base-4.15.1.0
66146602 - web3 < 0 # tried web3-0.9.1.0, but its *library* does not support: cryptonite-0.29
66156603 - web3 < 0 # tried web3-0.9.1.0, but its *library* does not support: hspec-2.8.5
6616− - web3 < 0 # tried web3-0.9.1.0, but its *library* does not support: http-client-0.7.10
6604+ - web3 < 0 # tried web3-0.9.1.0, but its *library* does not support: http-client-0.7.9
66176605 - web3 < 0 # tried web3-0.9.1.0, but its *library* does not support: memory-0.16.0
66186606 - web3 < 0 # tried web3-0.9.1.0, but its *library* does not support: servant-0.18.3
66196607 - web3 < 0 # tried web3-0.9.1.0, but its *library* does not support: servant-client-0.18.3
@@ -6635,7 +6623,7 @@ packages:
66356623 - xml-isogen < 0 # tried xml-isogen-0.3.0, but its *library* requires the disabled package: dom-parser
66366624 - yeshql < 0 # tried yeshql-4.2.0.0, but its *library* does not support: yeshql-core-4.2.0.0
66376625 - yeshql < 0 # tried yeshql-4.2.0.0, but its *library* requires the disabled package: yeshql-hdbc
6638− - yesod-auth-bcryptdb < 0 # tried yesod-auth-bcryptdb-0.3.0.1, but its *library* does not support: persistent-2.13.2.2
6626+ - yesod-auth-bcryptdb < 0 # tried yesod-auth-bcryptdb-0.3.0.1, but its *library* does not support: persistent-2.13.2.1
66396627 - yesod-auth-bcryptdb < 0 # tried yesod-auth-bcryptdb-0.3.0.1, but its *library* does not support: yesod-auth-1.6.10.5
66406628 - yesod-auth-bcryptdb < 0 # tried yesod-auth-bcryptdb-0.3.0.1, but its *library* does not support: yesod-core-1.6.21.0
66416629 - yesod-auth-bcryptdb < 0 # tried yesod-auth-bcryptdb-0.3.0.1, but its *library* does not support: yesod-form-1.7.0
@@ -6692,7 +6680,6 @@ packages:
66926680 - greskell-websocket < 1.0.0.0
66936681 - hruby < 0.4.0.0
66946682 - hspec-expectations-json < 1.0.0.5
6695− - http2 < 3.0.3
66966683 - jose < 0.9
66976684 - jsonpath < 0.2.1.0
66986685 - kanji < 3.5
@@ -6707,6 +6694,11 @@ packages:
67076694 - stripe-wreq < 1.0.1.12
67086695 - yaml < 0.11.7
67096696
6697+ # happy-1.21.0 is deprecated an unbuildable
6698+ # https://github.com/commercialhaskell/stackage/issues/6294
6699+ # see also https://github.com/commercialhaskell/stackage/issues/6242
6700+ - happy < 1.21
6701+
67106702 # https://github.com/commercialhaskell/stackage/issues/6264
67116703 # Requires GHC 9.2
67126704 # Any new package-version that must use GHC 9.2 should be added here.
@@ -6770,6 +6762,13 @@ packages:
67706762 # https://github.com/commercialhaskell/stackage/issues/6395
67716763 - wuss < 2.0
67726764
6765+ # https://github.com/commercialhaskell/stackage/issues/6396
6766+ # https://github.com/commercialhaskell/stackage/issues/6397
6767+ # https://github.com/commercialhaskell/stackage/issues/6398
6768+ - pandoc < 2.17
6769+ - texmath < 0.12.4
6770+ - ipynb < 0.2
6771+
67736772 # https://github.com/haskell-game/sdl2/issues/240 (need newer Ubuntu)
67746773 - sdl2 < 2.5.3.1
67756774
@@ -7003,9 +7002,6 @@ skipped-tests:
70037002 - hpqtypes-extras # needs a running postgres database
70047003 # norfairking
70057004 - autodocodec # runs doctest
7006− - captcha-core
7007− - captcha-2captcha
7008− - captcha-capmonster
70097005
70107006 # Uses Cabal's "library internal" stanza feature
70117007 - s3-signer
@@ -7053,7 +7049,7 @@ skipped-tests:
70537049 # Test bounds issues
70547050 - ENIG # tried ENIG-0.0.1.0, but its *test-suite* requires the disabled package: test-framework-th
70557051 - IPv6DB # tried IPv6DB-0.3.2, but its *test-suite* does not support: hspec-2.8.5
7056− - IPv6DB # tried IPv6DB-0.3.2, but its *test-suite* does not support: http-client-0.7.10
7052+ - IPv6DB # tried IPv6DB-0.3.2, but its *test-suite* does not support: http-client-0.7.9
70577053 - MissingH # tried MissingH-1.4.3.0, but its *test-suite* requires the disabled package: errorcall-eq-instance
70587054 - aeson # tried aeson-1.5.6.0, but its *test-suite* does not support: hashable-time-0.3
70597055 - airship # tried airship-0.9.4, but its *test-suite* does not support: tasty-1.4.2.1
@@ -7114,6 +7110,7 @@ skipped-tests:
71147110 - generic-xmlpickler # tried generic-xmlpickler-0.1.0.6, but its *test-suite* does not support: tasty-1.4.2.1
71157111 - ghc-prof # tried ghc-prof-1.4.1.9, but its *test-suite* does not support: attoparsec-0.14.4
71167112 - gitlib-libgit2 # tried gitlib-libgit2-3.1.2.1, but its *test-suite* requires the disabled package: gitlib-test
7113+ - hackage-security # tried hackage-security-0.6.0.1, but its *test-suite* does not support: tasty-1.4.2.1
71177114 - haddock-library # tried haddock-library-1.10.0, but its *test-suite* does not support: hspec-2.8.5
71187115 - haddock-library # tried haddock-library-1.10.0, but its *test-suite* does not support: hspec-discover-2.8.5
71197116 - haddock-library # tried haddock-library-1.10.0, but its *test-suite* does not support: optparse-applicative-0.16.1.0
@@ -7123,7 +7120,7 @@ skipped-tests:
71237120 - haskell-tools-cli # tried haskell-tools-cli-1.1.1.0, but its *test-suite* requires the disabled package: knob
71247121 - haskell-tools-daemon # tried haskell-tools-daemon-1.1.1.0, but its *test-suite* does not support: Glob-0.10.2
71257122 - haskell-tools-daemon # tried haskell-tools-daemon-1.1.1.0, but its *test-suite* does not support: tasty-1.4.2.1
7126− - haskell-tools-demo # tried haskell-tools-demo-1.1.1.0, but its *test-suite* does not support: network-3.1.2.7
7123+ - haskell-tools-demo # tried haskell-tools-demo-1.1.1.0, but its *test-suite* does not support: network-3.1.2.5
71277124 - haskell-tools-demo # tried haskell-tools-demo-1.1.1.0, but its *test-suite* does not support: tasty-1.4.2.1
71287125 - haskell-tools-refactor # tried haskell-tools-refactor-1.1.1.0, but its *test-suite* does not support: polyparse-1.13
71297126 - haskell-tools-refactor # tried haskell-tools-refactor-1.1.1.0, but its *test-suite* does not support: tasty-1.4.2.1
@@ -7235,7 +7232,7 @@ skipped-tests:
72357232 - simple-log # tried simple-log-0.9.12, but its *test-suite* does not support: hspec-2.8.5
72367233 - sized-grid # tried sized-grid-0.2.0.1, but its *test-suite* does not support: ansi-terminal-0.11.1
72377234 - snap # tried snap-1.1.3.1, but its *test-suite* does not support: QuickCheck-2.14.2
7238− - stb-image-redux # tried stb-image-redux-0.2.1.2, but its *test-suite* does not support: hspec-2.8.5
7235+ - stb-image-redux # tried stb-image-redux-0.2.1.3, but its *test-suite* does not support: hspec-2.8.5
72397236 - stm-supply # tried stm-supply-0.2.0.0, but its *test-suite* requires the disabled package: Unique
72407237 - streaming-cassava # tried streaming-cassava-0.2.0.0, but its *test-suite* does not support: hspec-2.8.5
72417238 - stripe-http-client # tried stripe-http-client-2.6.2, but its *test-suite* does not support: hspec-2.8.5
@@ -7253,6 +7250,7 @@ skipped-tests:
72537250 - temporary-resourcet # tried temporary-resourcet-0.1.0.1, but its *test-suite* does not support: tasty-1.4.2.1
72547251 - test-framework # tried test-framework-0.8.2.0, but its *test-suite* requires the disabled package: libxml
72557252 - transient # tried transient-0.7.0.0, but its *test-suite* does not support: random-1.2.1
7253+ - tzdata # tried tzdata-0.2.20201021.0, but its *test-suite* requires the disabled package: test-framework-th
72567254 - ucam-webauth # tried ucam-webauth-0.1.0.0, but its *test-suite* does not support: QuickCheck-2.14.2
72577255 - ucam-webauth # tried ucam-webauth-0.1.0.0, but its *test-suite* does not support: generic-random-1.5.0.1
72587256 - ucam-webauth # tried ucam-webauth-0.1.0.0, but its *test-suite* does not support: hspec-2.8.5
@@ -7277,8 +7275,6 @@ skipped-tests:
72777275 # https://github.com/commercialhaskell/stackage/issues/6363
72787276 - amqp
72797277
7280− - c2hs # https://github.com/commercialhaskell/stackage/issues/6420
7281−
72827278# end of skipped-tests
72837279
72847280# Tests listed in expected-test-failures configure correctly but may fail to run
@@ -7554,7 +7550,6 @@ expected-test-failures:
75547550 - xml-picklers # https://github.com/Philonous/xml-picklers/issues/5
75557551 - xmlbf
75567552 - yesod-gitrev # needs a git repo https://github.com/commercialhaskell/stackage/issues/6132
7557− - yesod-markdown # https://github.com/pbrisbin/yesod-markdown/issues/77
75587553
75597554 # Assertion failures due to module name ambiguity.
75607555 # These _should_ be fixed by using the `hide` section of this file
@@ -8035,7 +8030,6 @@ no-revisions:
80358030- hi-file-parser
80368031
80378032
8038−# Note, this no longer actually does anything with curator2 unfortunately:
80398033# Do not build these packages in parallel with others. Useful for high memory
80408034# usage.
80418035non-parallel-builds:
commenterdeleted−20
@@ -1,20 +0,0 @@
1−#!/usr/bin/env bash
2−
3−if ! command -v cargo
4−then
5− echo "Rust doesn't seem to be installed. https://rustup.rs/"
6− exit 1
7−fi
8−
9−if [ "$1" = "outdated" ];
10−then
11− if ! command -v latest-version &> /dev/null
12− then
13− echo "This command requires latest-version in your PATH"
14− echo "Install it with: "
15− echo "stack install --stack-yaml etc/commenter/latest-version/stack.yaml"
16− exit 1
17− fi
18−fi
19−
20−cargo run -q --release --manifest-path etc/commenter/Cargo.toml $@
etc/commenter/latest-version/latest-version.cabal+1−1
@@ -12,7 +12,7 @@ cabal-version: >=1.10
1212extra-source-files: README.md
1313
1414executable latest-version
15− ghc-options: -Wall -threaded
15+ ghc-options: -Wall
1616 hs-source-dirs: src
1717 main-is: Main.hs
1818 default-language: Haskell2010
etc/commenter/latest-version/src/Main.hs+7−17
@@ -9,20 +9,10 @@ import System.Environment
99import qualified Data.Map as Map
1010
1111main :: IO ()
12−main = do
13− args <- getArgs
14− (onlyVersion, packages) <- pure $ case args of
15− "only-version" : packages -> (True, packages)
16− packages -> (False, packages)
17− runPantryApp $ liftIO . putStrLn . unlines_ =<< mapM (latestVersion onlyVersion) packages
18− where
19− -- unlines adds an extra trailing newline which can be annoying...
20− unlines_ = intercalate "\n"
21−
22−latestVersion :: (HasPantryConfig env, HasLogFunc env) => Bool -> String -> RIO env String
23−latestVersion onlyVersion name = fmap (displayVersion onlyVersion) . getVersion . mkPackageName $ name
24− where
25− showVersion = intercalate "." . map show . versionNumbers . fst . head . Map.toDescList
26− getVersion = getHackagePackageVersions YesRequireHackageIndex UsePreferredVersions
27− displayVersion True v = showVersion v
28− displayVersion False v = name <> "-" <> showVersion v
12+main =
13+ runPantryApp $
14+ liftIO . putStrLn
15+ . intercalate "." . map show . versionNumbers
16+ . fst . head . Map.toDescList
17+ =<< getHackagePackageVersions YesRequireHackageIndex IgnorePreferredVersions
18+ . mkPackageName =<< head <$> liftIO getArgs
etc/commenter/latest-version/stack.yaml.lockdeleted−13
@@ -1,13 +0,0 @@
1−# This file was autogenerated by Stack.
2−# You should not edit this file by hand.
3−# For more information, please see the documentation at:
4−# https://docs.haskellstack.org/en/stable/lock_files
5−
6−packages: []
7−snapshots:
8−- completed:
9− size: 586296
10− url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/18/18.yaml
11− sha256: 63539429076b7ebbab6daa7656cfb079393bf644971156dc349d7c0453694ac2
12− original:
13− url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/18/18.yaml
etc/commenter/src/lib.rs+46−202
@@ -30,8 +30,8 @@ pub fn add(lib: Vec<String>, test: Vec<String>, bench: Vec<String>) {
3030}
3131
3232enum VersionTag {
33− Manual(Version),
34− Auto(Version),
33+ Manual(String),
34+ Auto(String),
3535}
3636
3737impl VersionTag {
@@ -42,7 +42,7 @@ impl VersionTag {
4242 }
4343 }
4444
45− fn version(&self) -> &Version {
45+ fn version(&self) -> &str {
4646 match self {
4747 VersionTag::Manual(s) => s,
4848 VersionTag::Auto(s) => s,
@@ -52,50 +52,41 @@ impl VersionTag {
5252
5353pub fn outdated() {
5454 let mut all: Vec<String> = vec![];
55− let (versioned, disabled) = handle(false, |_loc, lines| {
55+ let versioned = handle(false, |_loc, lines| {
5656 all.extend(lines);
5757 vec![]
5858 });
59−
60− for DisabledPackage { package } in disabled {
61− println!("WARN: {package} is disabled without a noted version");
62− }
63−
64− let mut map: BTreeMap<Package, VersionTag> = BTreeMap::new();
59+ let mut map: BTreeMap<String, VersionTag> = BTreeMap::new();
6560 for VersionedPackage { package, version } in versioned {
6661 map.insert(package, VersionTag::Manual(version));
6762 }
68− let mut support: BTreeMap<(Package, Version), BTreeSet<(Package, Version)>> = BTreeMap::new();
63+ let mut support: BTreeMap<(String, String), BTreeSet<(String, String)>> = BTreeMap::new();
6964 for v in all.into_iter() {
7065 let caps = regex!("tried ([^ ]+)-([^,-]+),").captures(&v).unwrap();
71− let package = Package(caps.get(1).unwrap().as_str().to_owned());
72− let version = Version(caps.get(2).unwrap().as_str().to_owned());
66+ let package = caps.get(1).unwrap().as_str().to_owned();
67+ let version = caps.get(2).unwrap().as_str().to_owned();
7368 map.insert(package.clone(), VersionTag::Auto(version.clone()));
7469
7570 if let Some(caps) = regex!("does not support: ([^ ]+)-([^-]+)").captures(&v) {
76− let dep_package = Package(caps.get(1).unwrap().as_str().to_owned());
77− let dep_version = Version(caps.get(2).unwrap().as_str().to_owned());
71+ let dep_package = caps.get(1).unwrap().as_str().to_owned();
72+ let dep_version = caps.get(2).unwrap().as_str().to_owned();
7873 let entry = support.entry((dep_package, dep_version)).or_default();
7974 entry.insert((package, version));
8075 }
8176 }
8277
83− let latest_versions = {
84− let mut packages: Vec<Package> = map.iter().map(|(package, _)| package.clone()).collect();
85− packages.append(
86− &mut support
87− .iter()
88− .map(|((package, _), _)| package.clone())
89− .collect(),
90− );
91− latest_version(packages.into_iter())
92− };
78+ let entries = map.len() + support.len();
79+ let mut i = 0;
9380
9481 for (package, version) in map {
9582 if is_boot(&package) {
9683 continue;
9784 }
98− let latest = latest_versions.get(&package).unwrap();
85+ if i % 100 == 0 {
86+ println!("{:02}%", ((i as f64 / entries as f64) * 100.0).floor());
87+ }
88+ i += 1;
89+ let latest = latest_version(&package);
9990 if version.version() != latest {
10091 println!(
10192 "{package} mismatch, {tag}: {version}, hackage: {latest}",
@@ -110,8 +101,12 @@ pub fn outdated() {
110101 continue;
111102 }
112103
113− let latest = latest_versions.get(&package).unwrap();
114− if &version != latest {
104+ if i % 100 == 0 {
105+ println!("{:02}%", ((i as f64 / entries as f64) * 100.0).floor());
106+ }
107+ i += 1;
108+ let latest = latest_version(&package);
109+ if version != latest {
115110 let max = 3;
116111 let dependents_stripped = dependents.len().saturating_sub(max);
117112 let dependents = dependents
@@ -133,7 +128,7 @@ pub fn outdated() {
133128 }
134129}
135130
136−fn is_boot(package: &Package) -> bool {
131+fn is_boot(package: &str) -> bool {
137132 [
138133 "Cabal",
139134 "base",
@@ -156,26 +151,20 @@ fn is_boot(package: &Package) -> bool {
156151 "text",
157152 "time",
158153 ]
159− .contains(&&*package.0)
154+ .contains(&package)
160155}
161156
162−fn latest_version(packages: impl Iterator<Item = Package>) -> BTreeMap<Package, Version> {
157+fn latest_version(pkg: &str) -> String {
163158 String::from_utf8(
164159 Command::new("latest-version")
165− .args(packages.map(|p| p.0))
160+ .args([pkg])
166161 .output()
167− .expect("Could not find latest-version in PATH")
162+ .unwrap()
168163 .stdout,
169164 )
170165 .unwrap()
171166 .trim()
172167 .to_owned()
173− .lines()
174− .map(|s| {
175− let VersionedPackage { package, version } = parse_versioned_package_canonical(s).unwrap();
176− (package, version)
177− })
178− .collect()
179168}
180169
181170enum State {
@@ -188,69 +177,38 @@ enum State {
188177 Done,
189178}
190179
191−#[derive(PartialEq, Eq, Debug)]
192180struct VersionedPackage {
193− package: Package,
194− version: Version,
195−}
196−
197−fn parse_versioned_package_canonical(s: &str) -> Option<VersionedPackage> {
198− if let Some(caps) = regex!(r#"^(.+)-([\d.]+)$"#).captures(s) {
199− let package = Package(caps.get(1).unwrap().as_str().to_owned());
200− let version = Version(caps.get(2).unwrap().as_str().to_owned());
201− Some(VersionedPackage { package, version })
202− } else {
203− None
204− }
181+ package: String,
182+ version: String,
205183}
206184
207−fn parse_versioned_package_yaml(s: &str) -> Option<VersionedPackage> {
185+fn parse_versioned_package(s: &str) -> Option<VersionedPackage> {
208186 if let Some(caps) = regex!(r#"- *([^ ]+) < *0 *# *([\d.]+)"#).captures(s) {
209− let package = Package(caps.get(1).unwrap().as_str().to_owned());
210− let version = Version(caps.get(2).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();
211189 Some(VersionedPackage { package, version })
212190 } else if let Some(caps) = regex!(r#"- *([^ ]+) *# *([\d.]+)"#).captures(s) {
213− let package = Package(caps.get(1).unwrap().as_str().to_owned());
214− let version = Version(caps.get(2).unwrap().as_str().to_owned());
191+ let package = caps.get(1).unwrap().as_str().to_owned();
192+ let version = caps.get(2).unwrap().as_str().to_owned();
215193 Some(VersionedPackage { package, version })
216194 } else {
217195 None
218196 }
219197}
220198
221−struct DisabledPackage {
222− package: String,
223−}
224−
225−fn parse_disabled_package(s: &str) -> Option<DisabledPackage> {
226− if !regex!(r#"- *([^ ]+) < *0 *# tried"#).is_match(s) {
227− if let Some(caps) = regex!(r#"- *([^ ]+) < *0 *# *[^\d]"#).captures(s) {
228− let package = caps.get(1).unwrap().as_str().to_owned();
229− Some(DisabledPackage { package })
230− } else {
231− None
232− }
233− } else {
234− None
235− }
236−}
237−
238−fn handle<F>(write: bool, mut f: F) -> (Vec<VersionedPackage>, Vec<DisabledPackage>)
199+fn handle<F>(write: bool, mut f: F) -> Vec<VersionedPackage>
239200where
240201 F: FnMut(Location, Vec<String>) -> Vec<String>,
241202{
242203 let path = "build-constraints.yaml";
243204 let mut new_lines: Vec<String> = vec![];
244205 let mut versioned_packages: Vec<VersionedPackage> = vec![];
245− let mut disabled_packages: Vec<DisabledPackage> = vec![];
246206
247207 let mut state = State::LookingForLibBounds;
248208 let mut buf = vec![];
249209 for line in read_lines(path).map(|s| s.unwrap()) {
250− if let Some(versioned_package) = parse_versioned_package_yaml(&line) {
210+ if let Some(versioned_package) = parse_versioned_package(&line) {
251211 versioned_packages.push(versioned_package);
252− } else if let Some(disabled_package) = parse_disabled_package(&line) {
253− disabled_packages.push(disabled_package);
254212 }
255213
256214 match state {
@@ -321,7 +279,7 @@ where
321279 file.flush().unwrap();
322280 }
323281
324− (versioned_packages, disabled_packages)
282+ versioned_packages
325283}
326284
327285enum Location {
@@ -340,7 +298,7 @@ where
340298
341299#[derive(Deserialize)]
342300struct SnapshotYaml {
343− // flags: BTreeMap<Package, BTreeMap<PackageFlag, bool>>,
301+ // flags: BTreeMap<PackageName, BTreeMap<PackageFlag, bool>>,
344302 // publish_time
345303 packages: Vec<SnapshotPackage>,
346304 // hidden
@@ -353,16 +311,16 @@ struct SnapshotPackage {
353311 // pantry-tree
354312}
355313
356−#[derive(PartialOrd, Ord, PartialEq, Eq, Clone, Debug)]
357−struct Package(String);
314+#[derive(PartialOrd, Ord, PartialEq, Eq, Clone)]
315+struct PackageName(String);
358316
359−impl fmt::Display for Package {
317+impl fmt::Display for PackageName {
360318 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
361319 self.0.fmt(f)
362320 }
363321}
364322
365−#[derive(Clone, PartialOrd, Ord, PartialEq, Eq, Debug)]
323+#[derive(Clone, PartialOrd, Ord, PartialEq, Eq)]
366324struct Version(String);
367325
368326impl fmt::Display for Version {
@@ -373,7 +331,7 @@ impl fmt::Display for Version {
373331
374332// zstd-0.1.3.0@sha256:4c0a372251068eb6086b8c3a0a9f347488f08b570a7705844ffeb2c720c97223,3723
375333struct PackageWithVersionAndSha {
376− name: Package,
334+ name: PackageName,
377335 version: Version,
378336}
379337
@@ -385,7 +343,7 @@ impl<'de> serde::Deserialize<'de> for PackageWithVersionAndSha {
385343 let s: String = String::deserialize(deserializer)?;
386344 let r = regex!(r#"^(.+?)-([.\d]+)@sha256:[\da-z]+,\d+$"#);
387345 if let Some(caps) = r.captures(&s) {
388− let name = Package(caps.get(1).unwrap().as_str().to_owned());
346+ let name = PackageName(caps.get(1).unwrap().as_str().to_owned());
389347 let version = Version(caps.get(2).unwrap().as_str().to_owned());
390348 Ok(Self { name, version })
391349 } else {
@@ -408,7 +366,7 @@ where
408366}
409367
410368struct Snapshot {
411− packages: BTreeMap<Package, Diff<Version>>,
369+ packages: BTreeMap<PackageName, Diff<Version>>,
412370}
413371
414372#[derive(Clone, Copy)]
@@ -458,117 +416,3 @@ pub fn diff_snapshot(a: String, b: String) {
458416 println!("{s}");
459417 }
460418}
461−
462−#[derive(PartialEq, Eq, Debug)]
463−struct DisabledTransitively {
464− child: VersionedPackage,
465− parent: Package,
466−}
467−
468−fn parse_disabled_transitviely(s: &str) -> Option<DisabledTransitively> {
469− let r = regex!(
470− r#"- *([^ ]+) < *0 *# tried [^ ]+-([\d.]+), but its \*[^*]+\* requires the disabled package: ([^ ]+)"#
471− );
472− if let Some(caps) = r.captures(s) {
473− let package = Package(caps.get(1).unwrap().as_str().to_owned());
474− let version = Version(caps.get(2).unwrap().as_str().to_owned());
475− let parent = Package(caps.get(3).unwrap().as_str().to_owned());
476− Some(DisabledTransitively {
477− child: VersionedPackage { package, version },
478− parent,
479− })
480− } else {
481− None
482− }
483−}
484−
485−#[test]
486−fn test_parse_disabled_transitviely() {
487− let s = "- Network-NineP < 0 # tried Network-NineP-0.4.7.1, but its *library* requires the disabled package: mstate";
488− assert_eq!(
489− parse_disabled_transitviely(s),
490− Some(DisabledTransitively {
491− child: VersionedPackage {
492− package: Package("Network-NineP".to_owned()),
493− version: Version("0.4.7.1".to_owned())
494− },
495− parent: Package("mstate".to_owned()),
496− })
497− )
498−}
499−
500−type M = BTreeMap<Package, (Vec<VersionedPackage>, Option<usize>)>;
501−
502−pub fn disabled() {
503− let mut disabled_transitively: Vec<DisabledTransitively> = vec![];
504− handle(false, |loc, lines| {
505− match loc {
506− Location::Lib => disabled_transitively.extend(
507− lines
508− .into_iter()
509− .map(|line| parse_disabled_transitviely(&line))
510− .flatten()
511− .collect::<Vec<_>>(),
512− ),
513− Location::Test | Location::Bench => (),
514− }
515− vec![]
516− });
517−
518− let mut packages: BTreeSet<Package> = BTreeSet::new();
519− let mut disabled: M = BTreeMap::new();
520−
521− for DisabledTransitively { child, parent } in disabled_transitively {
522− packages.insert(child.package.clone());
523− packages.insert(parent.clone());
524− disabled
525− .entry(child.package.clone())
526− .or_insert_with(|| (vec![], None));
527− let t = disabled.entry(parent).or_insert_with(|| (vec![], None));
528− t.0.push(child);
529− }
530−
531− let mut packages_len = packages.len();
532− while packages_len > 0 {
533− let mut new_packages: BTreeSet<Package> = BTreeSet::new();
534− for package in packages {
535− let (_, count) = disabled.get(&package).unwrap();
536− if count.is_none() && !process(&package, &mut disabled) {
537− new_packages.insert(package.clone());
538− }
539− }
540− packages = new_packages;
541− packages_len = packages.len();
542− }
543−
544− let mut v: Vec<_> = disabled
545− .into_iter()
546− .map(|(package, (_, count))| (count, package))
547− .collect();
548− v.sort();
549− for (count, package) in v {
550− let count = count.unwrap();
551− if count != 0 {
552− println!("{package} is disabled with {count} dependents");
553− }
554− }
555−}
556−
557−fn process(package: &Package, m: &mut M) -> bool {
558− let (children, count) = m.get(package).unwrap();
559− assert!(count.is_none(), "{:?}", package);
560− let mut count = 0;
561− for child in children {
562− let (_, child_count) = m
563− .get(&child.package)
564− .unwrap_or_else(|| panic!("{}", child.package));
565− match child_count {
566− None => return false,
567− Some(i) => count += 1 + i,
568− }
569− }
570− m.entry(package.clone())
571− .and_modify(|tup| tup.1 = Some(count))
572− .or_insert_with(|| panic!("{}", package));
573− true
574−}
etc/commenter/src/main.rs+4−6
@@ -19,21 +19,19 @@ enum Header {
1919 about = "Automates generation of bounds in build-constraints.yaml"
2020)]
2121enum Opt {
22− Add,
2322 Clear,
24− DiffSnapshot { a: String, b: String },
25− Disabled,
23+ Add,
2624 Outdated,
25+ DiffSnapshot { a: String, b: String },
2726}
2827
2928fn main() {
3029 let opt = Opt::from_args();
3130 match opt {
32− Opt::Add => add(),
3331 Opt::Clear => commenter::clear(),
34− Opt::DiffSnapshot { a, b } => commenter::diff_snapshot(a, b),
35− Opt::Disabled => commenter::disabled(),
32+ Opt::Add => add(),
3633 Opt::Outdated => commenter::outdated(),
34+ Opt::DiffSnapshot { a, b } => commenter::diff_snapshot(a, b),
3735 }
3836}
3937