on master help sign in
Merge branch 'master' of github.com:commercialhaskell/stackage
commit95130edd80a8f6cf90f8fc317b275ab7c623e940 authorCristhianMotoche <cristhian.motoche@gmail.com> dateFri 13 Sep 2019, 10:25 (7 years ago) parent1bafd114056a7c
15 files changed+420−322
.dockerignore+2 .gitignore+3 CURATORS.md+12−12 MAINTAINERS.md+1−1 automated/build-next.sh+21−30 automated/build.sh−148 automated/new-stackage-format/convert.sh+4−1 build-constraints.yaml+299−119 check+10−2 debian-bootstrap.sh+16−9 etc/curator-exes/.gitignore+1 etc/curator-exes/Dockerfile+13 etc/curator-exes/README.md+5 etc/curator-exes/run.sh+11 etc/curator-exes/stack.yaml+22
.dockerignore+2
@@ -6,3 +6,5 @@ cabal.sandbox.config
66tarballs
77*.yaml
88.git
9+automated
10+.github
.gitignore+3
@@ -5,3 +5,6 @@ lts-*.yaml
55*.swp
66check-plan.yaml
77*~
8+/constraints.yaml
9+/snapshot.yaml
10+/snapshot-incomplete.yaml
CURATORS.md+12−12
@@ -18,8 +18,8 @@ This section sketches out at a high level how the entire Stackage build/curation
1818process works:
1919
2020* [build-constraints.yaml](https://github.com/commercialhaskell/stackage/blob/master/build-constraints.yaml) specifies packages to be included in Stackage
21−* [stackage-curator](http://www.stackage.org/package/stackage-curator) combines build-constraints.yaml with the current state of Hackage to create a build plan for a Stackage Nightly
22−* stackage-curator can check that build plan to ensure all version bounds are consistent
21+* [curator](https://github.com/commercialhaskell/stack/tree/master/subs/curator) combines build-constraints.yaml with the current state of Hackage to create a build plan for a Stackage Nightly
22+* `curator` can check that build plan to ensure all version bounds are consistent
2323 * The [Travis job](https://github.com/commercialhaskell/stackage/blob/master/.travis.yml) performs these two steps to provide immediate feedback on pull requests
2424* Docker Hub [builds](https://github.com/commercialhaskell/stackage/blob/master/Dockerfile) a [Docker image](https://hub.docker.com/r/commercialhaskell/stackage/) for running builds
2525* The stackage-build server (described below) is able to run automated builds using the [build.sh script](https://github.com/commercialhaskell/stackage/blob/master/automated/build.sh)
@@ -72,7 +72,7 @@ Most common technique, just prevent a new version of a library from
7272being included immediately. This also applies to when only benchmarks
7373and tests are affected.
7474
75−* Copy the stackage-curator output and create a new issue, see e.g
75+* Copy the `curator` output and create a new issue, see e.g
7676https://github.com/commercialhaskell/stackage/issues/2108
7777
7878* Add a new entry under the "stackage upper bounds" section of `build-constraints.yaml`. For the above example it would be
@@ -84,7 +84,7 @@ https://github.com/commercialhaskell/stackage/issues/2108
8484```
8585
8686* Commit (message e.g. "Upper bound for #2108")
87−* Optionally: Verify with `stackage-curator check` locally
87+* Optionally: Verify with `./check` locally
8888* Push
8989* Verify that everything works on the build server (you can restart the build or wait for it to to run again)
9090
@@ -110,7 +110,7 @@ new package may appear if its dependencies were part of this issue but
110110have been updated since the last time we checked. We want to give
111111these new packages ample time to be upgraded.
112112
113−If stackage-curator is happy commit the change ("Remove upper bounds
113+If `curator` is happy commit the change ("Remove upper bounds
114114and close #X"). After doing this the next nightly build may fail
115115because some packages didn't have an upper bound in place, but
116116compilation failed. In this case revert the previous commit so any
@@ -367,30 +367,30 @@ We do not run the full stackage build locally as that might take too
367367much time. However, some steps on the other hand are much faster to do
368368yourself, e.g. verifying constraints without building anything.
369369
370−To get started, install `stackage-curator` via Git, or [the Linux binary]:
370+To get started, install `curator` via Git:
371371
372372```
373−$ git clone git@github.com:fpco/stackage-curator.git
374−$ cd stackage-curator && stack install
373+$ git clone git@github.com:commercialhaskell/curator.git
374+$ cd curator && stack install curator
375375```
376376
377−It is a good idea to upgrade `stackage-curator` at the start of your week.
377+It is a good idea to upgrade `curator` at the start of your week.
378378Then, clone the stackage repo, get the latest packages and run dependency
379379resolution:
380380
381381```
382382$ git clone git@github.com:commercialhaskell/stackage.git
383−$ stack update && stackage-curator check
383+$ cd stackage
384+$ ./check
384385```
385386
386387This can be used to make sure all version bounds are in place, including for
387388test suites and benchmarks, to check whether bounds can be lifted, and to get
388389[tell-me-when-its-released] notifications.
389390
390−`stackage-curator` does not build anything, so you wont see any compilation
391+`curator` does not build anything, so you wont see any compilation
391392errors for builds, tests and benchmarks.
392393
393−[the Linux binary]: https://s3.amazonaws.com/stackage-travis/stackage-curator/stackage-curator.bz2
394394[tell-me-when-its-released]: https://github.com/commercialhaskell/stackage/blob/master/CURATORS.md#waiting-for-new-releases
395395
396396## Adding new curators
MAINTAINERS.md+1−1
@@ -35,7 +35,7 @@ If you want to be proactive or if CI fails, you can make sure that your package
3535# Build from the tarball on Hackage to check for missing files
3636$ stack unpack yourpackage && cd yourpackage-*
3737# Generate a pristine stack.yaml, adding any missing extra-deps
38−$ rm -f stack.yaml && stack init --resolver nightly --solver
38+$ rm -f stack.yaml && stack init --resolver nightly
3939# Build, generate docs, test, and build benchmarks
4040$ stack build --resolver nightly --haddock --test --bench --no-run-benchmarks
4141```
automated/build-next.sh+21−30
@@ -5,6 +5,8 @@ set -eu +x -o pipefail
55ROOT=$(cd $(dirname $0) ; pwd)
66TARGET=$1
77
8+source aws.sh
9+
810# For nightly-YYYY-MM-DD, tag should be nightly
911# For lts-X.Y, tag should be ltsX
1012SHORTNAME=$(echo $TARGET | cut -d- -f 1)
@@ -61,25 +63,25 @@ require_400_file "$HACKAGE_CREDS"
6163mkdir -p $ROOT/bin
6264BINDIR=$(cd $ROOT/bin ; pwd)
6365(
66+# See etc/curator-exes/README.md
67+CURATOR_EXES=95a207fb4d5bd2e2a255350ce18f55976344eeb71e6f27a25f63e8dba28a4cd1
6468cd $BINDIR
65−rm -f stackage-curator stackage-curator-2*.bz2
66−CURATOR2=stackage-curator-2-f6258124cff9a7e92bcb5704164a70e149080e88
67−wget "https://download.fpcomplete.com/stackage-curator-2/$CURATOR2.bz2"
68−bunzip2 "$CURATOR2.bz2"
69−chmod +x $CURATOR2
70−mv $CURATOR2 stackage-curator
71−./stackage-curator --version
69+rm -f curator stack *.bz2
70+wget "https://s3.amazonaws.com/download.fpcomplete.com/curator-exes/curator-exes-$CURATOR_EXES.tar.bz2"
71+tar xf "curator-exes-$CURATOR_EXES.tar.bz2"
72+echo curator: $(./curator --version)
73+echo stack: $(./stack --version)
7274)
7375
7476# We share pantry directory between snapshots while the other content in .stack
7577# is stored separately (because e.g. Ubuntu releases between LTS and nightly
7678# could differ). Also the order of binds is important.
77−ARGS_COMMON="--rm -v $WORKDIR:$HOME/work -w $HOME/work -v $BINDIR/stackage-curator:/usr/bin/stackage-curator:ro -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro -v $BINDIR/stack:/usr/bin/stack:ro -v $STACK_DIR:$HOME/.stack -v $PANTRY_DIR:$HOME/.stack/pantry"
79+ARGS_COMMON="--rm -v $WORKDIR:$HOME/work -w $HOME/work -v $BINDIR/curator:/usr/bin/curator:ro -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro -v $BINDIR/stack:/usr/bin/stack:ro -v $STACK_DIR:$HOME/.stack -v $PANTRY_DIR:$HOME/.stack/pantry"
7880ARGS_PREBUILD="$ARGS_COMMON -u $USERID -e HOME=$HOME -v $CABAL_DIR:$HOME/.cabal -v $GHC_DIR:$HOME/.ghc -v $DOT_STACKAGE_DIR:$HOME/.stackage"
7981ARGS_BUILD="$ARGS_COMMON -v $CABAL_DIR:$HOME/.cabal:ro -v $GHC_DIR:$HOME/.ghc:ro"
8082# instance-data is an undocumented feature of S3 used by amazonka,
8183# see https://github.com/brendanhay/amazonka/issues/271
82−ARGS_UPLOAD="$ARGS_COMMON -u $USERID -e HOME=$HOME -v $HACKAGE_CREDS:/hackage-creds:ro -v $DOT_STACKAGE_DIR:$HOME/.stackage -v $SSH_DIR:$HOME/.ssh:ro -v $GITCONFIG:$HOME/.gitconfig:ro -v $CABAL_DIR:$HOME/.cabal:ro --add-host instance-data:169.254.169.254"
84+ARGS_UPLOAD="$ARGS_COMMON -u $USERID -e HOME=$HOME -v $HACKAGE_CREDS:/hackage-creds:ro -v $DOT_STACKAGE_DIR:$HOME/.stackage -v $SSH_DIR:$HOME/.ssh:ro -v $GITCONFIG:$HOME/.gitconfig:ro -v $CABAL_DIR:$HOME/.cabal:ro -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY"
8385
8486# Make sure we actually need this snapshot. We only check this for LTS releases
8587# since, for nightlies, we'd like to run builds even if they are unnecessary to
@@ -87,21 +89,9 @@ ARGS_UPLOAD="$ARGS_COMMON -u $USERID -e HOME=$HOME -v $HACKAGE_CREDS:/hackage-cr
8789# below for why this is safe.)
8890if [ $SHORTNAME = "lts" ]
8991then
90− docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "exec stackage-curator check-target-available --target $TARGET"
92+ docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "exec curator check-target-available --target $TARGET"
9193fi
9294
93−# Get latest stack
94−(
95−cd $BINDIR
96−rm -f stack stack-*.bz2
97−STACK=stack-f6258124cff9a7e92bcb5704164a70e149080e88
98−wget "https://download.fpcomplete.com/stackage-curator-2/$STACK.bz2"
99−bunzip2 "$STACK.bz2"
100−chmod +x $STACK
101−mv $STACK stack
102−./stack --version
103−)
104−
10595
10696# Determine the new build plan unless NOPLAN is set
10797#
@@ -111,10 +101,12 @@ if [ "${NOPLAN:-}x" = "x" ]
111101then
112102 if [ $SHORTNAME = "lts" ]
113103 then
114− docker run $ARGS_PREBUILD $IMAGE /bin/bash -c "stackage-curator constraints --target $TARGET && stackage-curator snapshot-incomplete && stackage-curator snapshot"
104+ docker run $ARGS_PREBUILD $IMAGE /bin/bash -c "curator constraints --target $TARGET && curator snapshot-incomplete --target $TARGET && curator snapshot"
115105 else
116− docker run $ARGS_PREBUILD $IMAGE /bin/bash -c "stackage-curator update && stackage-curator constraints --target $TARGET && stackage-curator snapshot-incomplete && stackage-curator snapshot"
106+ docker run $ARGS_PREBUILD $IMAGE /bin/bash -c "curator update && curator constraints --target $TARGET && curator snapshot-incomplete --target $TARGET && curator snapshot"
117107 fi
108+else
109+ docker run $ARGS_PREBUILD $IMAGE /bin/bash -c "curator snapshot"
118110fi
119111
120112
@@ -122,7 +114,7 @@ fi
122114#
123115# * Check that the snapshot is valid
124116# * Fetch and unpack all needed tarballs (the build step does not have write access to the tarball directory)
125−docker run $ARGS_PREBUILD $IMAGE /bin/bash -c 'GHCVER=$(sed -n "s/^ghc-version: \(.*\)/\1/p" constraints.yaml) && stack setup ghc-$GHCVER --verbosity=error && stack exec --resolver=ghc-$GHCVER stackage-curator check-snapshot && stackage-curator unpack'
117+docker run $ARGS_PREBUILD $IMAGE /bin/bash -c 'GHCVER=$(sed -n "s/^ghc-version: \(.*\)/\1/p" constraints.yaml) && stack setup ghc-$GHCVER --verbosity=error && stack exec --resolver=ghc-$GHCVER curator check-snapshot && curator unpack'
126118
127119case $SHORTNAME in
128120 lts) JOBS=1 ;;
@@ -132,25 +124,24 @@ esac
132124# Now do the actual build. We need to first set the owner of the home directory
133125# correctly, so we run the command as root, change owner, and then use sudo to
134126# switch back to the current user
135−docker run $ARGS_BUILD $IMAGE nice -n 15 /bin/bash -c "chown $USER $HOME && exec sudo -E -u $USER env \"HOME=$HOME\" \"PATH=\$PATH\" stackage-curator build --jobs $JOBS" 2>&1 | tee "$SHORTNAME-build.log"
127+docker run $ARGS_BUILD $IMAGE nice -n 15 /bin/bash -c "chown $USER $HOME && exec sudo -E -u $USER env \"HOME=$HOME\" \"PATH=\$PATH\" curator build --jobs $JOBS" 2>&1 | tee "$SHORTNAME-build.log"
136128
137129# Make sure we actually need this snapshot. We used to perform this check
138130# exclusively before building. Now we perform it after as well for the case of
139131# nightly, where we don't perform this check beforehand. This is also slightly
140132# safer, in case someone else already uploaded a specific snapshot while we
141133# were building.
142−docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "exec stackage-curator check-target-available --target $TARGET"
134+docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "exec curator check-target-available --target $TARGET"
143135
144136# Successful build, so we need to:
145137#
146138# * Upload the docs to S3
147139# * Upload the new snapshot .yaml file to the appropriate Github repo, also upload its constraints
148140# * Register as a new Hackage distro (currently disabled)
149−docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "stackage-curator upload-docs --target $TARGET && exec stackage-curator upload-github --target $TARGET"
150−# FIXME - add back "stackage-curator hackage-distro --target $TARGET" when we will be ready to publish
141+docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "curator upload-docs --target $TARGET && curator upload-github --target $TARGET && exec curator hackage-distro --target $TARGET"
151142# information about the new snapshots on Hackage
152143
153−$BINDIR/stackage-curator legacy-bulk --stackage-snapshots dot-stackage/curator/stackage-snapshots/ --lts-haskell dot-stackage/curator/lts-haskell/ --stackage-nightly dot-stackage/curator/stackage-nightly/
144+$BINDIR/curator legacy-bulk --stackage-snapshots dot-stackage/curator/stackage-snapshots/ --lts-haskell dot-stackage/curator/lts-haskell/ --stackage-nightly dot-stackage/curator/stackage-nightly/
154145
155146(
156147
automated/build.shdeleted−148
@@ -1,148 +0,0 @@
1−#!/usr/bin/env bash
2−
3−set -eu +x
4−
5−ROOT=$(cd $(dirname $0) ; pwd)
6−TARGET=$1
7−
8−source aws.sh
9−
10−# For nightly-YYYY-MM-DD, tag should be nightly
11−# For lts-X.Y, tag should be ltsX
12−SHORTNAME=$(echo $TARGET | cut -d- -f 1)
13−if [ $SHORTNAME = "lts" ]
14−then
15− TAG=$(echo $TARGET | sed 's@^lts-\([0-9]*\)\.[0-9]*@lts\1@')
16−else
17− TAG=$SHORTNAME
18−fi
19−
20−IMAGE=commercialhaskell/stackage:$TAG
21−
22−PLAN_FILE=current-plan.yaml
23−DOCMAP_FILE=current-docmap.yaml
24−
25−CABAL_DIR=$ROOT/cabal
26−STACK_DIR=$ROOT/stack
27−GHC_DIR=$ROOT/ghc
28−DOT_STACKAGE_DIR=$ROOT/dot-stackage
29−WORKDIR=$ROOT/$TAG/work
30−EXTRA_BIN_DIR=$ROOT/extra-bin
31−SSH_DIR=$ROOT/ssh-$SHORTNAME
32−USERID=$(id -u)
33−
34−mkdir -p \
35− "$CABAL_DIR" \
36− "$STACK_DIR" \
37− "$GHC_DIR" \
38− "$DOT_STACKAGE_DIR" \
39− "$WORKDIR" \
40− "$EXTRA_BIN_DIR" \
41− "$SSH_DIR"
42−
43−GITCONFIG=$ROOT/gitconfig
44−cat >$GITCONFIG <<EOF
45−[user]
46− email = michael+stackage-build@fpcomplete.com
47− name = Stackage Build host
48−EOF
49−
50−cat >$SSH_DIR/known_hosts <<EOF
51−|1|Qn0iij8BnxGZXbyFSozS9zWkH+Q=|YrKKNp2KHO3/oc4UBFIe1zOvhDc= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
52−|1|RxBEt2ljiEppr019szMIhbY12m0=|0FZ2Oji1LphRbPLLEQhFzTmL69I= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==
53−EOF
54−
55−AUTH_TOKEN=$ROOT/auth-token
56−HACKAGE_CREDS=$ROOT/hackage-creds
57−
58−function require_400_file {
59− if [ ! -f "$1" ]
60− then
61− echo File not found: "$1"
62− exit 1
63− fi
64−
65− chmod 400 "$1"
66−}
67−
68−require_400_file "$SSH_DIR/id_rsa"
69−require_400_file "$AUTH_TOKEN"
70−require_400_file "$HACKAGE_CREDS"
71−
72−mkdir -p $ROOT/bin
73−BINDIR=$(cd $ROOT/bin ; pwd)
74−(
75−cd $BINDIR
76−rm -f stackage-curator stackage-curator.bz2
77−wget https://s3.amazonaws.com/stackage-travis/stackage-curator/stackage-curator.bz2
78−bunzip2 stackage-curator.bz2
79−chmod +x stackage-curator
80−./stackage-curator --version
81−)
82−
83−ARGS_COMMON="--rm -v $WORKDIR:$HOME/work -w $HOME/work -v $BINDIR/stackage-curator:/usr/bin/stackage-curator:ro -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro -v $EXTRA_BIN_DIR/stack:/usr/bin/stack:ro"
84−ARGS_PREBUILD="$ARGS_COMMON -u $USERID -e HOME=$HOME -v $CABAL_DIR:$HOME/.cabal -v $STACK_DIR:$HOME/.stack -v $GHC_DIR:$HOME/.ghc -v $DOT_STACKAGE_DIR:$HOME/.stackage"
85−ARGS_BUILD="$ARGS_COMMON -v $CABAL_DIR:$HOME/.cabal:ro -v $STACK_DIR:$HOME/.stack:ro -v $GHC_DIR:$HOME/.ghc:ro"
86−ARGS_UPLOAD="$ARGS_COMMON -u $USERID -e HOME=$HOME -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY -v $AUTH_TOKEN:/auth-token:ro -v $HACKAGE_CREDS:/hackage-creds:ro -v $DOT_STACKAGE_DIR:$HOME/.stackage -v $SSH_DIR:$HOME/.ssh:ro -v $GITCONFIG:$HOME/.gitconfig:ro -v $CABAL_DIR:$HOME/.cabal:ro -v $STACK_DIR:$HOME/.stack:ro"
87−
88−# Make sure we actually need this snapshot. We only check this for LTS releases
89−# since, for nightlies, we'd like to run builds even if they are unnecessary to
90−# get early warning information of upcoming failures. (See the duplicate check
91−# below for why this is safe.)
92−if [ $SHORTNAME = "lts" ]
93−then
94− docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "exec stackage-curator check-target-available --target $TARGET"
95−fi
96−
97−# Get latest compatible stack
98−curl -L https://github.com/commercialhaskell/stack/releases/download/v1.9.3/stack-1.9.3-linux-x86_64-static.tar.gz | tar xz --wildcards --strip-components=1 -C $EXTRA_BIN_DIR '*/stack'
99−
100−
101−# Determine the new build plan unless NOPLAN is set
102−#
103−# * Update the package index (unless LTS)
104−# * Create a new plan
105−if [ "${NOPLAN:-}x" = "x" ]
106−then
107− if [ $SHORTNAME = "lts" ]
108− then
109− docker run $ARGS_PREBUILD $IMAGE /bin/bash -c "exec stackage-curator create-plan --plan-file $PLAN_FILE --target $TARGET ${CONSTRAINTS:-}"
110− else
111− docker run $ARGS_PREBUILD $IMAGE /bin/bash -c "stack update && exec stackage-curator create-plan --plan-file $PLAN_FILE --target $TARGET ${CONSTRAINTS:-}"
112− fi
113−fi
114−
115−# Do the rest of the pre-build actions:
116−#
117−# * Check that the plan is valid
118−# * Fetch all needed tarballs (the build step does not have write access to the tarball directory)
119−# * Do a single unpack to create the package index cache (again due to directory perms)
120−docker run $ARGS_PREBUILD $IMAGE /bin/bash -c "stackage-curator check --plan-file $PLAN_FILE && stackage-curator fetch --plan-file $PLAN_FILE && cd /tmp && exec stack unpack random"
121−
122−case $SHORTNAME in
123− lts) JOBS=1 ;;
124− nightly) JOBS=2 ;;
125−esac
126−
127−# Now do the actual build. We need to first set the owner of the home directory
128−# correctly, so we run the command as root, change owner, and then use sudo to
129−# switch back to the current user
130−docker run $ARGS_BUILD $IMAGE nice -n 15 /bin/bash -c "chown $USER $HOME && exec sudo -E -u $USER env \"HOME=$HOME\" \"PATH=\$PATH\" stackage-curator make-bundle --jobs $JOBS --plan-file $PLAN_FILE --docmap-file $DOCMAP_FILE --target $TARGET"
131−
132−# Make sure we actually need this snapshot. We used to perform this check
133−# exclusively before building. Now we perform it after as well for the case of
134−# nightly, where we don't perform this check beforehand. This is also slightly
135−# safer, in case someone else already uploaded a specific snapshot while we
136−# were building.
137−docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "exec stackage-curator check-target-available --target $TARGET"
138−
139−# Successful build, so we need to:
140−#
141−# * Upload the docs to S3
142−# * Upload the 00-index.tar file to S3 (TODO: this is probably no longer necessary, since snapshots never modify .cabal files)
143−# * Upload the new plan .yaml file to the appropriate Github repo
144−# * Register as a new Hackage distro
145−docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "stackage-curator upload-docs --target $TARGET && stackage-curator upload-index --plan-file $PLAN_FILE --target $TARGET && stackage-curator upload-github --plan-file $PLAN_FILE --docmap-file $DOCMAP_FILE --target $TARGET && exec stackage-curator hackage-distro --plan-file $PLAN_FILE --target $TARGET"
146−
147−echo -n "Completed at "
148−date
automated/new-stackage-format/convert.sh+4−1
@@ -4,7 +4,7 @@ set -eux
44
55if [[ ! -f convert ]]
66then
7− curl https://s3.amazonaws.com/www.snoyman.com/convert-old-stackage-f780174e2c84e4fb171f6526228d9243beb7fd71.bz2 > convert.bz2
7+ curl https://s3.amazonaws.com/www.snoyman.com/convert-old-stackage-c9c4d06b31cb7aafedd23aa316b8008c45e4d4dd.bz2 > convert.bz2
88 chmod +x convert.bz2
99 bunzip2 convert.bz2
1010fi
@@ -21,7 +21,10 @@ do
2121 fi
2222done
2323
24+(
25+export HOME=$(pwd)
2426./convert
27+)
2528
2629cd stackage-snapshots
2730git add lts nightly
build-constraints.yaml+299−119
@@ -9,8 +9,28 @@ cabal-format-version: "2.4"
99
1010# Constraints for brand new builds
1111packages:
12+ "Tobias Reinhart <tobi.reinhart@fau.de> @TobiReinhart":
13+ - sparse-tensor
14+
15+ "Stephan Schiffels <stephan_schiffels@mac.com> @stschiff":
16+ - sequence-formats
17+ - pipes-ordered-zip
18+ - sequenceTools
19+
20+ "YongJoon Joe <developer@quietjoon.net> @QuietJoon":
21+ - doldol
22+ - ENIG
23+
24+ "Chris Penner <christopher.penner@gmail.com> @ChrisPenner":
25+ - lens-regex-pcre
26+
27+ "Emily Pillmore <emilypi@cohomolo.gy> @topos":
28+ - lens-process
29+ - microlens-process
1230
1331 "Matthieu Monsch <mtth@apache.org> @mtth":
32+ - flags-applicative
33+ - more-containers
1434 - tracing
1535
1636 "Robert Vollmert <rob@vllmrt.net> @robx":
@@ -24,6 +44,9 @@ packages:
2444 - interpolatedstring-qq2
2545 - prospect
2646 - do-notation
47+ - unagi-chan
48+ - type-errors
49+ - loopbreaker
2750
2851 "William Yao <williamyaoh@gmail.com> @williamyaoh":
2952 - string-interpolate
@@ -64,6 +87,9 @@ packages:
6487 "Preetham Gujjula <preetham.gujjula@gmail.com> @pgujjula":
6588 - modular
6689
90+ "Guillaume Bouchard <guillaum.bouchard@gmail.com> @guibou":
91+ - PyF
92+
6793 "Erik Schnetter <schnetter@gmail.com> @eschnett":
6894 - mpi-hs
6995
@@ -80,7 +106,7 @@ packages:
80106 - parsec-numbers
81107
82108 "Joshua Grosso <jgrosso256@gmail.com> @jgrosso":
83− - axel
109+ - axel < 0 # https://github.com/axellang/axel/issues/24
84110
85111 "Varun Gandhi <theindigamer15@gmail.com> @theindigamer":
86112 - edit < 0
@@ -121,6 +147,11 @@ packages:
121147 - rhine-gloss
122148 - dunai-core
123149 - finite-typelits
150+ - essence-of-live-coding
151+ - essence-of-live-coding-pulse
152+ - essence-of-live-coding-gloss
153+ - essence-of-live-coding-quickcheck
154+ - pulse-simple
124155
125156 "Paul Johnson <paul@cogito.org.uk> @PaulJohnson":
126157 - geodetics
@@ -248,7 +279,7 @@ packages:
248279 "Richard Cook <rcook@rcook.org> @rcook":
249280 - hidden-char
250281 - oset
251− - req-url-extra
282+ - req-url-extra < 0 # req < 2.1.0
252283 - sexpr-parser
253284
254285 "Vanessa McHale <tmchale@wisc.edu> @vmchale":
@@ -265,6 +296,7 @@ packages:
265296 - apportionment
266297 - audacity
267298 - bibtex
299+ - board-games
268300 - buffer-pipe
269301 - calendar-recycling
270302 - checksum
@@ -367,6 +399,7 @@ packages:
367399 - newtype-generics
368400 - bsb-http-chunked
369401 - coercible-utils
402+ - hspec-parsec
370403
371404 "Joe M <joe9mail@gmail.com> @joe9":
372405 - logger-thread
@@ -387,6 +420,7 @@ packages:
387420 - yeshql
388421
389422 "Yair Chuchem <yairchu@gmail.com> @yairchu":
423+ - generic-constraints
390424 - List
391425 - ListTree
392426
@@ -415,6 +449,7 @@ packages:
415449 "James M.C. Haver II <mchaver@gmail.com> @mchaver":
416450 - quickcheck-arbitrary-adt
417451 - hspec-golden-aeson
452+ - quickcheck-arbitrary-template
418453
419454 "Winter Han <winterland1989@gmail.com> @winterland1989":
420455 - if
@@ -430,6 +465,7 @@ packages:
430465 - unboxed-ref
431466
432467 "Harendra Kumar <harendra.kumar@gmail.com> @harendra-kumar":
468+ - bench-show
433469 - monad-recorder
434470 - packcheck
435471 - streamly
@@ -494,9 +530,10 @@ packages:
494530 - persistent-postgresql
495531 - persistent-sqlite
496532 - persistent-template
497− # persistent-test # https://github.com/commercialhaskell/stackage/pull/4492
533+ - persistent-test # https://github.com/commercialhaskell/stackage/pull/4492
498534 # - stackage-curator # http-conduit 2.3 via amazonka
499535 - store
536+ - wai-extra
500537 - wai-websockets
501538 - warp-tls
502539 - yesod
@@ -536,7 +573,7 @@ packages:
536573 - hybrid-vectors
537574 - indents
538575 - language-c
539− - persistent-mongoDB < 0 # GHC 8.4 via mongoDB
576+ - persistent-mongoDB
540577 - pretty-class
541578 - th-expand-syns
542579 - th-lift
@@ -567,7 +604,8 @@ packages:
567604 - githash
568605
569606 - time-manager
570− - pantry-tmp
607+ - pantry
608+ - mega-sdist
571609 - http-download
572610 - hi-file-parser
573611 - rio-prettyprint
@@ -981,7 +1019,6 @@ packages:
9811019 - dhall-bash
9821020 - dhall-json
9831021 # - dhall-nix # deriving-compat via hnix
984− - dhall-text
9851022
9861023 "Andrew Thaddeus Martin <andrew.thaddeus@gmail.com> @andrewthad":
9871024 - colonnade
@@ -1098,13 +1135,15 @@ packages:
10981135 - DAV
10991136 - hopenpgp-tools
11001137 - opensource
1138+ - debian
1139+ - cabal-debian
11011140
11021141 "Piyush P Kurur <ppk@cse.iitk.ac.in> @piyush-kurur":
1103− - raaz < 0 # GHC 8.4 via base-4.11.0.0
1104− - naqsha < 0 # GHC 8.4 via base-4.11.0.0
1142+ - raaz
1143+ - naqsha
11051144
11061145 "Joey Hess <id@joeyh.name> @joeyh":
1107− # - git-annex # conduit 1.3
1146+ # - git-annex # Depends on many packages not tracked by Stackage
11081147 - concurrent-output
11091148 - mountpoints
11101149 - disk-free-space
@@ -1171,9 +1210,8 @@ packages:
11711210 #
11721211 - hledger-lib
11731212 - hledger
1174− - hledger-ui < 0 # via brick, via data-clist, via QuickCheck https://github.com/commercialhaskell/stackage/issues/4444
1213+ - hledger-ui
11751214 - hledger-web
1176− - hledger-api
11771215 #
11781216 - quickbench
11791217 - regex-compat-tdfa
@@ -1234,6 +1272,7 @@ packages:
12341272 - kind-generics
12351273 - kind-generics-th
12361274 - simplistic-generics
1275+ - wl-pprint
12371276
12381277 "Matvey Aksenov <matvey.aksenov@gmail.com> @supki":
12391278 - terminal-size
@@ -1398,10 +1437,10 @@ packages:
13981437 - HaskellNet-SSL < 0 # mime-mail-0.5 via HaskellNet
13991438
14001439 "Jens Petersen <juhpetersen@gmail.com> @juhp":
1401− - cabal-rpm
1440+ - cabal-rpm < 0 # https://github.com/commercialhaskell/stackage/issues/4666
1441+ - dl-fedora
14021442 - fedora-dists
1403− - fedora-haskell-tools
1404− - fedora-img-dl
1443+ - fedora-haskell-tools < 0 # https://github.com/commercialhaskell/stackage/issues/4662
14051444 - hkgr
14061445 - http-directory
14071446 - rpmbuild-order
@@ -1450,7 +1489,7 @@ packages:
14501489 - pipes-binary
14511490 - pipes-network
14521491 - pipes-network-tls
1453− - safe-money < 0
1492+ - safe-money
14541493 - vector-bytes-instances
14551494 - xmlbf-xeno
14561495 - xmlbf-xmlhtml < 0 # GHC 8.4 via xmlhtml via hspec-2.5.0
@@ -1744,7 +1783,7 @@ packages:
17441783 - cubicspline
17451784 - maximal-cliques
17461785
1747− "Alexander Bondarenko <aenor.realm@gmail.com> @wiz":
1786+ "Alexander Bondarenko <aenor.realm@gmail.com> @dpwiz":
17481787 - hedn
17491788 - soap
17501789 - soap-tls
@@ -1940,6 +1979,7 @@ packages:
19401979 - configurator-export
19411980 - decidable
19421981 - emd
1982+ - functor-products
19431983 - hamilton
19441984 - hmatrix-backprop
19451985 - hmatrix-vector-sized
@@ -2019,6 +2059,7 @@ packages:
20192059 - glabrous
20202060 - google-oauth2-jwt
20212061 - IPv6DB < 0
2062+ - gothic
20222063
20232064 "koral koral@mailoo.org @k0ral":
20242065 - atom-conduit < 0
@@ -2156,12 +2197,14 @@ packages:
21562197 - monad-par
21572198 - monad-par-extras
21582199 - mtl-compat
2200+ - ordered-containers
21592201 - proxied
21602202 - singleton-nats
21612203 - text-show
21622204 - text-show-instances
21632205 - th-abstraction
21642206 - thread-local-storage
2207+ - type-equality
21652208
21662209 "Kirill Zaborsky <qrilka@gmail.com> @qrilka":
21672210 - xlsx
@@ -2176,6 +2219,7 @@ packages:
21762219 - esqueleto
21772220 - persistent-typed-db
21782221 - persistent-qq
2222+ - persistent-pagination
21792223
21802224 "Matthew Pickering <matthewtpickering@gmail.com> @mpickering":
21812225 - refact
@@ -2254,6 +2298,7 @@ packages:
22542298 - leancheck
22552299 - leancheck-instances
22562300 - fitspec
2301+ - express
22572302 - speculate
22582303 - extrapolate
22592304 - percent-format
@@ -2265,22 +2310,19 @@ packages:
22652310 - irc
22662311
22672312 "Dennis Gosnell <cdep.illabout@gmail.com> @cdepillabout":
2268− - emailaddress < 0 # opaleye
22692313 - envelope
22702314 - from-sum
22712315 - hailgun
2272− - hailgun-simple < 0 # via hailgun
22732316 - natural-transformation
2274− # - opaleye-trans # product-profunctors 0.9
22752317 - password
22762318 - password-instances
22772319 - pretty-simple
22782320 - read-env-var
2279− - servant-checked-exceptions < 0 # https://github.com/cdepillabout/servant-checked-exceptions/issues/29
2280− - servant-checked-exceptions-core < 0 # servant 0.16
2281− - servant-rawm < 0 # https://github.com/cdepillabout/servant-rawm/issues/9
2321+ - servant-checked-exceptions
2322+ - servant-checked-exceptions-core
2323+ - servant-rawm
22822324 - servant-static-th
2283− - termonad < 0
2325+ - termonad
22842326 - world-peace
22852327 - xml-html-qq
22862328 - xml-indexed-cursor
@@ -2339,7 +2381,9 @@ packages:
23392381 - http-common
23402382 - http-streams
23412383 - locators
2342− - unbeliever
2384+ - core-text
2385+ - core-data
2386+ - core-program
23432387
23442388 "Sean Hunt <scshunt@csclub.uwaterloo.ca @scshunt":
23452389 - cheapskate
@@ -2430,14 +2474,14 @@ packages:
24302474 - identicon
24312475 - lame
24322476 - megaparsec
2433− - megaparsec-tests < 0 # via QuickCheck https://github.com/commercialhaskell/stackage/issues/4444
2477+ - megaparsec-tests
24342478 - mmark
24352479 - mmark-cli
24362480 - mmark-ext
24372481 - modern-uri
24382482 - pagination
24392483 - parser-combinators
2440− # parser-combinators-tests # https://github.com/commercialhaskell/stackage/issues/4540
2484+ - parser-combinators-tests
24412485 - path
24422486 - path-io
24432487 - req
@@ -2654,9 +2698,9 @@ packages:
26542698 - dawg-ord < 0
26552699
26562700 "Amit Levy <amit@amitlevy.com> @alevy":
2657− - simple < 0 # GHC 8.4 via simple-templates
2658− - simple-templates < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build
2659− - simple-session < 0 # GHC 8.4 via simple
2701+ - simple
2702+ - simple-templates
2703+ - simple-session
26602704 - postgresql-orm
26612705
26622706 "Sergey Astanin <s.astanin@gmail.com> @astanin":
@@ -2718,7 +2762,7 @@ packages:
27182762
27192763 "Ozgun Ataman ozgun.ataman@soostone.com @ozataman":
27202764 - string-conv
2721− - rng-utils
2765+ - rng-utils < 0 # https://github.com/commercialhaskell/stackage/issues/4686
27222766 - ua-parser
27232767 - hs-GeoIP
27242768 - retry
@@ -2737,8 +2781,8 @@ packages:
27372781 - xlsx-tabular
27382782
27392783 "Mikhail Glushenkov <mikhail.glushenkov@gmail.com> @23Skidoo":
2740− - Cabal
2741− - cabal-install
2784+ - Cabal < 3 # https://github.com/commercialhaskell/stackage/issues/4761
2785+ - cabal-install < 3
27422786 # - pointful # haskell-src-exts
27432787
27442788 "Lennart Kolmodin <kolmodin@gmail.com> @kolmodin":
@@ -2853,12 +2897,14 @@ packages:
28532897 - repline
28542898 - picosat < 0
28552899 - aos-signature
2856− - bulletproofs
2900+ # https://github.com/commercialhaskell/stackage/issues/4682
2901+ - bulletproofs < 1
28572902 - pedersen-commitment
28582903 - merkle-tree
28592904 - oblivious-transfer
2860− - pairing
2905+ - pairing < 0 # #4758
28612906 - libraft
2907+ - galois-field
28622908
28632909 "Daishi Nakajima <nakaji.dayo@gmail.com> @nakaji-dayo":
28642910 - api-field-json-th
@@ -2899,8 +2945,8 @@ packages:
28992945 # - eventful-dynamodb # http-conduit 2.3 via amazonka
29002946 - eventful-memory
29012947 - eventful-postgresql < 0 # GHC 8.4 via persistent-postgresql
2902− - eventful-sql-common
2903− - eventful-sqlite
2948+ - eventful-sql-common < 0 # persistent 2.10.0 #4551
2949+ - eventful-sqlite < 0 # persistent 2.10.0 via eventful-sql-common
29042950 - eventful-test-helpers
29052951 - stratosphere
29062952 - sum-type-boilerplate
@@ -2975,6 +3021,7 @@ packages:
29753021 - quickcheck-classes
29763022 - arithmoi
29773023 - bitvec
3024+ - poly
29783025
29793026 "Ashley Yakeley <ashley@semantic.org> @AshleyYakeley":
29803027 - countable
@@ -3037,7 +3084,7 @@ packages:
30373084
30383085 "Moritz Kiefer <moritz.kiefer@purelyfunctional.org> @cocreature":
30393086 - lrucaching
3040− - llvm-hs < 0 # https://github.com/commercialhaskell/stackage/issues/4238
3087+ - llvm-hs
30413088 - llvm-hs-pure
30423089
30433090 "Thierry Bourrillon <thierry.bourrillon@fpinsight.com> @tbourrillon":
@@ -3101,7 +3148,7 @@ packages:
31013148 - butcher
31023149 - czipwith
31033150 - data-tree-print
3104− - brittany < 0 # via yaml-0.9.0 commercialhaskell/stackage#3823
3151+ - brittany
31053152
31063153 "Ryan Mulligan <ryan@ryantm.com> @ryantm":
31073154 - HDBC-mysql
@@ -3129,7 +3176,7 @@ packages:
31293176 - clock-extras
31303177 - next-ref < 0
31313178 - threads-extras < 0
3132− - tmp-postgres
3179+ - tmp-postgres < 0.3 # https://github.com/commercialhaskell/stackage/issues/4790
31333180 - pg-transact
31343181 - hspec-pg-transact
31353182 - postgresql-simple-queue
@@ -3177,11 +3224,9 @@ packages:
31773224 - salak-yaml
31783225 - salak-toml
31793226 - tensors
3180− - yam
3181− - yam-datasource
3182− - yam-redis
31833227 - menshen
31843228 - crc32c
3229+ - boots
31853230
31863231 "Tom Nielsen <tanielsen@gmail.com> @glutamate":
31873232 - plotlyhs
@@ -3199,10 +3244,11 @@ packages:
31993244 # - hip # lens 4.16 via diagrams/chart
32003245 - massiv
32013246 - massiv-io
3247+ - massiv-test
32023248 - scheduler
32033249
32043250 "Hans-Peter Deifel <hpd@hpdeifel.de> @hpdeifel":
3205− - hledger-iadd < 0 # via brick, via data-clist, via QuickCheck https://github.com/commercialhaskell/stackage/issues/4444
3251+ - hledger-iadd
32063252
32073253 "Roy Levien <royl@aldaron.com> @orome":
32083254 - crypto-enigma
@@ -3230,7 +3276,7 @@ packages:
32303276 "Mitsutoshi Aoe <maoe@foldr.in> @maoe":
32313277 - influxdb
32323278 - sensu-run < 0 # GHC 8.4 via base-4.11.0.0
3233− - viewprof < 0 # via brick, via data-clist, via QuickCheck https://github.com/commercialhaskell/stackage/issues/4444
3279+ - viewprof
32343280
32353281 "Dylan Simon <dylan-stack@dylex.net> @dylex":
32363282 - postgresql-typed
@@ -3319,6 +3365,11 @@ packages:
33193365 - possibly
33203366 - enum-text
33213367 - rg
3368+ - columnar
3369+ - enum-text-rio
3370+ - fmt-for-rio
3371+ - no-value
3372+ - optparse-enum
33223373
33233374 "Elliot Cameron <eacameron@gmail.com> @3noch":
33243375 []
@@ -3353,12 +3404,13 @@ packages:
33533404 - pier-core < 0
33543405 - pier < 0
33553406 - haskeline
3407+ - ghc-source-gen
33563408
33573409 "Christof Schramm <christof.schramm@campus.lmu.de>":
33583410 - mnist-idx
33593411
33603412 "Naushadh <naushadh@protonmail.com> @naushadh":
3361− - persistent-mysql-haskell
3413+ - persistent-mysql-haskell < 0 # persistent 2.10.0 #4550
33623414
33633415 "Moritz Schulte <mtesseract@silverratio.net> @mtesseract":
33643416 - async-refresh
@@ -3452,6 +3504,9 @@ packages:
34523504 - tomland
34533505 - typerep-map
34543506
3507+ "Dmitrii Kovanikov <kovanikov@gmail.com> @chshersh":
3508+ - type-errors-pretty
3509+
34553510 "Holmusk <tech@holmusk.com> @arbus":
34563511 - elm-street
34573512
@@ -3469,6 +3524,7 @@ packages:
34693524 - language-docker
34703525 - docker-build-cacher < 0 # GHC 8.4 via turtle
34713526 - mysql-haskell-nem
3527+ - hadolint
34723528
34733529 "Phil Ruffwind <rf@rufflewind.com> @Rufflewind":
34743530 - blas-hs
@@ -3519,6 +3575,7 @@ packages:
35193575 - path-text-utf8
35203576
35213577 "Type Classes <hello@typeclasses.com> @argumatronic @chris-martin":
3578+ - aws-cloudfront-signed-cookies
35223579 - stripe-concepts
35233580 - stripe-signature
35243581 - stripe-scotty
@@ -3639,6 +3696,7 @@ packages:
36393696 "Guru Devanla <grdvnl@gmail.com> @gdevanla":
36403697 - pptable
36413698 - cassava-records
3699+ - pandoc-markdown-ghci-filter
36423700
36433701 "Lucas David Traverso <lucas6246@gmail.com> @ludat":
36443702 - map-syntax < 0 # GHC 8.4 via base-4.11.0.0
@@ -3650,11 +3708,11 @@ packages:
36503708 - transformers-fix
36513709
36523710 "Domen Kozar <domen@enlambda.com> @domenkozar":
3653− - cachix < 0
3711+ - cachix < 0 # #4752
36543712 - cachix-api
36553713 - elm2nix
3656− - stack2nix
3657− - mixpanel-client < 0 # https://github.com/domenkozar/mixpanel-client/issues/3
3714+ - mixpanel-client < 0
3715+ - netrc
36583716 - pretty-sop
36593717 - servant-auth
36603718 - servant-auth-server
@@ -3703,12 +3761,12 @@ packages:
37033761 - tasty-ant-xml
37043762
37053763 "Eugene Smolanka <esmolanka@gmail.com> @esmolanka":
3706− - sexp-grammar < 0
3707− - invertible-grammar < 0
3764+ - sexp-grammar
3765+ - invertible-grammar
37083766
37093767 "Maximilian Tagher <feedback.tagher@gmail.com> @MaxGabriel":
37103768 - aeson-iproute
3711− - persistent-iproute
3769+ - persistent-iproute < 0 # persistent-2.10.0 #4553
37123770
37133771 "Damian Nadales <damian.nadales@gmail.com> @capitanbatata":
37143772 - hierarchy < 0
@@ -3758,6 +3816,7 @@ packages:
37583816 - web3
37593817
37603818 "Georg Rudoy <0xd34df00d@gmail.com> @0xd34df00d":
3819+ - can-i-haz
37613820 - enum-subset-generate
37623821
37633822 "Trevis Elser <trevis@silencedpoet.com> @telser":
@@ -3848,7 +3907,7 @@ packages:
38483907 - servant-auth-wordpress
38493908 - ca-province-codes
38503909
3851− "David Baynard <haskell@baynard.me> @dbaynard":
3910+ "David Baynard <haskell@baynard.dev> @dbaynard":
38523911 - time-qq # see christian-marie/time-qq#3
38533912 - ucam-webauth
38543913 - ucam-webauth-types
@@ -3896,6 +3955,22 @@ packages:
38963955 "Elben Shira <elben@shira.im> @elben":
38973956 - pencil
38983957
3958+ "ARATA Mizuki <minorinoki@gmail.com> @minoki":
3959+ - unboxing-vector
3960+
3961+ "Brandon Chinn <brandon@leapyear.io> @brandon-leapyear":
3962+ - th-test-utils
3963+
3964+ "Akshay Mankar <itsakshaymankar@gmail.com> @akshaymankar":
3965+ - jsonpath
3966+
3967+ "James Brock <jamesbrock@gmail.com> @jamesdbrock":
3968+ - replace-megaparsec
3969+ - replace-attoparsec
3970+
3971+ "Robbie McMichael @robbiemcmichael":
3972+ - http-client-overrides
3973+
38993974 "Grandfathered dependencies":
39003975 - Boolean
39013976 - ChasingBottoms < 0 # due to QuickCheck, https://github.com/commercialhaskell/stackage/issues/4444
@@ -3944,7 +4019,7 @@ packages:
39444019 - blaze-svg
39454020 - blaze-textual
39464021 - boring
3947− - brick < 0 # via data-clist, via QuickCheck https://github.com/commercialhaskell/stackage/issues/4444
4022+ - brick < 0.48 # https://github.com/commercialhaskell/stackage/issues/4789
39484023 - buffer-builder
39494024 - byteable
39504025 - bytestring-builder
@@ -3999,7 +4074,7 @@ packages:
39994074 - data-binary-ieee754
40004075 - data-bword
40014076 - data-checked
4002− - data-clist < 0 # via QuickCheck https://github.com/commercialhaskell/stackage/issues/4444
4077+ - data-clist
40034078 - data-default
40044079 - data-default-class
40054080 - data-default-instances-containers
@@ -4030,6 +4105,7 @@ packages:
40304105 - easytest
40314106 - ed25519
40324107 - edit-distance
4108+ - elm-bridge
40334109 - enclosed-exceptions
40344110 - entropy
40354111 - erf
@@ -4050,6 +4126,7 @@ packages:
40504126 - fmlist
40514127 - friendly-time
40524128 - functor-classes-compat
4129+ - functor-combinators
40534130 - generic-arbitrary
40544131 - generics-sop-lens
40554132 - ghc-compact
@@ -4295,6 +4372,7 @@ packages:
42954372 - tonatona
42964373 - transformers-base
42974374 - tree-diff
4375+ - trivial-constraint
42984376 - true-name
42994377 - tuple-th
43004378 - type-fun
@@ -4327,7 +4405,6 @@ packages:
43274405 - wai-app-static
43284406 - wai-conduit
43294407 - wai-eventsource
4330− - wai-extra
43314408 - wai-handler-launch
43324409 - wai-logger
43334410 - wai-session
@@ -4454,7 +4531,6 @@ packages:
44544531 - amazonka-core < 0 # via http-client-0.6.1
44554532 - github < 0 # via http-client-0.6.1
44564533 - hailgun < 0 # via http-client-0.6.1
4457− - language-puppet < 0 # via http-client-0.6.1
44584534 - mbug < 0 # via http-client-0.6.1
44594535
44604536 - antiope-athena < 0 # via amazonka
@@ -4464,7 +4540,6 @@ packages:
44644540 - antiope-s3 < 0 # via amazonka
44654541 - antiope-sns < 0 # via amazonka
44664542 - antiope-sqs < 0 # via amazonka
4467− - cachix-api < 0 # via amazonka
44684543 - confcrypt < 0 # via amazonka
44694544 - amazonka-apigateway < 0 # via amazonka-core
44704545 - amazonka-application-autoscaling < 0 # via amazonka-core
@@ -4575,10 +4650,11 @@ packages:
45754650 - hsdev < 0.3.3.0
45764651 - network-bsd < 2.8.1.0
45774652 - MissingH < 1.4.2.0
4578− - dbus < 1.2.8 # https://github.com/commercialhaskell/stackage/issues/4599
4579− - xml-conduit < 1.9 # https://github.com/commercialhaskell/stackage/issues/4570
4653+ - dbus < 1.2.8
4654+ - xml-conduit < 1.9
4655+ - systemd < 2
45804656
4581− # https://github.com/simonmichael/hledger/issues/983
4657+ # https://github.com/simonmichael/hledger/pull/987
45824658 - easytest < 0.3
45834659
45844660 # https://github.com/commercialhaskell/stackage/issues/4484
@@ -4587,13 +4663,6 @@ packages:
45874663 # https://github.com/commercialhaskell/stackage/issues/4519
45884664 - case-insensitive < 1.2.1
45894665
4590− # https://github.com/commercialhaskell/stackage/issues/4523
4591− - doctest < 0.16.1
4592−
4593− # https://github.com/commercialhaskell/stackage/issues/4527
4594− - generics-sop < 0.5
4595− - sop-core < 0.5
4596−
45974666 # https://github.com/commercialhaskell/stackage/issues/4529
45984667 - hashable < 1.3
45994668
@@ -4610,30 +4679,11 @@ packages:
46104679 - machines < 0.7
46114680
46124681 # https://github.com/commercialhaskell/stackage/issues/4532
4613− - profunctors < 5.4
4682+ - profunctors < 5.5
46144683
46154684 # https://github.com/commercialhaskell/stackage/issues/4541
46164685 - dependent-sum < 0.5
46174686
4618− # causes build failure in persistent-mysql-haskell https://github.com/commercialhaskell/stackage/issues/4550
4619− # causes build failure in eventful-sql-common https://github.com/commercialhaskell/stackage/issues/4551
4620− # causes build failure in persistent-test https://github.com/commercialhaskell/stackage/issues/4552
4621− # causes build failure in persistent-iproute https://github.com/commercialhaskell/stackage/issues/4553
4622− - persistent < 2.10
4623− - persistent-mysql < 2.10
4624− - persistent-postgresql < 2.10
4625− - persistent-sqlite < 2.10
4626− - persistent-template < 2.7.0
4627− - persistent-typed-db < 0.1.0.0
4628−
4629− # https://github.com/commercialhaskell/stackage/issues/4557
4630− - hedgehog < 1.0
4631− - registry < 0.1.5.0
4632− - hedgehog-fn < 1.0
4633− - tasty-hedgehog < 1.0
4634− - tomland < 1.0.1.0
4635− - nonempty-containers < 0.3.0.0
4636−
46374687 # https://github.com/commercialhaskell/stackage/issues/4564
46384688 - primitive < 0.7.0.0
46394689 - primitive-extras < 0.8
@@ -4653,24 +4703,6 @@ packages:
46534703 # https://github.com/commercialhaskell/stackage/issues/4579
46544704 - quickcheck-classes < 0.6.2.0
46554705
4656− # https://github.com/commercialhaskell/stackage/issues/4580
4657− - http-api-data < 0.4.1
4658−
4659− # https://github.com/commercialhaskell/stackage/issues/4588
4660− - systemd < 2
4661−
4662− # https://github.com/commercialhaskell/stackage/issues/4591
4663− - servant-elm < 0.6
4664−
4665− # https://github.com/commercialhaskell/stackage/issues/4592
4666− - swagger2 < 2.4
4667−
4668− # https://github.com/commercialhaskell/stackage/issues/4594
4669− - servant < 0.16.1
4670− - servant-server < 0.16.1
4671− - servant-cli < 0.1.0.1
4672− - singleton-bool < 0.1.5
4673−
46744706 # https://github.com/commercialhaskell/stackage/issues/4596
46754707 - tls < 1.5.0
46764708 - tls-debug < 0.4.6
@@ -4678,11 +4710,12 @@ packages:
46784710 # https://github.com/commercialhaskell/stackage/issues/4604
46794711 - inline-c < 0.8
46804712
4681− # https://github.com/commercialhaskell/stackage/issues/4613
4682− - fixed < 0.3
4683−
46844713 # https://github.com/commercialhaskell/stackage/issues/4619
46854714 - hw-balancedparens < 0.2.1.0
4715+ # https://github.com/commercialhaskell/stackage/issues/4676
4716+ - hw-json < 1.1
4717+ # https://github.com/commercialhaskell/stackage/issues/4657
4718+ - hw-rankselect < 0.13.1.0
46864719
46874720 # https://github.com/commercialhaskell/stackage/issues/4632
46884721 - microlens < 0.4.11
@@ -4694,8 +4727,110 @@ packages:
46944727 # https://github.com/commercialhaskell/stackage/issues/4633
46954728 - hw-packed-vector < 0.1
46964729
4697− # New http2 not supported by Warp yet
4730+ # https://github.com/commercialhaskell/stackage/issues/4645
4731+ - warp < 3.3.0
46984732 - http2 < 2
4733+
4734+ # https://github.com/commercialhaskell/stackage/issues/4673
4735+ - hlint < 2.2
4736+
4737+ # https://github.com/commercialhaskell/stackage/issues/4693
4738+ - optparse-applicative < 0.15
4739+
4740+ # https://github.com/commercialhaskell/stackage/issues/4702
4741+ - generic-lens < 1.2.0.0
4742+
4743+ # https://github.com/commercialhaskell/stackage/issues/4709
4744+ - base-unicode-symbols < 0.2.4
4745+
4746+ # https://github.com/commercialhaskell/stackage/issues/4725
4747+ - lens-family < 2
4748+ - lens-family-core < 2
4749+
4750+ # https://github.com/commercialhaskell/stackage/issues/4731
4751+ - ghc-lib-parser < 8.8.0.20190723
4752+ - ghc-lib < 8.8.0.20190723
4753+
4754+ # https://github.com/commercialhaskell/stackage/issues/4737
4755+ - parser-combinators < 1.2.0
4756+ - parser-combinators-tests < 1.2.0
4757+
4758+ # https://github.com/commercialhaskell/stackage/issues/4739
4759+ - doctemplates < 0.3
4760+
4761+ # https://github.com/commercialhaskell/stackage/issues/4743
4762+ - monoidal-containers < 0.5
4763+
4764+ # https://github.com/commercialhaskell/stackage/issues/4749
4765+ - call-stack < 0.2.0
4766+
4767+ # https://github.com/commercialhaskell/stackage/issues/4750
4768+ - gi-gdk < 4
4769+ - gi-gtk < 4
4770+
4771+ # https://github.com/commercialhaskell/stackage/issues/4753
4772+ - dependent-map < 0.3
4773+ - dependent-sum-template < 0.1
4774+
4775+ # https://github.com/commercialhaskell/stackage/issues/4775
4776+ - polyparse < 1.13
4777+
4778+ # https://github.com/commercialhaskell/stackage/issues/4781
4779+ - generic-deriving < 1.13
4780+
4781+ # See https://github.com/commercialhaskell/stackage/issues/4646#issuecomment-525517773
4782+ - singletons < 2.6
4783+ - eliminators < 0.6
4784+ - th-desugar < 1.10
4785+
4786+ # https://github.com/commercialhaskell/stackage/issues/4785
4787+ - ghc-exactprint < 0.6.2
4788+
4789+ # https://github.com/commercialhaskell/stackage/issues/4786
4790+ - shelly < 1.9
4791+
4792+ # https://github.com/commercialhaskell/stackage/issues/4796
4793+ - jailbreak-cabal < 1.3.5
4794+ - cabal2spec < 2.3
4795+
4796+ # https://github.com/commercialhaskell/stackage/issues/4798
4797+ - ansi-terminal < 0.10
4798+
4799+ # https://github.com/commercialhaskell/stackage/issues/4799
4800+ - memory < 0.15
4801+
4802+ # https://github.com/commercialhaskell/stackage/issues/4801
4803+ - base-compat < 0.11
4804+
4805+ # https://github.com/commercialhaskell/stackage/issues/4802
4806+ - base-compat-batteries < 0.11
4807+
4808+ # https://github.com/commercialhaskell/stackage/issues/4803
4809+ - hspec-wai < 0.10.0
4810+ - hspec-wai-json < 0.10.0
4811+
4812+ # https://github.com/commercialhaskell/stackage/issues/4804
4813+ - lens < 4.18
4814+
4815+ # https://github.com/commercialhaskell/stackage/issues/4805
4816+ - lens-aeson < 1.1
4817+
4818+ # https://github.com/commercialhaskell/stackage/issues/4807
4819+ - aeson < 1.4.5.0
4820+
4821+ # https://github.com/commercialhaskell/stackage/issues/4809
4822+ - elm-street < 0.1
4823+
4824+ # https://github.com/commercialhaskell/stackage/issues/4816
4825+ - trifecta < 2.1
4826+
4827+ # https://github.com/commercialhaskell/stackage/issues/4823
4828+ - universe < 1.2
4829+ - universe-dependent-sum < 1.2
4830+
4831+ # https://github.com/commercialhaskell/stackage/issues/4824
4832+ - bindings-GLFW < 3.3
4833+
46994834# end of packages
47004835
47014836# Package flags are applied to individual packages, and override the values of
@@ -4789,10 +4924,6 @@ package-flags:
47894924 # https://github.com/haskell/cabal/issues/4883
47904925 native-dns: false
47914926
4792− # https://github.com/commercialhaskell/stackage/issues/3666
4793− safe-money:
4794− serialise: false
4795−
47964927 # https://github.com/fpco/stackage/issues/3619
47974928 transformers-compat:
47984929 five-three: true
@@ -4877,6 +5008,7 @@ skipped-tests:
48775008 - ip # hspec 2.5 https://github.com/andrewthad/haskell-ip/issues/33
48785009 - language-ecmascript # testing-feat 1.1.0.0
48795010 - lattices # via tasty-1.2
5011+ - netrc # via tasty-1.2
48805012 - makefile # GHC 8.2
48815013 - mmtf # via hspec-2.7.0
48825014 - next-ref # hspec 2.3
@@ -5002,6 +5134,8 @@ skipped-tests:
50025134 - uri-bytestring # Could not deduce (SOP.All (SOP.All Arbitrary) xs) arising from a use of ‘SOP.hcpure’
50035135 - cron # Could not deduce (SOP.All (SOP.All Arbitrary) xss) arising from a use of ‘SOP.hcpure’
50045136 - config-ini # https://github.com/aisamanra/config-ini/issues/22
5137+ - polysemy-plugin # https://github.com/commercialhaskell/stackage/issues/4733
5138+
50055139
50065140 # Runtime issues
50075141 - blank-canvas # Never finishes https://github.com/ku-fpg/blank-canvas/issues/73
@@ -5090,8 +5224,16 @@ skipped-tests:
50905224 # Requires running pg-harness-server
50915225 - peregrin
50925226
5093− # Internal errors with move to the new curator tool?
5094− - blaze-collonade # https://github.com/commercialhaskell/stackage/issues/4639
5227+ # Test errors with modules not being visible
5228+ - servant-ruby # https://github.com/commercialhaskell/stackage/issues/4650
5229+ - pretty-simple # https://github.com/commercialhaskell/stackage/issues/4652
5230+ - password-instances # https://github.com/commercialhaskell/stackage/issues/4653
5231+ - password # https://github.com/commercialhaskell/stackage/issues/4654
5232+ - haskell-gi # https://github.com/commercialhaskell/stackage/issues/4661
5233+ - envelope # https://github.com/commercialhaskell/stackage/issues/4669
5234+ - algebraic-graphs # https://github.com/commercialhaskell/stackage/issues/4670
5235+ - either-both # https://github.com/commercialhaskell/stackage/issues/4757
5236+ - bugsnag-haskell # https://github.com/commercialhaskell/stackage/issues/4759
50955237# end of skipped-tests
50965238
50975239# Tests listed in expected-test-failures configure correctly but may fail to run
@@ -5203,7 +5345,7 @@ expected-test-failures:
52035345 - odbc # "Need ODBC_TEST_CONNECTION_STRING environment variable"
52045346 - opaleye # PostgreSQL
52055347 - pandoc-pyplot # requires DISPLAY for tcltk
5206− - pantry-tmp # https://github.com/commercialhaskell/stackage/issues/4628
5348+ - pantry # https://github.com/commercialhaskell/stackage/issues/4628
52075349 - persistent-redis # redis - https://github.com/fpco/stackage/pull/1581
52085350 - pipes-mongodb
52095351 - postgresql-query # PostgreSQL
@@ -5242,7 +5384,6 @@ expected-test-failures:
52425384 - doctest-discover # 0.1.0.9 https://github.com/karun012/doctest-discover/issues/22
52435385 - graylog # 0.1.0.1 https://github.com/fpco/stackage/pull/1254
52445386 - tomland # https://github.com/kowainik/tomland/issues/141
5245− - safe-json # 0.1.0 https://github.com/Vlix/safe-json/issues/1
52465387
52475388 # Assertion failures, these can be real bugs or just limitations
52485389 # in the test cases.
@@ -5350,6 +5491,44 @@ expected-test-failures:
53505491
53515492 # https://github.com/jgm/pandoc/issues/5582
53525493 - pandoc
5494+
5495+ # https://github.com/commercialhaskell/stackage/issues/4642
5496+ - ghc-exactprint
5497+
5498+ # https://github.com/commercialhaskell/stackage/issues/4643
5499+ - world-peace
5500+
5501+ # https://github.com/commercialhaskell/stackage/issues/4646
5502+ - singletons
5503+
5504+ # Cannot reproduce locally, looks like it may be a bug in Stack or curator
5505+ - shake-language-c
5506+
5507+ # https://github.com/commercialhaskell/stackage/issues/4706
5508+ - dhall
5509+
5510+ # https://github.com/commercialhaskell/stackage/issues/4707
5511+ - blaze-colonnade
5512+
5513+ # https://github.com/commercialhaskell/stackage/issues/4722
5514+ - tasty-discover
5515+
5516+ # https://github.com/commercialhaskell/stackage/issues/4764
5517+ - persistent-mysql
5518+ # https://github.com/commercialhaskell/stackage/issues/4763
5519+ - persistent-postgresql
5520+
5521+ # https://github.com/commercialhaskell/stackage/issues/4784
5522+ - raaz
5523+
5524+ # Requires a running server
5525+ - persistent-mongoDB
5526+
5527+ # https://github.com/commercialhaskell/stackage/issues/4810
5528+ - dns
5529+
5530+ # https://github.com/commercialhaskell/stackage/issues/4815
5531+ - brittany
53535532# end of expected-test-failures
53545533
53555534# Benchmarks which are known not to build. Note that, currently we do not run
@@ -5366,6 +5545,7 @@ expected-benchmark-failures:
53665545 - cryptohash # https://github.com/vincenthz/hs-cryptohash/pull/43
53675546 - http2
53685547 - lz4 # https://github.com/fpco/stackage/issues/3510
5548+ - raaz # https://github.com/commercialhaskell/stackage/issues/4766
53695549 - thyme
53705550 - xmlgen # https://github.com/skogsbaer/xmlgen/issues/6
53715551
@@ -5569,6 +5749,7 @@ skipped-benchmarks:
55695749 - extensible # via freer-effects https://github.com/fumieval/extensible/issues/12
55705750 - hw-bits # https://github.com/haskell-works/hw-bits/issues/8
55715751 - hslua # https://github.com/commercialhaskell/stackage/issues/4526
5752+ - persistent-template # https://github.com/commercialhaskell/stackage/issues/4760
55725753
55735754 # Cyclic dependencies
55745755 - cassava
@@ -5847,7 +6028,7 @@ no-revisions:
58476028- gauge
58486029- stack
58496030- http-download
5850−- pantry-tmp
6031+- pantry
58516032- rio-prettyprint
58526033- hi-file-parser
58536034# https://github.com/commercialhaskell/stackage/issues/3706:
@@ -5855,7 +6036,6 @@ no-revisions:
58556036- hledger-lib
58566037- hledger-ui
58576038- hledger-web
5858−- hledger-api
58596039
58606040
58616041# Do not build these packages in parallel with others. Useful for high memory
check+10−2
@@ -1,6 +1,14 @@
1−#!/bin/sh
1+#!/bin/bash
22
33# Convenience script for checking constraints locally
44
55cd `dirname $0`
6−exec stack exec --resolver ghc-8.6.5 stackage-curator check
6+
7+export GHCVER=$(sed -n "s/^ghc-version: \"\(.*\)\"/\1/p" "build-constraints.yaml")
8+
9+NIGHTLY="nightly-$(date +%Y-%m-%d)"
10+curator update &&
11+ curator constraints --target=$NIGHTLY &&
12+ curator snapshot-incomplete --target=$NIGHTLY &&
13+ curator snapshot &&
14+ stack --resolver ghc-$GHCVER exec curator check-snapshot
debian-bootstrap.sh+16−9
@@ -98,6 +98,7 @@ apt-get install -y \
9898 libopenmpi-dev \
9999 libpango1.0-dev \
100100 libpcap0.8-dev \
101+ libpcre2-dev \
101102 libpq-dev \
102103 libprotobuf-dev \
103104 libre2-dev \
@@ -131,6 +132,7 @@ apt-get install -y \
131132 libzstd-dev \
132133 libzmq3-dev \
133134 llvm-6.0 \
135+ llvm-8 \
134136 locales \
135137 m4 \
136138 minisat \
@@ -163,13 +165,13 @@ curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources
163165apt-get update
164166ACCEPT_EULA=Y apt-get install msodbcsql17 -y
165167
166−locale-gen en_US.UTF-8
168+# llvm for llvm-hs
169+curl https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -
170+add-apt-repository "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-9 main"
171+apt-get update
172+apt-get install llvm-9-dev -y
167173
168−# llvm-7.0 for llvm-hs (separate since it needs wget)
169−wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - \
170− && add-apt-repository "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-7 main" \
171− && apt-get update \
172− && apt-get install -y llvm-7
174+locale-gen en_US.UTF-8
173175
174176# Buggy versions of ld.bfd fail to link some Haskell packages:
175177# https://sourceware.org/bugzilla/show_bug.cgi?id=17689. Gold is
@@ -217,10 +219,9 @@ echo "/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/" > /etc/ld.so.conf
217219 && ldconfig
218220
219221# Install erlang/otp platform and its dependencies
220−ERLANG_VERSION="20.2.2"
221−ERLANG_DEB_FILE="esl-erlang_21.2-1~ubuntu~bionic_amd64.deb"
222+ERLANG_DEB_FILE="esl-erlang_21.1-1~ubuntu~bionic_amd64.deb"
222223pushd /tmp \
223− && wget http://packages.erlang-solutions.com/site/esl/esl-erlang/FLAVOUR_1_general/${ERLANG_DEB_FILE} \
224+ && wget https://packages.erlang-solutions.com/erlang/debian/pool/${ERLANG_DEB_FILE} \
224225 && (dpkg -i ${ERLANG_DEB_FILE}; apt-get install -yf) \
225226 && rm ${ERLANG_DEB_FILE} \
226227 && popd
@@ -275,6 +276,12 @@ echo /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server > /etc/ld.so.conf.d/
275276echo /usr/lib/llvm-3.7/lib > /etc/ld.so.conf.d/llvm.conf
276277
277278ldconfig
279+
280+# Install librdkafka (Apache Kafka C/C++ library)
281+wget -qO - https://packages.confluent.io/deb/5.2/archive.key | apt-key add -
282+add-apt-repository "deb https://packages.confluent.io/deb/5.2 stable main"
283+apt-get update && apt install -y librdkafka-dev
284+
278285# EOF: don't build anything below this line
279286
280287# Cleanup
etc/curator-exes/.gitignorenew file+1
@@ -0,0 +1 @@
1+/bin/
etc/curator-exes/Dockerfilenew file+13
@@ -0,0 +1,13 @@
1+FROM fpco/stack-build:lts-14
2+
3+# Prime the snapshot so rebuilds are faster
4+RUN mkdir -p /artifacts
5+RUN stack update
6+RUN stack build --no-install-ghc --resolver lts-13.28 --only-dependencies stack amazonka-s3
7+
8+RUN git clone --depth 1 https://github.com/commercialhaskell/stack && \
9+ git clone --depth 1 https://github.com/commercialhaskell/curator
10+
11+COPY stack.yaml .
12+
13+RUN stack --no-install-ghc install --local-bin-path /artifacts
etc/curator-exes/README.mdnew file+5
@@ -0,0 +1,5 @@
1+Scripts to create and upload the curator-exes.tar.bz2 files. Make sure to
2+update the hash in automated/build-next.sh.
3+
4+NOTE: Depending on what's exactly on the master branches when running the
5+`./run.sh` script, the `stack.yaml` file may need some tweaks.
etc/curator-exes/run.shnew file+11
@@ -0,0 +1,11 @@
1+#!/usr/bin/env bash
2+
3+set -eux
4+
5+rm -rf bin
6+mkdir -p bin
7+
8+docker build . --tag curator-exes
9+
10+docker run --rm -v $(pwd)/bin:/output curator-exes cp /artifacts/* output
11+aws s3 cp curators-exes/* s3://download.fpcomplete.com/curator-exes/
etc/curator-exes/stack.yamlnew file+22
@@ -0,0 +1,22 @@
1+resolver: lts-13.28
2+
3+packages:
4+- stack
5+- curator
6+
7+extra-deps:
8+- hi-file-parser-0.1.0.0@sha256:3fc95852035c8e0fa6d5f9d22e5108067c8f4816ac84675bddc971b20144a9ae,2317
9+- http-download-0.1.0.0@sha256:b02d76d28364b74fb90d3ec3c46fd81f9d77bcf71fa40c1d341a7251a0fc40e8,2023
10+- pantry-0.1.1.2@sha256:6f06556f8e934afd517559d6f3dae947db91ef3801ee4e5cee9916c83a0c4d52,4628
11+- rio-prettyprint-0.1.0.0@sha256:764e1a357275c3c62d57c494d038feae01cf745788e7d0e97367ba793c9670c3,1359
12+- ansi-terminal-0.9.1@sha256:48f53532d0f365ffa568c8cf0adc84c66f800a7d80d3329e4f04fa75392f4af1,3225
13+- rio-0.1.12.0@sha256:a0b42682a455ffde6a4d894b135117e379aea7ed1810c2cfed471b8f5879968c,3633
14+- unliftio-0.2.12@sha256:b089fbc2ff2628a963c2c4b12143f2020874e3e5144ffd6c62b25639a0ca1483,3325
15+
16+- github: fpco/casa
17+ commit: a0cd05c1a9ce33acbb1bdfb9324370f884916e88
18+ # sha256: 812e05de8f9abdbd1101fc94895dcfd5c35962c4d67a43cc20cbc06eb59ea1f0
19+ # size: 9508
20+ subdirs:
21+ - casa-client
22+ - casa-types