on master help sign in
CURATORS.md+13−17
since splitsnapshots
unifiedsplit
@@ -317,7 +317,7 @@ First run `build.sh` to regenerate updated `ltsXX/work/constraints.yaml` and `lt
317
317
318For an LTS minor bump, you'll typically want to:
318For an LTS minor bump, you'll typically want to:
319
319
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.
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).
321* Add new packages to the `constraints.yaml` file
321* Add new packages to the `constraints.yaml` file
322* 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.
322* 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.
323
323
@@ -422,20 +422,16 @@ errors for builds, tests and benchmarks.
422
422
423### Large scale enabling/disabling of packages
423### Large scale enabling/disabling of packages
424
424
425−`etc/commenter` is a binary that mostly automates the translation of
425+`etc/commenter` is a binary that automates `build-constraints.yaml` workflows.
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.
433
426
434#### Setup
427#### Setup
435This is currently a rust program, You can install the rust toolchain
428This is currently a rust program, You can install the rust toolchain
436by using [rustup](https://rustup.rs/).
429by using [rustup](https://rustup.rs/).
437
430
431+For some commands you also need etc/commenter/latest-version installed.
432+```
438−Then `cargo install --locked --path etc/commenter`
433+stack install --stack-yaml etc/commenter/latest-version/stack.yaml
434+```
439
435
440#### Example usage
436#### Example usage
441
437
@@ -456,7 +452,7 @@ testing-feat (GHC 9 bounds issues, Grandfathered dependencies) (not present) dep
456
452
457Now run:
453Now run:
458```
454```
459−./check 2>&1 >/dev/null | commenter add
455+./check 2>&1 >/dev/null | ./commenter add
460```
456```
461
457
462You will get this output:
458You will get this output:
@@ -483,8 +479,8 @@ Re-run this command until no more packages are disabled.
483We 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.
479We 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.
484
480
485```
481```
486−commenter clear
482+./commenter clear
487−./check 2>&1 >/dev/null | commenter add
483+./check 2>&1 >/dev/null | ./commenter add
488```
484```
489
485
490Repeat the second command until no updates are made to build-constraints.yaml.
486Repeat the second command until no updates are made to build-constraints.yaml.
@@ -493,7 +489,7 @@ Repeat the second command until no updates are made to build-constraints.yaml.
493
489
494Run `stack update` before doing this.
490Run `stack update` before doing this.
495
491
496−`commenter outdated` looks through all bounds issues and library
492+`./commenter outdated` looks through all bounds issues and library
497compilation failures and compares the marked version with the latest hackage release. Example output is
493compilation failures and compares the marked version with the latest hackage release. Example output is
498
494
499```
495```
@@ -504,7 +500,7 @@ aeson mismatch, auto: 1.5.6.0, hackage: 2.0.2.0
504where "manual" means the bound was added manually by a curator,
500where "manual" means the bound was added manually by a curator,
505perhaps due to a compilation failure so we could try re-enabling the
501perhaps due to a compilation failure so we could try re-enabling the
506package. "auto" means it's part of the sections generated by
502package. "auto" means it's part of the sections generated by
507−`commenter`, to update that run the `Re-enabling` step as documented
503+`./commenter`, to update that run the `Re-enabling` step as documented
508above.
504above.
509
505
510`outdated` only finds packages that are in the auto generated
506`outdated` only finds packages that are in the auto generated
@@ -520,7 +516,7 @@ To diff existing snapshots, or to evaluate changes before they end up
520in a snapshot you can run:
516in a snapshot you can run:
521
517
522```
518```
523−commenter diff-snapshot <old-snapshot.yaml> <new-snapshot.yaml>
519+./commenter diff-snapshot <old-snapshot.yaml> <new-snapshot.yaml>
524```
520```
525
521
526Existing 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:
522Existing 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:
@@ -535,7 +531,7 @@ TARGET=nightly-2021-01-14 \ # the date doesn't matter
535
531
536#### Finding disabled packages with lots of dependents
532#### Finding disabled packages with lots of dependents
537
533
538−`commenter disabled` prints the number of transitive dependents a disabled package has. Low hanging fruit to get a lot of packages included again.
534+`./commenter disabled` prints the number of transitive dependents a disabled package has. Low hanging fruit to get a lot of packages included again.
539
535
540Example output:
536Example output:
541```
537```
build-constraints.yaml+20−14
@@ -10,6 +10,14 @@ cabal-format-version: "3.0"
10# Constraints for brand new builds
10# Constraints for brand new builds
11packages:
11packages:
12
12
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+
13 "David Burkett <david@davidburkett.xyz> @Disco-Dave":
21 "David Burkett <david@davidburkett.xyz> @Disco-Dave":
14 - katip-wai
22 - katip-wai
15
23
@@ -66,6 +74,7 @@ packages:
66 - regex-posix-clib
74 - regex-posix-clib
67 - regex-tdfa
75 - regex-tdfa
68 - java-adt
76 - java-adt
77+ - shelly
69 - tasty-silver
78 - tasty-silver
70
79
71 "Diogo Biazus <diogo@biazus.ca>":
80 "Diogo Biazus <diogo@biazus.ca>":
@@ -307,8 +316,10 @@ packages:
307 - essence-of-live-coding-gloss
316 - essence-of-live-coding-gloss
308 - essence-of-live-coding-pulse
317 - essence-of-live-coding-pulse
309 - essence-of-live-coding-quickcheck
318 - essence-of-live-coding-quickcheck
319+ - essence-of-live-coding-warp
310 - pulse-simple
320 - pulse-simple
311 - simple-affine-space
321 - simple-affine-space
322+ - has-transformers
312
323
313 "Paul Johnson <paul@cogito.org.uk> @PaulJohnson":
324 "Paul Johnson <paul@cogito.org.uk> @PaulJohnson":
314 - geodetics
325 - geodetics
@@ -397,7 +408,7 @@ packages:
397 - normalization-insensitive
408 - normalization-insensitive
398
409
399 "Jacob Stanley <jacob@stanley.io> @jacobstanley":
410 "Jacob Stanley <jacob@stanley.io> @jacobstanley":
400− - hedgehog
411+ - hedgehog < 1.1 # https://github.com/commercialhaskell/stackage/issues/6415
401 - hedgehog-quickcheck
412 - hedgehog-quickcheck
402 - transformers-bifunctors
413 - transformers-bifunctors
403 - unix-compat
414 - unix-compat
@@ -765,7 +776,6 @@ packages:
765 - formatting
776 - formatting
766 - gtk2hs-buildtools
777 - gtk2hs-buildtools
767 - happy < 1.21.0 || > 1.21.0 # https://github.com/commercialhaskell/stackage/issues/6294
778 - happy < 1.21.0 || > 1.21.0 # https://github.com/commercialhaskell/stackage/issues/6294
768− - happy
769 - hybrid-vectors
779 - hybrid-vectors
770 - indents
780 - indents
771 - language-c
781 - language-c
@@ -891,7 +901,6 @@ packages:
891 - wai-slack-middleware
901 - wai-slack-middleware
892 - sysinfo
902 - sysinfo
893 - xmonad-extras
903 - xmonad-extras
894− - shelly
895 - persistent-redis
904 - persistent-redis
896 - fakedata
905 - fakedata
897 - fakedata-parser
906 - fakedata-parser
@@ -1124,7 +1133,7 @@ packages:
1124 - bugsnag-haskell
1133 - bugsnag-haskell
1125 - gravatar
1134 - gravatar
1126 - load-env
1135 - load-env
1127− - yesod-auth-oauth2
1136+ - yesod-auth-oauth2 < 0.7 # https://github.com/commercialhaskell/stackage/issues/6424
1128 - yesod-markdown
1137 - yesod-markdown
1129 - yesod-paginator
1138 - yesod-paginator
1130
1139
@@ -2966,7 +2975,7 @@ packages:
2966 - wai-session-postgresql
2975 - wai-session-postgresql
2967
2976
2968 "Haisheng Wu <freizl@gmail.com> @freizl":
2977 "Haisheng Wu <freizl@gmail.com> @freizl":
2969− - hoauth2
2978+ - hoauth2 < 2.0 # https://github.com/commercialhaskell/stackage/issues/6424
2970
2979
2971 "Falko Peters <falko.peters@gmail.com> @informatikr":
2980 "Falko Peters <falko.peters@gmail.com> @informatikr":
2972 - scrypt
2981 - scrypt
@@ -3008,7 +3017,7 @@ packages:
3008 "Justus Adam <dev@justus.science> @JustusAdam":
3017 "Justus Adam <dev@justus.science> @JustusAdam":
3009 - marvin
3018 - marvin
3010 - marvin-interpolate
3019 - marvin-interpolate
3011− - mustache
3020+ - mustache < 2.4.0 # https://github.com/commercialhaskell/stackage/issues/6421
3012 - exit-codes >= 1.0.0
3021 - exit-codes >= 1.0.0
3013
3022
3014 "Cindy Wang <cindylinz@gmail.com> @CindyLinz":
3023 "Cindy Wang <cindylinz@gmail.com> @CindyLinz":
@@ -3723,7 +3732,7 @@ packages:
3723 - hslua-classes
3732 - hslua-classes
3724 - hslua-core
3733 - hslua-core
3725 - hslua-marshalling
3734 - hslua-marshalling
3726− - hslua-module-doclayout
3735+ - hslua-module-doclayout < 0 # https://github.com/commercialhaskell/stackage/issues/6416
3727 - hslua-module-path
3736 - hslua-module-path
3728 - hslua-module-system
3737 - hslua-module-system
3729 - hslua-module-text
3738 - hslua-module-text
@@ -4885,7 +4894,7 @@ packages:
4885 - dlist
4894 - dlist
4886 - dlist-instances
4895 - dlist-instances
4887 - dlist-nonempty
4896 - dlist-nonempty
4888− - double-conversion
4897+ - double-conversion < 2.0.3.0 # https://github.com/commercialhaskell/stackage/issues/6417
4889 - dual-tree
4898 - dual-tree
4890 - easy-file
4899 - easy-file
4891 - easytest
4900 - easytest
@@ -5705,9 +5714,6 @@ packages:
5705 - chronos < 0 # tried chronos-1.1.3, but its *library* requires the disabled package: bytesmith
5714 - chronos < 0 # tried chronos-1.1.3, but its *library* requires the disabled package: bytesmith
5706 - chronos-bench < 0 # tried chronos-bench-0.2.0.2, but its *library* requires the disabled package: chronos
5715 - chronos-bench < 0 # tried chronos-bench-0.2.0.2, but its *library* requires the disabled package: chronos
5707 - clang-compilation-database < 0 # tried clang-compilation-database-0.1.0.1, but its *library* does not support: base-4.15.1.0
5716 - clang-compilation-database < 0 # tried clang-compilation-database-0.1.0.1, but its *library* does not support: base-4.15.1.0
5708− - clash-ghc < 0 # tried clash-ghc-1.4.6, but its *library* does not support: ghc-bignum-1.1
5709− - clash-lib < 0 # tried clash-lib-1.4.6, but its *library* does not support: ghc-bignum-1.1
5710− - clash-prelude < 0 # tried clash-prelude-1.4.6, but its *library* does not support: ghc-bignum-1.1
5711 - classyplate < 0 # tried classyplate-0.3.2.0, but its *library* does not support: base-4.15.1.0
5717 - classyplate < 0 # tried classyplate-0.3.2.0, but its *library* does not support: base-4.15.1.0
5712 - classyplate < 0 # tried classyplate-0.3.2.0, but its *library* does not support: template-haskell-2.17.0.0
5718 - classyplate < 0 # tried classyplate-0.3.2.0, but its *library* does not support: template-haskell-2.17.0.0
5713 - clock-extras < 0 # tried clock-extras-0.1.0.2, but its *library* does not support: clock-0.8.2
5719 - clock-extras < 0 # tried clock-extras-0.1.0.2, but its *library* does not support: clock-0.8.2
@@ -5855,7 +5861,6 @@ packages:
5855 - ghc-clippy-plugin < 0 # tried ghc-clippy-plugin-0.0.0.1, but its *library* does not support: dhall-1.40.2
5861 - ghc-clippy-plugin < 0 # tried ghc-clippy-plugin-0.0.0.1, but its *library* does not support: dhall-1.40.2
5856 - ghc-clippy-plugin < 0 # tried ghc-clippy-plugin-0.0.0.1, but its *library* does not support: ghc-9.0.2
5862 - ghc-clippy-plugin < 0 # tried ghc-clippy-plugin-0.0.0.1, but its *library* does not support: ghc-9.0.2
5857 - ghc-syb-utils < 0 # tried ghc-syb-utils-0.3.0.0, but its *library* does not support: ghc-9.0.2
5863 - ghc-syb-utils < 0 # tried ghc-syb-utils-0.3.0.0, but its *library* does not support: ghc-9.0.2
5858− - ghc-typelits-extra < 0 # tried ghc-typelits-extra-0.4.3, but its *library* does not support: ghc-bignum-1.1
5859 - ghcjs-dom < 0 # tried ghcjs-dom-0.9.5.0, but its *library* requires the disabled package: ghcjs-dom-jsaddle
5864 - ghcjs-dom < 0 # tried ghcjs-dom-0.9.5.0, but its *library* requires the disabled package: ghcjs-dom-jsaddle
5860 - gi-gsk < 0 # tried gi-gsk-4.0.4, but its *library* does not support: gi-gdk-3.0.25
5865 - gi-gsk < 0 # tried gi-gsk-4.0.4, but its *library* does not support: gi-gdk-3.0.25
5861 - gi-webkit2 < 0 # tried gi-webkit2-4.0.28, but its *library* requires the disabled package: gi-soup
5866 - gi-webkit2 < 0 # tried gi-webkit2-4.0.28, but its *library* requires the disabled package: gi-soup
@@ -6566,7 +6571,6 @@ packages:
6566 - tries < 0 # tried tries-0.0.6.1, but its *library* requires the disabled package: rose-trees
6571 - tries < 0 # tried tries-0.0.6.1, but its *library* requires the disabled package: rose-trees
6567 - true-name < 0 # tried true-name-0.1.0.3, but its *library* does not support: template-haskell-2.17.0.0
6572 - true-name < 0 # tried true-name-0.1.0.3, but its *library* does not support: template-haskell-2.17.0.0
6568 - type-combinators-singletons < 0 # tried type-combinators-singletons-0.2.1.0, but its *library* requires the disabled package: type-combinators
6573 - type-combinators-singletons < 0 # tried type-combinators-singletons-0.2.1.0, but its *library* requires the disabled package: type-combinators
6569− - tz < 0 # tried tz-0.1.3.5, but its *library* does not support: template-haskell-2.17.0.0
6570 - ucam-webauth < 0 # tried ucam-webauth-0.1.0.0, but its *library* does not support: aeson-1.5.6.0
6574 - ucam-webauth < 0 # tried ucam-webauth-0.1.0.0, but its *library* does not support: aeson-1.5.6.0
6571 - ucam-webauth < 0 # tried ucam-webauth-0.1.0.0, but its *library* does not support: attoparsec-0.14.4
6575 - ucam-webauth < 0 # tried ucam-webauth-0.1.0.0, but its *library* does not support: attoparsec-0.14.4
6572 - ucam-webauth < 0 # tried ucam-webauth-0.1.0.0, but its *library* does not support: base-4.15.1.0
6576 - ucam-webauth < 0 # tried ucam-webauth-0.1.0.0, but its *library* does not support: base-4.15.1.0
@@ -6688,6 +6692,7 @@ packages:
6688 - greskell-websocket < 1.0.0.0
6692 - greskell-websocket < 1.0.0.0
6689 - hruby < 0.4.0.0
6693 - hruby < 0.4.0.0
6690 - hspec-expectations-json < 1.0.0.5
6694 - hspec-expectations-json < 1.0.0.5
6695+ - http2 < 3.0.3
6691 - jose < 0.9
6696 - jose < 0.9
6692 - jsonpath < 0.2.1.0
6697 - jsonpath < 0.2.1.0
6693 - kanji < 3.5
6698 - kanji < 3.5
@@ -7248,7 +7253,6 @@ skipped-tests:
7248 - temporary-resourcet # tried temporary-resourcet-0.1.0.1, but its *test-suite* does not support: tasty-1.4.2.1
7253 - temporary-resourcet # tried temporary-resourcet-0.1.0.1, but its *test-suite* does not support: tasty-1.4.2.1
7249 - test-framework # tried test-framework-0.8.2.0, but its *test-suite* requires the disabled package: libxml
7254 - test-framework # tried test-framework-0.8.2.0, but its *test-suite* requires the disabled package: libxml
7250 - transient # tried transient-0.7.0.0, but its *test-suite* does not support: random-1.2.1
7255 - transient # tried transient-0.7.0.0, but its *test-suite* does not support: random-1.2.1
7251− - tzdata # tried tzdata-0.2.20201021.0, but its *test-suite* requires the disabled package: test-framework-th
7252 - ucam-webauth # tried ucam-webauth-0.1.0.0, but its *test-suite* does not support: QuickCheck-2.14.2
7256 - ucam-webauth # tried ucam-webauth-0.1.0.0, but its *test-suite* does not support: QuickCheck-2.14.2
7253 - ucam-webauth # tried ucam-webauth-0.1.0.0, but its *test-suite* does not support: generic-random-1.5.0.1
7257 - ucam-webauth # tried ucam-webauth-0.1.0.0, but its *test-suite* does not support: generic-random-1.5.0.1
7254 - ucam-webauth # tried ucam-webauth-0.1.0.0, but its *test-suite* does not support: hspec-2.8.5
7258 - ucam-webauth # tried ucam-webauth-0.1.0.0, but its *test-suite* does not support: hspec-2.8.5
@@ -7273,6 +7277,8 @@ skipped-tests:
7273 # https://github.com/commercialhaskell/stackage/issues/6363
7277 # https://github.com/commercialhaskell/stackage/issues/6363
7274 - amqp
7278 - amqp
7275
7279
7280+ - c2hs # https://github.com/commercialhaskell/stackage/issues/6420
7281+
7276# end of skipped-tests
7282# end of skipped-tests
7277
7283
7278# Tests listed in expected-test-failures configure correctly but may fail to run
7284# Tests listed in expected-test-failures configure correctly but may fail to run
commenternew file+20
@@ -0,0 +1,20 @@
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/src/lib.rs+1−1
@@ -164,7 +164,7 @@ fn latest_version(packages: impl Iterator<Item = Package>) -> BTreeMap<Package,
164 Command::new("latest-version")
164 Command::new("latest-version")
165 .args(packages.map(|p| p.0))
165 .args(packages.map(|p| p.0))
166 .output()
166 .output()
167− .unwrap()
167+ .expect("Could not find latest-version in PATH")
168 .stdout,
168 .stdout,
169 )
169 )
170 .unwrap()
170 .unwrap()