diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index abff59f4..464d08c6 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -4,5 +4,6 @@ Checklist: - [ ] On your own machine, in a _new directory_, you have successfully run the following set of commands (replace `$package` with the name of the package that is submitted, and `$version` with the version of the package you want to get into Stackage): stack unpack $package-$version # $version is optional - stack init --resolver nightly + cd $package-$version + rm -f stack.yaml && stack init --resolver nightly stack build --resolver nightly --haddock --test --bench --no-run-benchmarks diff --git a/.travis.yml b/.travis.yml index b37bd3b2..fae1766b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,6 @@ # Disable Docker stuff to try to make it faster sudo: true +dist: bionic # Choose a lightweight base image; we provide our own build tools. language: generic @@ -10,14 +11,9 @@ addons: packages: - libgmp-dev -matrix: - include: - #- env: CHECK_SCRIPT="./etc/ci-script.sh" - - env: CHECK_SCRIPT="./etc/curator-2-check.sh" - # Edit etc/ci-script.sh to change GHC version script: -- $CHECK_SCRIPT +- ./etc/check.sh # Caching doesn't work with sudo: true #cache: diff --git a/CURATORS.md b/CURATORS.md index 37398cef..80da8441 100644 --- a/CURATORS.md +++ b/CURATORS.md @@ -18,7 +18,7 @@ This section sketches out at a high level how the entire Stackage build/curation process works: * [build-constraints.yaml](https://github.com/commercialhaskell/stackage/blob/master/build-constraints.yaml) specifies packages to be included in Stackage -* [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 +* [curator](https://github.com/commercialhaskell/curator) combines build-constraints.yaml with the current state of Hackage to create a build plan for a Stackage Nightly * `curator` can check that build plan to ensure all version bounds are consistent * The [Travis job](https://github.com/commercialhaskell/stackage/blob/master/.travis.yml) performs these two steps to provide immediate feedback on pull requests * Docker Hub [builds](https://github.com/commercialhaskell/stackage/blob/master/Dockerfile) a [Docker image](https://hub.docker.com/r/commercialhaskell/stackage/) for running builds @@ -280,31 +280,33 @@ we're just not there yet. ``` # Run a nightly build -/opt/stackage-build/stackage/automated/run-nightly.sh +/var/stackage/stackage/automated/run-nightly.sh # Run an LTS minor bump -/opt/stackage-build/stackage/automated/build-next.sh lts-14.17 +/var/stackage/stackage/automated/build.sh lts-15.1 # Run an LTS major bump -/opt/stackage-build/stackage/automated/build-next.sh lts-15.0 +/var/stackage/stackage/automated/build.sh lts-16.0 ``` Recommended: run these from inside a `tmux` session. If you get version bound problems on nightly or LTS major, you need to fix build-constraints.yaml (see -info above). +info above). ### Building LTS minor releases -First run `build-next.sh` to regenerate updated `ltsXX/work/constraints.yaml` and `ltsXX/work/snapshot-incomplete.yaml` files. +Before running the build, please make sure that the Dockerfile in `automated/dockerfiles/lts-X.Y` is up to date, where X is the major version that you're building and Y is the latest minor version of X for which a Dockerfile exists. If any changes need to be made, (eg, new GHC version), copy `lts-X.Y/Dockerfile` to `lts-X.Z/Dockerfile`, where Z is the minor version you're building, and include the new changes. + +First run `build.sh` to regenerate updated `ltsXX/work/constraints.yaml` and `ltsXX/work/snapshot-incomplete.yaml` files. For an LTS minor bump, you'll typically want to: * Add constraints to package `range:` fields _under_ the `source:` field in that `constraints.yaml`. -* Add new packages versioned to `snapshot-incomplete.yaml` (the `@` suffix is optional) +* Add new packages to the `constraints.yaml` file * 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. -Then run `NOPLAN=1 build-next.sh` to build the generate an updated snapshot. +Then run `NOPLAN=1 build.sh` to build the generate an updated snapshot. -This replaces `CONSTRAINTS=...' /opt/stackage-build/stackage/automated/build.sh lts-x.y` for the old curator-1. +This replaces `CONSTRAINTS=...' /var/stackage/stackage/automated/build.sh lts-x.y` for the old curator-1. If a build fails for bounds reasons, see all of the advice above. If the code itself doesn't build, or tests fail, open up an issue and then either put in a @@ -335,8 +337,8 @@ LTS minor bumps typically are run on Sundays. * You can detect the problem by running `df`. If you see that `/` is out of space, we have a problem * If you see that `/var/stackage/` is out of space, you can: - * `rm -r /var/stackage/stackage/automated/lts*/work/unpack-dir/unpacked/` - * `rm -r /var/stackage/stackage/automated/nightly/work/unpack-dir/unpacked/` + * `rm -r /var/stackage/stackage/automated/work/lts*/unpack-dir/unpacked/` + * `rm -r /var/stackage/stackage/automated/work/nightly/unpack-dir/unpacked/` * (outdated) There are many temp files inside `/home/ubuntu/stackage-server-cron` that can be cleared out occasionally * (outdated) You can then manually run `/home/ubuntu/stackage-server-cron.sh`, or wait for the cron job to do it diff --git a/Dockerfile b/Dockerfile index 94240b03..520b94ac 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM fpco/pid1:18.04 ENV HOME /home/stackage ENV LANG en_US.UTF-8 -ENV GHCVER 8.8.2 +ENV GHCVER 8.8.3 # NOTE: also update debian-bootstrap.sh when cuda version changes ENV PATH /home/stackage/.stack/programs/x86_64-linux/ghc-$GHCVER/bin:/usr/local/cuda-10.0/bin:/usr/sbin:/usr/bin:/sbin:/bin diff --git a/automated/.gitignore b/automated/.gitignore index 9c4d36e6..ee0d0037 100644 --- a/automated/.gitignore +++ b/automated/.gitignore @@ -1,12 +1,2 @@ -/auth-token -/bin/ -/gitconfig -/hackage-creds -/ssh-nightly/ -/ssh-lts/ -/nighlty/ -/lts-*/ -/stackage-curator/ -/stackage-update/ -/aws.sh -/crondir/ +/work/ +/*-build.log diff --git a/automated/build-next.sh b/automated/build.sh similarity index 71% rename from automated/build-next.sh rename to automated/build.sh index facbe406..f1344348 100755 --- a/automated/build-next.sh +++ b/automated/build.sh @@ -5,7 +5,7 @@ set -eu +x -o pipefail ROOT=$(cd $(dirname $0) ; pwd) TARGET=$1 -source aws.sh +source work/aws.sh # For nightly-YYYY-MM-DD, tag should be nightly # For lts-X.Y, tag should be ltsX @@ -13,39 +13,36 @@ SHORTNAME=$(echo $TARGET | cut -d- -f 1) if [ $SHORTNAME = "lts" ] then TAG=$(echo $TARGET | sed 's@^lts-\([0-9]*\)\.[0-9]*@lts\1@') + WORKDIR=$ROOT/work/$(echo $TARGET | sed 's@^lts-\([0-9]*\)\.[0-9]*@lts-\1@') else TAG=$SHORTNAME + WORKDIR=$ROOT/work/$TAG fi IMAGE=commercialhaskell/stackage:$TAG -CABAL_DIR=$ROOT/cabal -PANTRY_DIR=$ROOT/pantry -STACK_DIR=$ROOT/stack-$TAG -GHC_DIR=$ROOT/ghc -DOT_STACKAGE_DIR=$ROOT/dot-stackage -WORKDIR=$ROOT/$TAG/work +PANTRY_DIR=$ROOT/work/stack/pantry +STACK_DIR=$ROOT/work/stack +DOT_STACKAGE_DIR=$ROOT/work/dot-stackage # ssh key is used for committing snapshots (and their constraints) to Github -SSH_DIR=$ROOT/ssh +SSH_DIR=$ROOT/work/ssh USERID=$(id -u) mkdir -p \ - "$CABAL_DIR" \ "$PANTRY_DIR" \ "$STACK_DIR" \ - "$GHC_DIR" \ "$DOT_STACKAGE_DIR" \ "$WORKDIR" \ "$SSH_DIR" -GITCONFIG=$ROOT/gitconfig +GITCONFIG=$ROOT/work/gitconfig cat >$GITCONFIG < curator +chmod +x curator echo -n "curator version: " docker run --rm -v $(pwd)/curator:/exe $IMAGE /exe --version + +curl -L "https://download.fpcomplete.com/stackage-curator-2/stack-fffc0a40e2253788f6b9cb7471c03fd571d69bde.bz2" | bunzip2 > stack +chmod +x stack echo -n "stack version: " docker run --rm -v $(pwd)/stack:/exe $IMAGE /exe --version ) @@ -79,11 +78,11 @@ docker run --rm -v $(pwd)/stack:/exe $IMAGE /exe --version # is stored separately (because e.g. Ubuntu releases between LTS and nightly # could differ). Also the order of binds is important. 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" -ARGS_PREBUILD="$ARGS_COMMON -u $USERID -e HOME=$HOME -v $CABAL_DIR:$HOME/.cabal -v $GHC_DIR:$HOME/.ghc -v $DOT_STACKAGE_DIR:$HOME/.stackage" -ARGS_BUILD="$ARGS_COMMON -v $CABAL_DIR:$HOME/.cabal:ro -v $GHC_DIR:$HOME/.ghc:ro" +ARGS_PREBUILD="$ARGS_COMMON -u $USERID -e HOME=$HOME -v $DOT_STACKAGE_DIR:$HOME/.stackage" +ARGS_BUILD="$ARGS_COMMON" # instance-data is an undocumented feature of S3 used by amazonka, # see https://github.com/brendanhay/amazonka/issues/271 -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" +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 -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY -v $DOT_STACKAGE_DIR:/dot-stackage" # Make sure we actually need this snapshot. We only check this for LTS releases # since, for nightlies, we'd like to run builds even if they are unnecessary to @@ -108,7 +107,7 @@ then docker run $ARGS_PREBUILD $IMAGE /bin/bash -c "curator update && curator constraints --target $TARGET && curator snapshot-incomplete --target $TARGET && curator snapshot" fi else - docker run $ARGS_PREBUILD $IMAGE /bin/bash -c "curator snapshot" + docker run $ARGS_PREBUILD $IMAGE /bin/bash -c "curator snapshot-incomplete --target $TARGET && curator snapshot" fi @@ -139,19 +138,28 @@ docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "exec curator check-target-available # # * Upload the docs to S3 # * Upload the new snapshot .yaml file to the appropriate Github repo, also upload its constraints -# * Register as a new Hackage distro (currently disabled) -docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "curator upload-docs --target $TARGET && curator upload-github --target $TARGET && exec curator hackage-distro --target $TARGET" -# information about the new snapshots on Hackage +docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "curator upload-docs --target $TARGET && curator upload-github --target $TARGET" -$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/ +# For some reason, registering on Hackage fails with inscrutable error messages. Disabling. +# docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "exec curator hackage-distro --target $TARGET" -( +docker run $ARGS_UPLOAD $IMAGE curator legacy-bulk --stackage-snapshots /dot-stackage/curator/stackage-snapshots/ --lts-haskell /dot-stackage/curator/lts-haskell/ --stackage-nightly /dot-stackage/curator/stackage-nightly/ + +# Build and push docker image fpco/stack-build & fpco/stack-build-small for current release if [ $SHORTNAME = "lts" ] then - cd dot-stackage/curator/lts-haskell + $ROOT/dockerfiles/build.sh $TARGET + $ROOT/dockerfiles/build.sh --push $TARGET + $ROOT/dockerfiles/build.sh --push --small $TARGET +fi + +( +if [ $SHORTNAME = "lts" ] +then + cd $DOT_STACKAGE_DIR/curator/lts-haskell else - cd dot-stackage/curator/stackage-nightly + cd $DOT_STACKAGE_DIR/curator/stackage-nightly fi git add *.yaml @@ -159,14 +167,7 @@ git diff-index --quiet HEAD && echo No changes && exit 0 git config user.name "Stackage build server" git config user.email "michael@snoyman.com" git commit -a -m "More conversions $(date)" - -if [ $SHORTNAME = "lts" ] -then - GIT_SSH_COMMAND="ssh -i $ROOT/ssh-lts/id_rsa" git push origin master -else - GIT_SSH_COMMAND="ssh -i $ROOT/ssh-nightly/id_rsa" git push origin master -fi - +GIT_SSH_COMMAND="ssh -i $SSH_DIR/id_rsa" git push origin master ) echo -n "Completed at " diff --git a/automated/check-cabal.sh b/automated/check-cabal.sh deleted file mode 100755 index c920f98a..00000000 --- a/automated/check-cabal.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/usr/bin/env bash - -# This script is intended for testing Cabal HEAD against a Stackage snapshot. - -set -eux - -ROOT=$(cd $(dirname $0) ; pwd) -TARGET=$1 - -# For nightly-YYYY-MM-DD, tag should be nightly -# For lts-X.Y, tag should be ltsX -SHORTNAME=$(echo $TARGET | cut -d- -f 1) -if [ $SHORTNAME = "lts" ] -then - TAG=$(echo $TARGET | sed 's@^lts-\([0-9]*\)\.[0-9]*@lts\1@') - PLAN_URL=https://raw.githubusercontent.com/fpco/lts-haskell/master/$TARGET.yaml -else - TAG=$SHORTNAME - PLAN_URL=https://raw.githubusercontent.com/fpco/stackage-nightly/master/$TARGET.yaml -fi - -IMAGE=snoyberg/stackage:$TAG - -PLAN_FILE=$TARGET-plan.yaml -DOCMAP_FILE=$TARGET-docmap.yaml -BUNDLE_FILE=$TARGET.bundle= - -CABAL_DIR=$ROOT/cabal -STACK_DIR=$ROOT/stack -GHC_DIR=$ROOT/ghc -DOT_STACKAGE_DIR=$ROOT/dot-stackage -WORKDIR=$ROOT/$TAG/work -EXTRA_BIN_DIR=$ROOT/extra-bin - -mkdir -p \ - "$CABAL_DIR" \ - "$STACK_DIR" \ - "$GHC_DIR" \ - "$DOT_STACKAGE_DIR" \ - "$WORKDIR" \ - "$EXTRA_BIN_DIR" - -curl "$PLAN_URL" > $WORKDIR/$PLAN_FILE - -mkdir -p $ROOT/bin -BINDIR=$(cd $ROOT/bin ; pwd) -( -cd $BINDIR -rm -f stackage-curator stackage-curator.bz2 -wget https://s3.amazonaws.com/stackage-travis/stackage-curator/stackage-curator.bz2 -bunzip2 stackage-curator.bz2 -chmod +x stackage-curator -) - -ARGS_COMMON="--rm -v $WORKDIR:/home/stackage/work -w /home/stackage/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:/home/stackage/bin:ro" -ARGS_PREBUILD="$ARGS_COMMON -u $USER -v $CABAL_DIR:/home/stackage/.cabal -v $STACK_DIR:/home/stackage/.stack -v $GHC_DIR:/home/stackage/.ghc -v $DOT_STACKAGE_DIR:/home/stackage/.stackage" -ARGS_BUILD="$ARGS_COMMON -v $CABAL_DIR:/home/stackage/.cabal:ro -v $STACK_DIR:/home/stackage/.stack:ro -v $GHC_DIR:/home/stackage/.ghc:ro" - -# Get latest stack -curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C $EXTRA_BIN_DIR '*/stack' - -# Do all of the pre-build actions: -# -# * Update the package index -# * Fetch all needed tarballs (the build step does not have write access to the tarball directory) -# * Do a single unpack to create the package index cache (again due to directory perms) -docker run $ARGS_PREBUILD $IMAGE /bin/bash -c "/home/stackage/bin/stack update && stackage-curator fetch --plan-file $PLAN_FILE && cd /tmp && /home/stackage/bin/stack unpack random" - -# Now do the actual build. We need to first set the owner of the home directory -# correctly, so we run the command as root, change owner, and then use sudo to -# switch back to the current user -docker run $ARGS_BUILD $IMAGE /bin/bash -c "chown $USER /home/stackage && sudo -E -u $USER env \"PATH=\$PATH:/home/stackage/bin\" stackage-curator make-bundle --plan-file $PLAN_FILE --docmap-file $DOCMAP_FILE --bundle-file $BUNDLE_FILE --target $TARGET --cabal-from-head" diff --git a/automated/cron.sh b/automated/cron.sh deleted file mode 100755 index 2d804ad8..00000000 --- a/automated/cron.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -eux - -cd "$(dirname "${BASH_SOURCE[0]}")" - -CRONDIR=$(pwd)/crondir -mkdir -p $CRONDIR -source aws.sh - -IMAGE=fpco/stackage-server-prod:latest -docker pull $IMAGE - -stack update - -date -echo "Running stackage-server-cron..." -docker run --rm \ - -v $CRONDIR:/home/ubuntu \ - -v $HOME/.stack/indices:/home/ubuntu/.stack/indices:ro \ - --workdir /home/ubuntu \ - -p 17834:17834 \ - $IMAGE \ - bash -c "useradd $(whoami) -u $(id -u); sudo -u $(whoami) env HOME=/home/ubuntu AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY bash -c '/usr/local/bin/stackage-server-cron 2>&1 | tee -a /home/ubuntu/stackage-server-cron.log'" diff --git a/automated/dockerfiles/README.md b/automated/dockerfiles/README.md new file mode 100644 index 00000000..9fd65199 --- /dev/null +++ b/automated/dockerfiles/README.md @@ -0,0 +1,33 @@ +dockerfiles/stack-build +======================= + +Build [fpco/stack-build](https://hub.docker.com/r/fpco/stack-build/) Docker +images. This script and its Dockerfiles are used for building images for LTS >= +8.0. + +Usage +----- + + ./build.sh [--push] [--dry-run] [--small] lts-X.Y" + +Options +------- + +`--help`: show this help + +`--push`: push the image after building/tagging it + +`--dry-run`: print the important commands that will be run, but don't actually + run them + +`--small`: build the small variant of the image + +Argument +--------- + +The image for the selected LTS version will be built. + +This searches for a Dockerfile for the selected snapshot in +`lts-X.Y/Dockerfile`, and if one isn't found reuses the same image as built the +most recent `lts-X.Y/Dockerfile` found for earlier minor versions of the same +major version. diff --git a/automated/dockerfiles/build.sh b/automated/dockerfiles/build.sh new file mode 100755 index 00000000..489a8bbd --- /dev/null +++ b/automated/dockerfiles/build.sh @@ -0,0 +1,171 @@ +#!/usr/bin/env bash + +set -eu +cd "$(dirname "$0")" + +# +# Constants and defaults +# + +DOCKER_REPO=fpco/stack-build +PUSH=false +DRY=false +VARIANT=build + +# +# Functions +# + +# Print usage information and exit with failure status. First argument is an +# error message. +usage() { + echo "$0: $1" >&2 + echo + echo "Usage: $0 [--push] [--dry-run] [--small] lts-X.Y]" + echo "See README.md for more information." + echo + exit 1 +} + +# Print a command, and if --dry-run disabled also run it +dry() { + echo ">>> $*" + [[ $DRY = true ]] || "$@" +} + +# Push an image if --push is enabled (otherwise do nothing) +push() { + [[ $PUSH = false ]] || dry docker push "$1" +} + +# Tag an image, and then push it if --push is enabled +tagpush() { + dry docker tag "$1" "$2" + push "$2" +} + +# +# Parse command-line +# + +LTS_SLUG_ARG= +while [[ $# -gt 0 ]]; do + case "$1" in + --push) + PUSH=true + shift + ;; + --dry-run) + DRY=true + shift + ;; + --small) + VARIANT=small + DOCKER_REPO=fpco/stack-build-small + shift + ;; + -*) + usage "Unknown option: $1" + ;; + *) + if [[ -n "$LTS_SLUG_ARG" ]]; then + usage "Cannot specify multiple snaphots: $1" + fi + LTS_SLUG_ARG="$1" + shift + ;; + esac +done + +case "$LTS_SLUG_ARG" in + "") + usage "Missing argument: snapshot" + ;; + lts-*.*) + LTS_SLUG="$LTS_SLUG_ARG" + ;; + *) + echo "$0: Wrong snapshot format: $LTS_SLUG_ARG" >&2 + exit 1 + ;; +esac + +# +# Determine if lts slug is latest +# + +SNAPSHOTS="$(mktemp "lts-snapshots.json.XXXXXX")" +trap "rm -f \"$SNAPSHOTS\"" EXIT +wget -qO- https://www.stackage.org/download/lts-snapshots.json >"$SNAPSHOTS" + +LTS_VERSION="${LTS_SLUG#lts-}" +LTS_MAJOR="${LTS_VERSION%.*}" +LTS_MINOR="${LTS_VERSION#*.}" + +# +# Determine latest LTS version +# + +mkdir -p $HOME/.local/bin +curl -o $HOME/.local/bin/jq -L https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 +chmod +x $HOME/.local/bin/jq + +LATEST_LTS_SLUG=$($HOME/.local/bin/jq -r ".[\"lts\"]" $SNAPSHOTS) +LATEST_LTS_VERSION="${LATEST_LTS_SLUG#lts-}" +LATEST_LTS_MAJOR="${LATEST_LTS_VERSION%.*}" +LATEST_LTS_MINOR="${LATEST_LTS_VERSION#*.}" + +# +# Determine latest minor version of the selected major version +# + +MAJOR_LATEST_LTS_SLUG=$(jq -r ".[\"lts-$LTS_MAJOR\"]" $SNAPSHOTS) +MAJOR_LATEST_LTS_VERSION="${MAJOR_LATEST_LTS_SLUG#lts-}" +MAJOR_LATEST_LTS_MAJOR="${MAJOR_LATEST_LTS_VERSION%.*}" +MAJOR_LATEST_LTS_MINOR="${MAJOR_LATEST_LTS_VERSION#*.}" + +# +# Find the Dockerfile for the selected snapshot +# + +if [[ -s "$LTS_SLUG/Dockerfile" ]]; then + + # If there is an exact match, build and push that image + + sed "s/\\\$DOCKER_REPO/$(echo $DOCKER_REPO|sed 's/\//\\\//')/g" "$LTS_SLUG/Dockerfile" >"$LTS_SLUG/Dockerfile.sub" + dry docker build -t "$DOCKER_REPO:$LTS_SLUG" --build-arg "DOCKER_REPO=$DOCKER_REPO" --build-arg "LTS_SLUG=$LTS_SLUG" --build-arg "VARIANT=$VARIANT" -f "$LTS_SLUG/Dockerfile.sub" "$LTS_SLUG" + rm -f "$LTS_SLUG/Dockerfile.sub" + push "$DOCKER_REPO:$LTS_SLUG" +else + + # If no exact match, find a dockerfile for any earlier minor version of the + # selected major version, and just create a new tag from version's image with the selected + # minor version (assuming that nothing needs to change), and push it. + + minor=$(( LTS_MINOR - 1 )) + while [[ ! -s "lts-$LTS_MAJOR.$minor/Dockerfile" && $minor -ge 0 ]]; do + minor=$(( minor - 1 )) + done + if [[ $minor -lt 0 ]]; then + echo "$0: Cannot find any Dockerfile for LTS major version" >&2 + exit 1 + fi + dry docker pull "$DOCKER_REPO:lts-$LTS_MAJOR.$minor" || true + tagpush "$DOCKER_REPO:lts-$LTS_MAJOR.$minor" "$DOCKER_REPO:$LTS_SLUG" +fi + +# +# Create and push additional tags +# + +# If we select the latest minor version for the selected major version, then +# also create and push an 'lts-X' tag. +if [[ $LTS_MINOR -ge $MAJOR_LATEST_LTS_MINOR ]]; then + tagpush "$DOCKER_REPO:$LTS_SLUG" "$DOCKER_REPO:lts-$LTS_MAJOR" +fi + +# If we selected the latest LTS snapshot, also create and push the 'lts' and 'latest' tags. +if [[ "$LTS_MAJOR" = "$LATEST_LTS_MAJOR" ]] && [[ $LTS_MINOR -ge $LATEST_LTS_MINOR ]]; then + tagpush "$DOCKER_REPO:$LTS_SLUG" "$DOCKER_REPO:lts" + tagpush "$DOCKER_REPO:$LTS_SLUG" "$DOCKER_REPO:latest" +fi diff --git a/automated/dockerfiles/lts-10.0/Dockerfile b/automated/dockerfiles/lts-10.0/Dockerfile new file mode 100644 index 00000000..7a0b4172 --- /dev/null +++ b/automated/dockerfiles/lts-10.0/Dockerfile @@ -0,0 +1,67 @@ +FROM ubuntu:16.04 + +MAINTAINER Emanuel Borsboom + +ARG GHC_VERSION=8.2.2 +ARG LTS_SLUG=lts-10.0 +ARG PID1_VERSION=0.1.0.1 +ARG STACK_VERSION=1.6.3 +ARG BOOTSTRAP_COMMIT=a8234cb586c3022099a3b0155275ed067df00f72 +ARG DEBIAN_FRONTEND=noninteractive + +# +# Set encoding to UTF-8 and PATH to find GHC and cabal/stack-installed binaries. +# + +ENV LANG=C.UTF-8 \ + LC_ALL=C.UTF-8 \ + PATH=/root/.cabal/bin:/root/.local/bin:/opt/ghc/$GHC_VERSION/bin:$PATH + +# +# Use Stackage's debian-bootstrap.sh script to install system libraries and +# tools required to build any Stackage package. +# + +RUN apt-get update && \ + apt-get install -y wget && \ + wget -qO- https://raw.githubusercontent.com/fpco/stackage/$BOOTSTRAP_COMMIT/debian-bootstrap.sh | bash && \ + rm -rf /var/lib/apt/lists/* + +# +# Create symlink to help tools find GHC documentation +# + +RUN ln -s ghc /opt/ghc/$GHC_VERSION/share/doc/ghc-$GHC_VERSION + +# +# Use 'stack' to install basic Haskell tools like alex, happy, and cpphs. We +# remove most of the STACK_ROOT afterward to save space, but keep the 'share' +# files that some of these tools require. +# + +RUN stack --system-ghc --resolver=$LTS_SLUG --local-bin-path=/usr/local/bin install \ + cabal-install happy alex cpphs gtk2hs-buildtools hscolour && \ + cd $HOME/.stack && \ + find . -type f -not -path './snapshots/*/share/*' -exec rm '{}' \; && \ + find . -type d -print0 |sort -rz |xargs -0 rmdir 2>/dev/null || true + +# +# Install 'pid1' init daemon +# + +RUN wget -O- "https://github.com/fpco/pid1/releases/download/pid1%2F$PID1_VERSION/pid1-$PID1_VERSION-linux-x86_64.tar.gz" | tar xzf - -C /usr/local && \ + chown root:root /usr/local/sbin && \ + chown root:root /usr/local/sbin/pid1 + +# +# Install Stack +# + +RUN wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/local/bin '*/stack' + +# +# Set up pid1 entrypoint and default command +# + +ENTRYPOINT ["/usr/local/sbin/pid1"] +CMD ["bash"] diff --git a/automated/dockerfiles/lts-10.1/Dockerfile b/automated/dockerfiles/lts-10.1/Dockerfile new file mode 100644 index 00000000..3ffce11c --- /dev/null +++ b/automated/dockerfiles/lts-10.1/Dockerfile @@ -0,0 +1,3 @@ +FROM fpco/stack-build:lts-10.0 +ARG STACK_VERSION=1.6.3 +RUN wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/local/bin '*/stack' diff --git a/automated/dockerfiles/lts-10.5/Dockerfile b/automated/dockerfiles/lts-10.5/Dockerfile new file mode 100644 index 00000000..d2e8ba14 --- /dev/null +++ b/automated/dockerfiles/lts-10.5/Dockerfile @@ -0,0 +1,3 @@ +FROM fpco/stack-build:lts-10.0 +ARG STACK_VERSION=1.6.5 +RUN wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/local/bin '*/stack' diff --git a/automated/dockerfiles/lts-11.0/Dockerfile b/automated/dockerfiles/lts-11.0/Dockerfile new file mode 100644 index 00000000..093286da --- /dev/null +++ b/automated/dockerfiles/lts-11.0/Dockerfile @@ -0,0 +1,67 @@ +FROM ubuntu:16.04 + +MAINTAINER Emanuel Borsboom + +ARG GHC_VERSION=8.2.2 +ARG LTS_SLUG=lts-11.0 +ARG PID1_VERSION=0.1.0.1 +ARG STACK_VERSION=1.6.5 +ARG BOOTSTRAP_COMMIT=13ab2b86779c98598e96af7f4c4b9653ba280be5 +ARG DEBIAN_FRONTEND=noninteractive + +# +# Set encoding to UTF-8 and PATH to find GHC and cabal/stack-installed binaries. +# + +ENV LANG=C.UTF-8 \ + LC_ALL=C.UTF-8 \ + PATH=/root/.cabal/bin:/root/.local/bin:/opt/ghc/$GHC_VERSION/bin:$PATH + +# +# Use Stackage's debian-bootstrap.sh script to install system libraries and +# tools required to build any Stackage package. +# + +RUN apt-get update && \ + apt-get install -y wget && \ + wget -qO- https://raw.githubusercontent.com/fpco/stackage/$BOOTSTRAP_COMMIT/debian-bootstrap.sh | bash && \ + rm -rf /var/lib/apt/lists/* + +# +# Create symlink to help tools find GHC documentation +# + +RUN ln -s ghc /opt/ghc/$GHC_VERSION/share/doc/ghc-$GHC_VERSION + +# +# Use 'stack' to install basic Haskell tools like alex, happy, and cpphs. We +# remove most of the STACK_ROOT afterward to save space, but keep the 'share' +# files that some of these tools require. +# + +RUN stack --system-ghc --resolver=$LTS_SLUG --local-bin-path=/usr/local/bin install \ + cabal-install happy alex cpphs gtk2hs-buildtools hscolour && \ + cd $HOME/.stack && \ + find . -type f -not -path './snapshots/*/share/*' -exec rm '{}' \; && \ + find . -type d -print0 |sort -rz |xargs -0 rmdir 2>/dev/null || true + +# +# Install 'pid1' init daemon +# + +RUN wget -O- "https://github.com/fpco/pid1/releases/download/pid1%2F$PID1_VERSION/pid1-$PID1_VERSION-linux-x86_64.tar.gz" | tar xzf - -C /usr/local && \ + chown root:root /usr/local/sbin && \ + chown root:root /usr/local/sbin/pid1 + +# +# Install Stack +# + +RUN wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/local/bin '*/stack' + +# +# Set up pid1 entrypoint and default command +# + +ENTRYPOINT ["/usr/local/sbin/pid1"] +CMD ["bash"] diff --git a/automated/dockerfiles/lts-11.22/Dockerfile b/automated/dockerfiles/lts-11.22/Dockerfile new file mode 100644 index 00000000..b2065306 --- /dev/null +++ b/automated/dockerfiles/lts-11.22/Dockerfile @@ -0,0 +1,3 @@ +FROM fpco/stack-build:lts-11.6 +ARG STACK_VERSION=1.9.3 +RUN wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/local/bin '*/stack' diff --git a/automated/dockerfiles/lts-11.6/Dockerfile b/automated/dockerfiles/lts-11.6/Dockerfile new file mode 100644 index 00000000..83c5d691 --- /dev/null +++ b/automated/dockerfiles/lts-11.6/Dockerfile @@ -0,0 +1,3 @@ +FROM fpco/stack-build:lts-11.5 +ARG STACK_VERSION=1.7.1 +RUN wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/local/bin '*/stack' diff --git a/automated/dockerfiles/lts-12.0/Dockerfile b/automated/dockerfiles/lts-12.0/Dockerfile new file mode 100644 index 00000000..827941ee --- /dev/null +++ b/automated/dockerfiles/lts-12.0/Dockerfile @@ -0,0 +1,69 @@ +FROM ubuntu:16.04 + +MAINTAINER Emanuel Borsboom + +ARG GHC_VERSION=8.4.3 +ARG LTS_SLUG=lts-12.0 +ARG PID1_VERSION=0.1.2.0 +ARG STACK_VERSION=1.7.1 +ARG CUDA_VERSION=8.0 +ARG BOOTSTRAP_COMMIT=56c62ccbf31229ee2b09d3a0b4cd2ad94e7406a8 +ARG DEBIAN_FRONTEND=noninteractive + +# +# Set encoding to UTF-8 and PATH to find GHC and cabal/stack-installed binaries. +# + +ENV LANG=C.UTF-8 \ + LC_ALL=C.UTF-8 \ + PATH=/root/.cabal/bin:/root/.local/bin:/usr/local/cuda-$CUDA_VERSION/bin:/opt/ghc/$GHC_VERSION/bin:$PATH \ + CUDA_PATH=/usr/local/cuda-$CUDA_VERSION \ + LD_LIBRARY_PATH=/usr/local/cuda-$CUDA_VERSION/lib64:/usr/local/cuda-$CUDA_VERSION/nvvm/lib64 +# +# Use Stackage's debian-bootstrap.sh script to install system libraries and +# tools required to build any Stackage package. +# + +RUN apt-get update && \ + apt-get install -y wget && \ + wget -qO- https://raw.githubusercontent.com/fpco/stackage/$BOOTSTRAP_COMMIT/debian-bootstrap.sh | bash && \ + rm -rf /var/lib/apt/lists/* + +# +# Create symlink to help tools find GHC documentation +# + +RUN ln -s ghc /opt/ghc/$GHC_VERSION/share/doc/ghc-$GHC_VERSION + +# +# Use 'stack' to install basic Haskell tools like alex, happy, and cpphs. We +# remove most of the STACK_ROOT afterward to save space, but keep the 'share' +# files that some of these tools require. +# + +RUN stack --system-ghc --resolver=$LTS_SLUG --local-bin-path=/usr/local/bin install \ + cabal-install happy alex cpphs gtk2hs-buildtools hscolour && \ + cd $HOME/.stack && \ + find . -type f -not -path './snapshots/*/share/*' -exec rm '{}' \; && \ + find . -type d -print0 |sort -rz |xargs -0 rmdir 2>/dev/null || true + +# +# Install 'pid1' init daemon +# + +RUN wget -O- "https://github.com/fpco/pid1/releases/download/v$PID1_VERSION/pid1-$PID1_VERSION-linux-x86_64.tar.gz" | tar xzf - -C /usr/local && \ + chown root:root /usr/local/sbin && \ + chown root:root /usr/local/sbin/pid1 + +# +# Install Stack +# + +RUN wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/local/bin '*/stack' + +# +# Set up pid1 entrypoint and default command +# + +ENTRYPOINT ["/usr/local/sbin/pid1"] +CMD ["bash"] diff --git a/automated/dockerfiles/lts-12.13/Dockerfile b/automated/dockerfiles/lts-12.13/Dockerfile new file mode 100644 index 00000000..23617aa9 --- /dev/null +++ b/automated/dockerfiles/lts-12.13/Dockerfile @@ -0,0 +1,3 @@ +FROM fpco/stack-build:lts-12.0 +ARG STACK_VERSION=1.9.1 +RUN wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/local/bin '*/stack' diff --git a/automated/dockerfiles/lts-12.15/Dockerfile b/automated/dockerfiles/lts-12.15/Dockerfile new file mode 100644 index 00000000..7d309271 --- /dev/null +++ b/automated/dockerfiles/lts-12.15/Dockerfile @@ -0,0 +1,14 @@ +FROM fpco/stack-build:lts-12.0 +ARG STACK_VERSION=1.9.1 +ARG GHC_VERSION=8.4.4 +RUN apt-get update && \ + apt-get install -y \ + ghc-$GHC_VERSION \ + ghc-$GHC_VERSION-dyn \ + ghc-$GHC_VERSION-htmldocs \ + ghc-$GHC_VERSION-prof && \ + rm -rf /var/lib/apt/lists/* +RUN wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/local/bin '*/stack' +RUN ln -s ghc-$GHC_VERSION /opt/ghc/$GHC_VERSION/share/doc/ghc +ARG CUDA_VERSION=8.0 +ENV PATH=/root/.cabal/bin:/root/.local/bin:/usr/local/cuda-$CUDA_VERSION/bin:/opt/ghc/$GHC_VERSION/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin diff --git a/automated/dockerfiles/lts-12.21/Dockerfile b/automated/dockerfiles/lts-12.21/Dockerfile new file mode 100644 index 00000000..b8f3e821 --- /dev/null +++ b/automated/dockerfiles/lts-12.21/Dockerfile @@ -0,0 +1,3 @@ +FROM fpco/stack-build:lts-12.15 +ARG STACK_VERSION=1.9.3 +RUN wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/local/bin '*/stack' diff --git a/automated/dockerfiles/lts-12.26/Dockerfile b/automated/dockerfiles/lts-12.26/Dockerfile new file mode 100644 index 00000000..edaab49b --- /dev/null +++ b/automated/dockerfiles/lts-12.26/Dockerfile @@ -0,0 +1,89 @@ +FROM ubuntu:16.04 + +MAINTAINER Emanuel Borsboom + +ARG GHC_VERSION=8.4.4 +ARG LTS_SLUG=lts-12.0 +ARG PID1_VERSION=0.1.2.0 +ARG STACK_VERSION=1.9.3 +ARG CUDA_VERSION=8.0 +ARG BOOTSTRAP_COMMIT=7f982f63a3734ddb2a7cbbc52b8cec983c496efa +ARG DEBIAN_FRONTEND=noninteractive +ARG VARIANT=build + +# +# Set encoding to UTF-8 and PATH to find GHC and cabal/stack-installed binaries. +# + +ENV LANG=C.UTF-8 \ + LC_ALL=C.UTF-8 \ + PATH=/root/.cabal/bin:/root/.local/bin:/usr/local/cuda-$CUDA_VERSION/bin:/opt/ghc/$GHC_VERSION/bin:$PATH \ + CUDA_PATH=/usr/local/cuda-$CUDA_VERSION \ + LD_LIBRARY_PATH=/usr/local/cuda-$CUDA_VERSION/lib64:/usr/local/cuda-$CUDA_VERSION/nvvm/lib64 +# +# Use Stackage's debian-bootstrap.sh script to install system libraries and +# tools required to build any Stackage package. +# + +RUN apt-get update && \ + apt-get install -y --no-install-recommends wget netbase ca-certificates && \ + if [ "$VARIANT" = "small" ]; then \ + echo "deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main" >>/etc/apt/sources.list && \ + echo "deb-src http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main" >>/etc/apt/sources.list && \ + apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 063DAB2BDC0B3F9FCEBC378BFF3AEACEF6F88286 && \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + ghc-$GHC_VERSION ghc-$GHC_VERSION-htmldocs \ + g++ gcc libc6-dev libffi-dev libgmp-dev make xz-utils zlib1g-dev git gnupg \ + libtinfo-dev; \ + else \ + wget -qO- https://raw.githubusercontent.com/fpco/stackage/$BOOTSTRAP_COMMIT/debian-bootstrap.sh | bash; \ + fi && \ + rm -rf /var/lib/apt/lists/* + +# +# Create symlink to help tools find GHC documentation +# + +RUN ln -s ghc /opt/ghc/$GHC_VERSION/share/doc/ghc-$GHC_VERSION + +# +# Install Stack +# + +RUN wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/local/bin '*/stack' + +# +# Configure Stack to use the GHC installed in the Docker image rather than installing its own +# + +RUN mkdir /etc/stack/ && \ + echo "system-ghc: true" >/etc/stack/config.yaml + +# +# Use 'stack' to install basic Haskell tools like alex, happy, and cpphs. We +# remove most of the STACK_ROOT afterward to save space, but keep the 'share' +# files that some of these tools require. +# + +RUN export STACK_ROOT=/usr/local/lib/stack && \ + stack --resolver=$LTS_SLUG --local-bin-path=/usr/local/bin install \ + cabal-install happy alex cpphs gtk2hs-buildtools hscolour hlint hindent && \ + cd $STACK_ROOT && \ + find . -type f -not -path './snapshots/*/share/*' -exec rm '{}' \; && \ + find . -type d -print0 |sort -rz |xargs -0 rmdir 2>/dev/null || true + +# +# Install 'pid1' init daemon +# + +RUN wget -O- "https://github.com/fpco/pid1/releases/download/v$PID1_VERSION/pid1-$PID1_VERSION-linux-x86_64.tar.gz" | tar xzf - -C /usr/local && \ + chown root:root /usr/local/sbin && \ + chown root:root /usr/local/sbin/pid1 + +# +# Set up pid1 entrypoint and default command +# + +ENTRYPOINT ["/usr/local/sbin/pid1"] +CMD ["bash"] diff --git a/automated/dockerfiles/lts-13.0/Dockerfile b/automated/dockerfiles/lts-13.0/Dockerfile new file mode 100644 index 00000000..3fc6836c --- /dev/null +++ b/automated/dockerfiles/lts-13.0/Dockerfile @@ -0,0 +1,69 @@ +FROM ubuntu:16.04 + +MAINTAINER Emanuel Borsboom + +ARG GHC_VERSION=8.6.3 +ARG LTS_SLUG=lts-13.0 +ARG PID1_VERSION=0.1.2.0 +ARG STACK_VERSION=1.9.3 +ARG CUDA_VERSION=10.0 +ARG BOOTSTRAP_COMMIT=26b29f2862462afd47fb916ed0a2c2a6844ebca9 +ARG DEBIAN_FRONTEND=noninteractive + +# +# Set encoding to UTF-8 and PATH to find GHC and cabal/stack-installed binaries. +# + +ENV LANG=C.UTF-8 \ + LC_ALL=C.UTF-8 \ + PATH=/root/.cabal/bin:/root/.local/bin:/usr/local/cuda-$CUDA_VERSION/bin:/opt/ghc/$GHC_VERSION/bin:$PATH \ + CUDA_PATH=/usr/local/cuda-$CUDA_VERSION \ + LD_LIBRARY_PATH=/usr/local/cuda-$CUDA_VERSION/lib64:/usr/local/cuda-$CUDA_VERSION/nvvm/lib64 +# +# Use Stackage's debian-bootstrap.sh script to install system libraries and +# tools required to build any Stackage package. +# + +RUN apt-get update && \ + apt-get install -y wget && \ + wget -qO- https://raw.githubusercontent.com/fpco/stackage/$BOOTSTRAP_COMMIT/debian-bootstrap.sh | bash && \ + rm -rf /var/lib/apt/lists/* + +# +# Create symlink to help tools find GHC documentation +# + +RUN ln -s ghc /opt/ghc/$GHC_VERSION/share/doc/ghc-$GHC_VERSION + +# +# Use 'stack' to install basic Haskell tools like alex, happy, and cpphs. We +# remove most of the STACK_ROOT afterward to save space, but keep the 'share' +# files that some of these tools require. +# + +RUN stack --system-ghc --resolver=$LTS_SLUG --local-bin-path=/usr/local/bin install \ + cabal-install happy alex cpphs gtk2hs-buildtools hscolour && \ + cd $HOME/.stack && \ + find . -type f -not -path './snapshots/*/share/*' -exec rm '{}' \; && \ + find . -type d -print0 |sort -rz |xargs -0 rmdir 2>/dev/null || true + +# +# Install 'pid1' init daemon +# + +RUN wget -O- "https://github.com/fpco/pid1/releases/download/v$PID1_VERSION/pid1-$PID1_VERSION-linux-x86_64.tar.gz" | tar xzf - -C /usr/local && \ + chown root:root /usr/local/sbin && \ + chown root:root /usr/local/sbin/pid1 + +# +# Install Stack +# + +RUN wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/local/bin '*/stack' + +# +# Set up pid1 entrypoint and default command +# + +ENTRYPOINT ["/usr/local/sbin/pid1"] +CMD ["bash"] diff --git a/automated/dockerfiles/lts-13.12/Dockerfile b/automated/dockerfiles/lts-13.12/Dockerfile new file mode 100644 index 00000000..c85a6eba --- /dev/null +++ b/automated/dockerfiles/lts-13.12/Dockerfile @@ -0,0 +1,93 @@ +FROM ubuntu:16.04 + +MAINTAINER Emanuel Borsboom + +ARG GHC_VERSION=8.6.4 +ARG LTS_SLUG=lts-13.11 +ARG PID1_VERSION=0.1.2.0 +ARG STACK_VERSION=1.9.3 +ARG CUDA_VERSION=10.0 +ARG BOOTSTRAP_COMMIT=9f2b7ab95c711794257b059604e80ab9ad3c0c45 +ARG DEBIAN_FRONTEND=noninteractive +ARG VARIANT=build + +# +# Set encoding to UTF-8 and PATH to find GHC and cabal/stack-installed binaries. +# + +ENV LANG=C.UTF-8 \ + LC_ALL=C.UTF-8 \ + PATH=/root/.cabal/bin:/root/.local/bin:/usr/local/cuda-$CUDA_VERSION/bin:/opt/ghc/$GHC_VERSION/bin:$PATH \ + CUDA_PATH=/usr/local/cuda-$CUDA_VERSION \ + LD_LIBRARY_PATH=/usr/local/cuda-$CUDA_VERSION/lib64:/usr/local/cuda-$CUDA_VERSION/nvvm/lib64 + +# +# Use Stackage's debian-bootstrap.sh script to install system libraries and +# tools required to build any Stackage package. +# + +RUN apt-get update && \ + apt-get install -y --no-install-recommends wget netbase ca-certificates && \ + if [ "$VARIANT" = "small" ]; then \ + echo "deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main" >>/etc/apt/sources.list && \ + echo "deb-src http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main" >>/etc/apt/sources.list && \ + apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 063DAB2BDC0B3F9FCEBC378BFF3AEACEF6F88286 && \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + ghc-$GHC_VERSION ghc-$GHC_VERSION-htmldocs \ + g++ gcc libc6-dev libffi-dev libgmp-dev make xz-utils zlib1g-dev git gnupg \ + libtinfo-dev; \ + else \ + wget -qO- https://raw.githubusercontent.com/fpco/stackage/$BOOTSTRAP_COMMIT/debian-bootstrap.sh | sed "s/^GHCVER=8.6.3$/GHCVER=$GHC_VERSION/" | bash && \ + # Add g++ version required for building 'double-conversion' \ + # (see https://github.com/commercialhaskell/stack/issues/4470) \ + apt-get install -y g++-7; \ + fi && \ + rm -rf /var/lib/apt/lists/* + +# +# Create symlink to help tools find GHC documentation +# + +RUN ln -s ghc /opt/ghc/$GHC_VERSION/share/doc/ghc-$GHC_VERSION + +# +# Install Stack +# + +RUN wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/local/bin '*/stack' + +# +# Configure Stack to use the GHC installed in the Docker image rather than installing its own +# + +RUN mkdir /etc/stack/ && \ + echo "system-ghc: true" >/etc/stack/config.yaml + +# +# Use 'stack' to install basic Haskell tools like alex, happy, and cpphs. We +# remove most of the STACK_ROOT afterward to save space, but keep the 'share' +# files that some of these tools require. +# + +RUN export STACK_ROOT=/usr/local/lib/stack && \ + stack --resolver=$LTS_SLUG --local-bin-path=/usr/local/bin install \ + cabal-install happy alex cpphs gtk2hs-buildtools hscolour hlint hindent && \ + cd $STACK_ROOT && \ + find . -type f -not -path './snapshots/*/share/*' -exec rm '{}' \; && \ + find . -type d -print0 |sort -rz |xargs -0 rmdir 2>/dev/null || true + +# +# Install 'pid1' init daemon +# + +RUN wget -O- "https://github.com/fpco/pid1/releases/download/v$PID1_VERSION/pid1-$PID1_VERSION-linux-x86_64.tar.gz" | tar xzf - -C /usr/local && \ + chown root:root /usr/local/sbin && \ + chown root:root /usr/local/sbin/pid1 + +# +# Set up pid1 entrypoint and default command +# + +ENTRYPOINT ["/usr/local/sbin/pid1"] +CMD ["bash"] diff --git a/automated/dockerfiles/lts-13.20/Dockerfile b/automated/dockerfiles/lts-13.20/Dockerfile new file mode 100644 index 00000000..0ac78fcb --- /dev/null +++ b/automated/dockerfiles/lts-13.20/Dockerfile @@ -0,0 +1,93 @@ +FROM ubuntu:16.04 + +MAINTAINER Emanuel Borsboom + +ARG GHC_VERSION=8.6.5 +ARG LTS_SLUG=lts-13.20 +ARG PID1_VERSION=0.1.2.0 +ARG STACK_VERSION=1.9.3 +ARG CUDA_VERSION=10.0 +ARG BOOTSTRAP_COMMIT=9f2b7ab95c711794257b059604e80ab9ad3c0c45 +ARG DEBIAN_FRONTEND=noninteractive +ARG VARIANT=build + +# +# Set encoding to UTF-8 and PATH to find GHC and cabal/stack-installed binaries. +# + +ENV LANG=C.UTF-8 \ + LC_ALL=C.UTF-8 \ + PATH=/root/.cabal/bin:/root/.local/bin:/usr/local/cuda-$CUDA_VERSION/bin:/opt/ghc/$GHC_VERSION/bin:$PATH \ + CUDA_PATH=/usr/local/cuda-$CUDA_VERSION \ + LD_LIBRARY_PATH=/usr/local/cuda-$CUDA_VERSION/lib64:/usr/local/cuda-$CUDA_VERSION/nvvm/lib64 + +# +# Use Stackage's debian-bootstrap.sh script to install system libraries and +# tools required to build any Stackage package. +# + +RUN apt-get update && \ + apt-get install -y --no-install-recommends wget netbase ca-certificates && \ + if [ "$VARIANT" = "small" ]; then \ + echo "deb http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main" >>/etc/apt/sources.list && \ + echo "deb-src http://ppa.launchpad.net/hvr/ghc/ubuntu xenial main" >>/etc/apt/sources.list && \ + apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 063DAB2BDC0B3F9FCEBC378BFF3AEACEF6F88286 && \ + apt-get update && \ + apt-get install -y --no-install-recommends \ + ghc-$GHC_VERSION ghc-$GHC_VERSION-htmldocs \ + g++ gcc libc6-dev libffi-dev libgmp-dev make xz-utils zlib1g-dev git gnupg \ + libtinfo-dev; \ + else \ + wget -qO- https://raw.githubusercontent.com/fpco/stackage/$BOOTSTRAP_COMMIT/debian-bootstrap.sh | sed "s/^GHCVER=8.6.3$/GHCVER=$GHC_VERSION/" | bash && \ + # Add g++ version required for building 'double-conversion' \ + # (see https://github.com/commercialhaskell/stack/issues/4470) \ + apt-get install -y g++-7; \ + fi && \ + rm -rf /var/lib/apt/lists/* + +# +# Create symlink to help tools find GHC documentation +# + +RUN ln -s ghc /opt/ghc/$GHC_VERSION/share/doc/ghc-$GHC_VERSION + +# +# Install Stack +# + +RUN wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/local/bin '*/stack' + +# +# Configure Stack to use the GHC installed in the Docker image rather than installing its own +# + +RUN mkdir /etc/stack/ && \ + echo "system-ghc: true" >/etc/stack/config.yaml + +# +# Use 'stack' to install basic Haskell tools like alex, happy, and cpphs. We +# remove most of the STACK_ROOT afterward to save space, but keep the 'share' +# files that some of these tools require. +# + +RUN export STACK_ROOT=/usr/local/lib/stack && \ + stack --resolver=$LTS_SLUG --local-bin-path=/usr/local/bin install \ + cabal-install happy alex cpphs gtk2hs-buildtools hscolour hlint hindent && \ + cd $STACK_ROOT && \ + find . -type f -not -path './snapshots/*/share/*' -exec rm '{}' \; && \ + find . -type d -print0 |sort -rz |xargs -0 rmdir 2>/dev/null || true + +# +# Install 'pid1' init daemon +# + +RUN wget -O- "https://github.com/fpco/pid1/releases/download/v$PID1_VERSION/pid1-$PID1_VERSION-linux-x86_64.tar.gz" | tar xzf - -C /usr/local && \ + chown root:root /usr/local/sbin && \ + chown root:root /usr/local/sbin/pid1 + +# +# Set up pid1 entrypoint and default command +# + +ENTRYPOINT ["/usr/local/sbin/pid1"] +CMD ["bash"] diff --git a/automated/dockerfiles/lts-13.25/Dockerfile b/automated/dockerfiles/lts-13.25/Dockerfile new file mode 100644 index 00000000..94e2439c --- /dev/null +++ b/automated/dockerfiles/lts-13.25/Dockerfile @@ -0,0 +1,3 @@ +FROM $DOCKER_REPO:lts-13.24 +ARG STACK_VERSION=2.1.1 +RUN wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/local/bin '*/stack' diff --git a/automated/dockerfiles/lts-13.27/Dockerfile b/automated/dockerfiles/lts-13.27/Dockerfile new file mode 100644 index 00000000..a8d1204e --- /dev/null +++ b/automated/dockerfiles/lts-13.27/Dockerfile @@ -0,0 +1,9 @@ +FROM $DOCKER_REPO:lts-13.26 +ARG VARIANT +RUN if [ "$VARIANT" = "small" ]; then \ + apt-get update && \ + apt-get install -y --no-install-recommends sudo && \ + rm -rf /var/lib/apt/lists/*; \ + fi +ARG STACK_VERSION=2.1.3 +RUN wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64-static.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/local/bin '*/stack' diff --git a/automated/dockerfiles/lts-13.3/Dockerfile b/automated/dockerfiles/lts-13.3/Dockerfile new file mode 100644 index 00000000..78e92de7 --- /dev/null +++ b/automated/dockerfiles/lts-13.3/Dockerfile @@ -0,0 +1,10 @@ +FROM fpco/stack-build:lts-13.0 + +# +# Add g++ version required for building 'double-conversion' +# (see https://github.com/commercialhaskell/stack/issues/4470) +# + +RUN apt-get update && \ + apt-get install -y g++-7 && \ + rm -rf /var/lib/apt/lists/* diff --git a/automated/dockerfiles/lts-14.0/Dockerfile b/automated/dockerfiles/lts-14.0/Dockerfile new file mode 100644 index 00000000..9905a75d --- /dev/null +++ b/automated/dockerfiles/lts-14.0/Dockerfile @@ -0,0 +1,89 @@ +FROM ubuntu:18.04 + +LABEL maintainer="manny@fpcomplete.com" + +ARG GHC_VERSION=8.6.5 +ARG LTS_SLUG=lts-14.0 +ARG PID1_VERSION=0.1.2.0 +ARG STACK_VERSION=2.1.3 +ARG CUDA_VERSION=10.0 +ARG JVM_PATH=/usr/lib/jvm/java-8-openjdk-amd64 +ARG LLVM_VERSION=3.9 +ARG BOOTSTRAP_COMMIT=d4143f1845f26e8e99d0a1a8134d6ff535ab98b2 +ARG DEBIAN_FRONTEND=noninteractive +ARG VARIANT=build +ARG STACK_ROOT=/home/stackage/.stack + +# +# Set encoding to UTF-8 and PATH to find GHC and cabal/stack-installed binaries. +# + +ENV LANG=C.UTF-8 \ + LC_ALL=C.UTF-8 \ + PATH=/root/.local/bin:/usr/local/cuda-$CUDA_VERSION/bin:$STACK_ROOT/programs/x86_64-linux/ghc-$GHC_VERSION/bin:$PATH \ + CUDA_PATH=/usr/local/cuda-$CUDA_VERSION \ + CPATH=$JVM_PATH/include:$JVM_PATH/include/linux:/usr/lib/llvm-$LLVM_VERSION/include + +# +# Install pre-requisites +# + +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + wget netbase ca-certificates g++ gcc libc6-dev libffi-dev libgmp-dev \ + make xz-utils zlib1g-dev git gnupg libtinfo-dev && \ + rm -rf /var/lib/apt/lists/* + +# +# Use Stackage's debian-bootstrap.sh script to install system libraries and +# tools required to build any Stackage package. +# Re-installs 'stack' *after* running debian-bootstrap.sh since that may have +# installed a different version. +# In the case of 'small' image, just install Stack and GHC. +# + +RUN if [ "$VARIANT" != "small" ]; then \ + wget -qO- https://raw.githubusercontent.com/fpco/stackage/$BOOTSTRAP_COMMIT/debian-bootstrap.sh | sed "s/^GHCVER=8.6.5$/GHCVER=$GHC_VERSION/" | GHCVER=$GHC_VERSION bash; \ + fi && \ + wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/bin '*/stack' && \ + if [ "$VARIANT" = "small" ]; then \ + stack setup --resolver ghc-$GHC_VERSION; \ + fi && \ + rm -rf /var/lib/apt/lists/* && \ + cd $STACK_ROOT && \ + find . -type f -not -path "./programs/x86_64-linux/ghc-$GHC_VERSION/*" -exec rm '{}' \; && \ + find . -type d -print0 |sort -rz |xargs -0 rmdir 2>/dev/null || true + +# +# Configure Stack to use the GHC installed in the Docker image rather than installing its own +# + +RUN mkdir /etc/stack/ && \ + echo "system-ghc: true" >/etc/stack/config.yaml + +# +# Use 'stack' to install basic Haskell tools like alex, happy, and cpphs. We +# remove most of the STACK_ROOT afterward to save space, but keep the 'share' +# files that some of these tools require. +# + +RUN stack --resolver=$LTS_SLUG --local-bin-path=/usr/bin install \ + happy alex cpphs gtk2hs-buildtools hscolour hlint hindent && \ + cd $STACK_ROOT && \ + find . -type f -not -path './snapshots/*/share/*' -and -not -path "./programs/x86_64-linux/ghc-$GHC_VERSION/*" -exec rm '{}' \; && \ + find . -type d -print0 |sort -rz |xargs -0 rmdir 2>/dev/null || true + +# +# Install 'pid1' init daemon +# + +RUN wget -O- "https://github.com/fpco/pid1/releases/download/v$PID1_VERSION/pid1-$PID1_VERSION-linux-x86_64.tar.gz" | tar xzf - -C /usr/local && \ + chown root:root /usr/local/sbin && \ + chown root:root /usr/local/sbin/pid1 + +# +# Set up pid1 entrypoint and default command +# + +ENTRYPOINT ["/usr/local/sbin/pid1"] +CMD ["bash"] diff --git a/automated/dockerfiles/lts-14.0/Dockerfile.sub b/automated/dockerfiles/lts-14.0/Dockerfile.sub new file mode 100644 index 00000000..9905a75d --- /dev/null +++ b/automated/dockerfiles/lts-14.0/Dockerfile.sub @@ -0,0 +1,89 @@ +FROM ubuntu:18.04 + +LABEL maintainer="manny@fpcomplete.com" + +ARG GHC_VERSION=8.6.5 +ARG LTS_SLUG=lts-14.0 +ARG PID1_VERSION=0.1.2.0 +ARG STACK_VERSION=2.1.3 +ARG CUDA_VERSION=10.0 +ARG JVM_PATH=/usr/lib/jvm/java-8-openjdk-amd64 +ARG LLVM_VERSION=3.9 +ARG BOOTSTRAP_COMMIT=d4143f1845f26e8e99d0a1a8134d6ff535ab98b2 +ARG DEBIAN_FRONTEND=noninteractive +ARG VARIANT=build +ARG STACK_ROOT=/home/stackage/.stack + +# +# Set encoding to UTF-8 and PATH to find GHC and cabal/stack-installed binaries. +# + +ENV LANG=C.UTF-8 \ + LC_ALL=C.UTF-8 \ + PATH=/root/.local/bin:/usr/local/cuda-$CUDA_VERSION/bin:$STACK_ROOT/programs/x86_64-linux/ghc-$GHC_VERSION/bin:$PATH \ + CUDA_PATH=/usr/local/cuda-$CUDA_VERSION \ + CPATH=$JVM_PATH/include:$JVM_PATH/include/linux:/usr/lib/llvm-$LLVM_VERSION/include + +# +# Install pre-requisites +# + +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + wget netbase ca-certificates g++ gcc libc6-dev libffi-dev libgmp-dev \ + make xz-utils zlib1g-dev git gnupg libtinfo-dev && \ + rm -rf /var/lib/apt/lists/* + +# +# Use Stackage's debian-bootstrap.sh script to install system libraries and +# tools required to build any Stackage package. +# Re-installs 'stack' *after* running debian-bootstrap.sh since that may have +# installed a different version. +# In the case of 'small' image, just install Stack and GHC. +# + +RUN if [ "$VARIANT" != "small" ]; then \ + wget -qO- https://raw.githubusercontent.com/fpco/stackage/$BOOTSTRAP_COMMIT/debian-bootstrap.sh | sed "s/^GHCVER=8.6.5$/GHCVER=$GHC_VERSION/" | GHCVER=$GHC_VERSION bash; \ + fi && \ + wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/bin '*/stack' && \ + if [ "$VARIANT" = "small" ]; then \ + stack setup --resolver ghc-$GHC_VERSION; \ + fi && \ + rm -rf /var/lib/apt/lists/* && \ + cd $STACK_ROOT && \ + find . -type f -not -path "./programs/x86_64-linux/ghc-$GHC_VERSION/*" -exec rm '{}' \; && \ + find . -type d -print0 |sort -rz |xargs -0 rmdir 2>/dev/null || true + +# +# Configure Stack to use the GHC installed in the Docker image rather than installing its own +# + +RUN mkdir /etc/stack/ && \ + echo "system-ghc: true" >/etc/stack/config.yaml + +# +# Use 'stack' to install basic Haskell tools like alex, happy, and cpphs. We +# remove most of the STACK_ROOT afterward to save space, but keep the 'share' +# files that some of these tools require. +# + +RUN stack --resolver=$LTS_SLUG --local-bin-path=/usr/bin install \ + happy alex cpphs gtk2hs-buildtools hscolour hlint hindent && \ + cd $STACK_ROOT && \ + find . -type f -not -path './snapshots/*/share/*' -and -not -path "./programs/x86_64-linux/ghc-$GHC_VERSION/*" -exec rm '{}' \; && \ + find . -type d -print0 |sort -rz |xargs -0 rmdir 2>/dev/null || true + +# +# Install 'pid1' init daemon +# + +RUN wget -O- "https://github.com/fpco/pid1/releases/download/v$PID1_VERSION/pid1-$PID1_VERSION-linux-x86_64.tar.gz" | tar xzf - -C /usr/local && \ + chown root:root /usr/local/sbin && \ + chown root:root /usr/local/sbin/pid1 + +# +# Set up pid1 entrypoint and default command +# + +ENTRYPOINT ["/usr/local/sbin/pid1"] +CMD ["bash"] diff --git a/automated/dockerfiles/lts-15.0/Dockerfile b/automated/dockerfiles/lts-15.0/Dockerfile new file mode 100644 index 00000000..848c5d0e --- /dev/null +++ b/automated/dockerfiles/lts-15.0/Dockerfile @@ -0,0 +1,89 @@ +FROM ubuntu:18.04 + +LABEL maintainer="manny@fpcomplete.com" + +ARG GHC_VERSION=8.8.2 +ARG LTS_SLUG=lts-15.0 +ARG PID1_VERSION=0.1.2.0 +ARG STACK_VERSION=2.1.3 +ARG CUDA_VERSION=10.0 +ARG JVM_PATH=/usr/lib/jvm/java-8-openjdk-amd64 +ARG LLVM_PATH=/usr/lib/llvm-7 +ARG BOOTSTRAP_COMMIT=77790c7bcb21fd8875871245df5c5c39a55ec0c1 +ARG DEBIAN_FRONTEND=noninteractive +ARG VARIANT=build +ARG STACK_ROOT=/home/stackage/.stack + +# +# Set encoding to UTF-8 and PATH to find GHC and cabal/stack-installed binaries. +# + +ENV LANG=C.UTF-8 \ + LC_ALL=C.UTF-8 \ + PATH=/root/.local/bin:/usr/local/cuda-$CUDA_VERSION/bin:$STACK_ROOT/programs/x86_64-linux/ghc-$GHC_VERSION/bin:$PATH \ + CUDA_PATH=/usr/local/cuda-$CUDA_VERSION \ + CPATH=$JVM_PATH/include:$JVM_PATH/include/linux:$LLVM_PATH/include + +# +# Install pre-requisites +# + +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + wget netbase ca-certificates g++ gcc libc6-dev libffi-dev libgmp-dev \ + make xz-utils zlib1g-dev git gnupg libtinfo-dev && \ + rm -rf /var/lib/apt/lists/* + +# +# Use Stackage's debian-bootstrap.sh script to install system libraries and +# tools required to build any Stackage package. +# Re-installs 'stack' *after* running debian-bootstrap.sh since that may have +# installed a different version. +# In the case of 'small' image, just install Stack and GHC. +# + +RUN if [ "$VARIANT" != "small" ]; then \ + wget -qO- https://raw.githubusercontent.com/fpco/stackage/$BOOTSTRAP_COMMIT/debian-bootstrap.sh | sed "s/^GHCVER=8.6.5$/GHCVER=$GHC_VERSION/" | GHCVER=$GHC_VERSION bash; \ + fi && \ + wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/bin '*/stack' && \ + if [ "$VARIANT" = "small" ]; then \ + stack setup --resolver ghc-$GHC_VERSION; \ + fi && \ + rm -rf /var/lib/apt/lists/* && \ + cd $STACK_ROOT && \ + find . -type f -not -path "./programs/x86_64-linux/ghc-$GHC_VERSION/*" -exec rm '{}' \; && \ + find . -type d -print0 |sort -rz |xargs -0 rmdir 2>/dev/null || true + +# +# Configure Stack to use the GHC installed in the Docker image rather than installing its own +# + +RUN mkdir /etc/stack/ && \ + echo "system-ghc: true" >/etc/stack/config.yaml + +# +# Use 'stack' to install basic Haskell tools like alex, happy, and cpphs. We +# remove most of the STACK_ROOT afterward to save space, but keep the 'share' +# files that some of these tools require. +# + +RUN stack --resolver=$LTS_SLUG --local-bin-path=/usr/bin install \ + happy alex cpphs gtk2hs-buildtools hscolour hlint hindent && \ + cd $STACK_ROOT && \ + find . -type f -not -path './snapshots/*/share/*' -and -not -path "./programs/x86_64-linux/ghc-$GHC_VERSION/*" -exec rm '{}' \; && \ + find . -type d -print0 |sort -rz |xargs -0 rmdir 2>/dev/null || true + +# +# Install 'pid1' init daemon +# + +RUN wget -O- "https://github.com/fpco/pid1/releases/download/v$PID1_VERSION/pid1-$PID1_VERSION-linux-x86_64.tar.gz" | tar xzf - -C /usr/local && \ + chown root:root /usr/local/sbin && \ + chown root:root /usr/local/sbin/pid1 + +# +# Set up pid1 entrypoint and default command +# + +ENTRYPOINT ["/usr/local/sbin/pid1"] +CMD ["bash"] diff --git a/automated/dockerfiles/lts-15.10/Dockerfile b/automated/dockerfiles/lts-15.10/Dockerfile new file mode 100644 index 00000000..a505626f --- /dev/null +++ b/automated/dockerfiles/lts-15.10/Dockerfile @@ -0,0 +1,3 @@ +FROM $DOCKER_REPO:lts-15.5 +ARG STACK_VERSION=2.3.1 +RUN wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/local/bin '*/stack' \ No newline at end of file diff --git a/automated/dockerfiles/lts-15.5/Dockerfile b/automated/dockerfiles/lts-15.5/Dockerfile new file mode 100644 index 00000000..9f0a5dce --- /dev/null +++ b/automated/dockerfiles/lts-15.5/Dockerfile @@ -0,0 +1,89 @@ +FROM ubuntu:18.04 + +LABEL maintainer="manny@fpcomplete.com" + +ARG GHC_VERSION=8.8.3 +ARG LTS_SLUG=lts-15.0 +ARG PID1_VERSION=0.1.2.0 +ARG STACK_VERSION=2.1.3 +ARG CUDA_VERSION=10.0 +ARG JVM_PATH=/usr/lib/jvm/java-8-openjdk-amd64 +ARG LLVM_PATH=/usr/lib/llvm-7 +ARG BOOTSTRAP_COMMIT=77790c7bcb21fd8875871245df5c5c39a55ec0c1 +ARG DEBIAN_FRONTEND=noninteractive +ARG VARIANT=build +ARG STACK_ROOT=/home/stackage/.stack + +# +# Set encoding to UTF-8 and PATH to find GHC and cabal/stack-installed binaries. +# + +ENV LANG=C.UTF-8 \ + LC_ALL=C.UTF-8 \ + PATH=/root/.local/bin:/usr/local/cuda-$CUDA_VERSION/bin:$STACK_ROOT/programs/x86_64-linux/ghc-$GHC_VERSION/bin:$PATH \ + CUDA_PATH=/usr/local/cuda-$CUDA_VERSION \ + CPATH=$JVM_PATH/include:$JVM_PATH/include/linux:$LLVM_PATH/include + +# +# Install pre-requisites +# + +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + wget netbase ca-certificates g++ gcc libc6-dev libffi-dev libgmp-dev \ + make xz-utils zlib1g-dev git gnupg libtinfo-dev jq && \ + rm -rf /var/lib/apt/lists/* + +# +# Use Stackage's debian-bootstrap.sh script to install system libraries and +# tools required to build any Stackage package. +# Re-installs 'stack' *after* running debian-bootstrap.sh since that may have +# installed a different version. +# In the case of 'small' image, just install Stack and GHC. +# + +RUN if [ "$VARIANT" != "small" ]; then \ + wget -qO- https://raw.githubusercontent.com/fpco/stackage/$BOOTSTRAP_COMMIT/debian-bootstrap.sh | sed "s/^GHCVER=8.6.5$/GHCVER=$GHC_VERSION/" | GHCVER=$GHC_VERSION bash; \ + fi && \ + wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/bin '*/stack' && \ + if [ "$VARIANT" = "small" ]; then \ + stack setup --resolver ghc-$GHC_VERSION; \ + fi && \ + rm -rf /var/lib/apt/lists/* && \ + cd $STACK_ROOT && \ + find . -type f -not -path "./programs/x86_64-linux/ghc-$GHC_VERSION/*" -exec rm '{}' \; && \ + find . -type d -print0 |sort -rz |xargs -0 rmdir 2>/dev/null || true + +# +# Configure Stack to use the GHC installed in the Docker image rather than installing its own +# + +RUN mkdir /etc/stack/ && \ + echo "system-ghc: true" >/etc/stack/config.yaml + +# +# Use 'stack' to install basic Haskell tools like alex, happy, and cpphs. We +# remove most of the STACK_ROOT afterward to save space, but keep the 'share' +# files that some of these tools require. +# + +RUN stack --resolver=$LTS_SLUG --local-bin-path=/usr/bin install \ + happy alex cpphs gtk2hs-buildtools hscolour hlint hindent && \ + cd $STACK_ROOT && \ + find . -type f -not -path './snapshots/*/share/*' -and -not -path "./programs/x86_64-linux/ghc-$GHC_VERSION/*" -exec rm '{}' \; && \ + find . -type d -print0 |sort -rz |xargs -0 rmdir 2>/dev/null || true + +# +# Install 'pid1' init daemon +# + +RUN wget -O- "https://github.com/fpco/pid1/releases/download/v$PID1_VERSION/pid1-$PID1_VERSION-linux-x86_64.tar.gz" | tar xzf - -C /usr/local && \ + chown root:root /usr/local/sbin && \ + chown root:root /usr/local/sbin/pid1 + +# +# Set up pid1 entrypoint and default command +# + +ENTRYPOINT ["/usr/local/sbin/pid1"] +CMD ["bash"] diff --git a/automated/dockerfiles/lts-9.0/Dockerfile b/automated/dockerfiles/lts-9.0/Dockerfile new file mode 100644 index 00000000..d5a479ae --- /dev/null +++ b/automated/dockerfiles/lts-9.0/Dockerfile @@ -0,0 +1,55 @@ +FROM ubuntu:16.04 + +MAINTAINER Emanuel Borsboom + +ARG GHC_VERSION=8.0.2 +ARG LTS_SLUG=lts-9.0 +ARG PID1_VERSION=0.1.0.1 +ARG BOOTSTRAP_COMMIT=1bc67bb54eda08c90d8421bc11d257354a379d11 +ARG DEBIAN_FRONTEND=noninteractive + +# +# Set encoding to UTF-8 and PATH to find GHC and cabal/stack-installed binaries. +# + +ENV LANG=C.UTF-8 \ + LC_ALL=C.UTF-8 \ + PATH=/root/.cabal/bin:/root/.local/bin:/opt/ghc/$GHC_VERSION/bin:$PATH + +# +# Use Stackage's debian-bootstrap.sh script to install system libraries and +# tools required to build any Stackage package. +# + +RUN apt-get update && \ + apt-get install -y wget && \ + wget -qO- https://raw.githubusercontent.com/fpco/stackage/$BOOTSTRAP_COMMIT/debian-bootstrap.sh | bash && \ + ln -s ghc /opt/ghc/$GHC_VERSION/share/doc/ghc-$GHC_VERSION && \ + rm -rf /var/lib/apt/lists/* + +# +# Use 'stack' to install basic Haskell tools like alex, happy, and cpphs. We +# remove most of the STACK_ROOT afterward to save space, but keep the 'share' +# files that some of these tools require. +# + +RUN stack --system-ghc --resolver=$LTS_SLUG --local-bin-path=/usr/local/bin install \ + cabal-install happy alex cpphs gtk2hs-buildtools hscolour && \ + cd $HOME/.stack && \ + find . -type f -not -path './snapshots/*/share/*' -exec rm '{}' \; && \ + find . -type d -print0 |sort -rz |xargs -0 rmdir 2>/dev/null || true + +# +# Install proper 'pid1' init daemon +# + +RUN wget -O- "https://github.com/fpco/pid1/releases/download/pid1%2F$PID1_VERSION/pid1-$PID1_VERSION-linux-x86_64.tar.gz" | tar xzf - -C /usr/local && \ + chown root:root /usr/local/sbin && \ + chown root:root /usr/local/sbin/pid1 + +# +# Set up pid1 entrypoint and default command +# + +ENTRYPOINT ["/usr/local/sbin/pid1"] +CMD ["bash"] diff --git a/automated/dockerfiles/lts-9.20/Dockerfile b/automated/dockerfiles/lts-9.20/Dockerfile new file mode 100644 index 00000000..b524e980 --- /dev/null +++ b/automated/dockerfiles/lts-9.20/Dockerfile @@ -0,0 +1,3 @@ +FROM fpco/stack-build:lts-9.0 +ARG STACK_VERSION=1.6.1 +RUN wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/local/bin '*/stack' diff --git a/automated/dockerfiles/lts-9.21/Dockerfile b/automated/dockerfiles/lts-9.21/Dockerfile new file mode 100644 index 00000000..4a875c91 --- /dev/null +++ b/automated/dockerfiles/lts-9.21/Dockerfile @@ -0,0 +1,3 @@ +FROM fpco/stack-build:lts-9.0 +ARG STACK_VERSION=1.6.5 +RUN wget -qO- https://github.com/commercialhaskell/stack/releases/download/v$STACK_VERSION/stack-$STACK_VERSION-linux-x86_64.tar.gz | tar xz --wildcards --strip-components=1 -C /usr/local/bin '*/stack' diff --git a/automated/new-stackage-format/convert.sh b/automated/new-stackage-format/convert.sh deleted file mode 100755 index 092b293a..00000000 --- a/automated/new-stackage-format/convert.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/usr/bin/env bash - -set -eux - -if [[ ! -f convert ]] -then - curl https://s3.amazonaws.com/www.snoyman.com/convert-old-stackage-c9c4d06b31cb7aafedd23aa316b8008c45e4d4dd.bz2 > convert.bz2 - chmod +x convert.bz2 - bunzip2 convert.bz2 -fi - -cd $(dirname ${BASH_SOURCE[0]}) - -for d in lts-haskell stackage-nightly stackage-snapshots -do - if [[ ! -d "$d" ]] - then - git clone https://github.com/commercialhaskell/$d - else - (cd "$d" && git pull || echo "Git pull failed, ignoring") - fi -done - -( -export HOME=$(pwd) -./convert -) - -cd stackage-snapshots -git add lts nightly -git diff-index --quiet HEAD && echo No changes && exit 0 -git config user.name "Stackage build server" -git config user.email "michael@snoyman.com" -git commit -m "More conversions $(date)" -GIT_SSH_COMMAND='ssh -i ../../ssh-lts/id_rsa' git push git@github.com:commercialhaskell/stackage-snapshots master diff --git a/automated/nix-build/README.md b/automated/nix-build/README.md deleted file mode 100644 index 56901b26..00000000 --- a/automated/nix-build/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# Building Stackage with Nix - -The script `build.sh` is supposed to be run in a directory where `curator unpack` -was run - it assumes existence of `unpack-dir` directory with a Stackage -snapshot `stack.yaml` and unpacked packages in it. diff --git a/automated/nix-build/build.sh b/automated/nix-build/build.sh deleted file mode 100644 index 62918fe5..00000000 --- a/automated/nix-build/build.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/usr/bin/env bash - -set -eu +x - -NIX_VERSION="2.0.4" -curl https://nixos.org/releases/nix/nix-$NIX_VERSION/install | sh - -# no code to install stack2nix yet - -stack2nix --cabal2nix-args="--no-hpack" unpack-dir > snapshot.nix - -nix build -f snapshot-fixed.nix diff --git a/automated/nix-build/fetch-nixpkgs.nix b/automated/nix-build/fetch-nixpkgs.nix deleted file mode 100644 index 29cac91f..00000000 --- a/automated/nix-build/fetch-nixpkgs.nix +++ /dev/null @@ -1,23 +0,0 @@ -let - spec = builtins.fromJSON (builtins.readFile ./nixpkgs-src.json); - src = import { - url = "https://github.com/${spec.owner}/${spec.repo}/archive/${spec.rev}.tar.gz"; - inherit (spec) sha256; - }; - nixcfg = import ; -in builtins.derivation { - system = builtins.currentSystem; - name = "${src.name}-unpacked"; - builder = builtins.storePath nixcfg.shell; - inherit src; - args = [ - (builtins.toFile "builder" '' - $coreutils/mkdir $out - cd $out - $gzip -d < $src | $tar -x --strip-components=1 - '') - ]; - coreutils = builtins.storePath nixcfg.coreutils; - tar = builtins.storePath nixcfg.tar; - gzip = builtins.storePath nixcfg.gzip; -} diff --git a/automated/nix-build/nixpkgs-src.json b/automated/nix-build/nixpkgs-src.json deleted file mode 100644 index 00ed9d5d..00000000 --- a/automated/nix-build/nixpkgs-src.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "c2950341d038995bf46a7b72db961bb3d3e9ac12", - "sha256": "0ghirjm6xvsihci3fladrn4nrnh2yr529v7c406hmw0yp25kv0i4" -} diff --git a/automated/nix-build/snapshot-fixed.nix b/automated/nix-build/snapshot-fixed.nix deleted file mode 100644 index bac92a89..00000000 --- a/automated/nix-build/snapshot-fixed.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ pkgs ? import (import ./fetch-nixpkgs.nix) {} -, compiler ? pkgs.haskell.packages.ghc863 -}: -let - snapshot = import ./snapshot.nix { pkgs = pkgs; compiler = compiler; }; -in - snapshot.override (with pkgs.haskell.lib; { - overrides = self: super: { - # disabling packages from non-hackage-packages.nix - futhark = null; - multi-ghc-travis = null; - vaultenv = null; - # native deps - check-email = super.check-email.override { resolv = null; }; - flac = super.flac.override { FLAC = pkgs.flac; }; - freenect = super.freenect.override { freenect_sync = null; libfreenect = null; }; - haskell-gi = super.haskell-gi.override { gobject-introspection = pkgs.gnome3.gobjectIntrospection; }; - HDBC-mysql = super.HDBC-mysql.override { mysqlclient = pkgs.mysql;}; - libffi = super.libffi.override { ffi = null; }; - # fixes - blas-ffi = overrideCabal super.blas-ffi ( - old: { libraryPkgconfigDepends = old.libraryPkgconfigDepends ++ [ pkgs.openblasCompat ]; } - ); - odbc = overrideCabal super.odbc ( - old: { librarySystemDepends = old.librarySystemDepends ++ [ pkgs.freetds ]; } - ); - html-entities = null; # https://github.com/nikita-volkov/html-entities/issues/8 - category = null; # conflict in Prelude.hs - constraint = null; # because of category - lame = null; # fails with 'Total ticks: 451489' - proto-lens-protobuf-types = overrideCabal super.proto-lens-protobuf-types ( - old: { libraryToolDepends = old.libraryToolDepends ++ [ pkgs.protobuf ]; } - ); - # libraft = null; # xxx/postgres/entries.sql: openFile: does not exist (No such file or directory) in libraft-0.2.0.0 - xmlbf-xeno = null; # because of html-entities - xmonad = null; # xmonad requires extra patches for Nix - xmonad-contrib = null; - xmonad-extras = null; - hlibgit2 = disableHardening super.hlibgit2 [ "format" ]; - }; - }) diff --git a/automated/run-nightly.sh b/automated/run-nightly.sh index 7b7ca37a..9f21bd98 100755 --- a/automated/run-nightly.sh +++ b/automated/run-nightly.sh @@ -3,12 +3,9 @@ cd "$(dirname "${BASH_SOURCE[0]}")" while true; do - ./build-next.sh nightly-$(date -u +%F) + ./build.sh nightly-$(date -u +%F) date - #./new-stackage-format/convert.sh > /dev/null 2> /dev/null - #date - sleep 30m echo done diff --git a/build-constraints.yaml b/build-constraints.yaml index 6e0ad678..1b89e5a5 100644 --- a/build-constraints.yaml +++ b/build-constraints.yaml @@ -1,6 +1,6 @@ ghc-major-version: "8.8" # new curator is supposed to use exact GHC version -ghc-version: "8.8.2" +ghc-version: "8.8.3" # This affects which version of the Cabal file format we allow. We # should ensure that this is always no greater than the version @@ -9,6 +9,21 @@ cabal-format-version: "2.4" # Constraints for brand new builds packages: + "Marcin Rzeźnicki @marcin-rzeznicki": + - hspec-tables + + "Mauricio Fierro @mauriciofierrom": + - dialogflow-fulfillment + + "Mihai Giurgeanu @mihaigiurgeanu": + - sqlcli + - sqlcli-odbc + # not a maintainer + - logging + + "Sasha Bogicevic @v0d1ch": + - plaid + "Geoffrey Mainland @mainland": - exception-mtl - exception-transformers @@ -27,7 +42,7 @@ packages: - generic-monoid "Tobias Reinhart @TobiReinhart": - - sparse-tensor < 0 # https://github.com/commercialhaskell/stackage/issues/5125 + - sparse-tensor "Stephan Schiffels @stschiff": - sequence-formats @@ -42,34 +57,30 @@ packages: - lens-regex-pcre < 0 # via pcre-heavy "Emily Pillmore @topos": + - base16 + - base16-lens + - base32 + - base32-lens - base64 - base64-lens - lens-process < 0 # via lens-4.18.1 - microlens-process - nonempty-vector + - smash + - smash-aeson + - smash-microlens + - smash-lens "Matthieu Monsch @mtth": - flags-applicative - more-containers - tracing - # transitive dependencies for tracing - - ip - - byteslice - - bytesmith - - contiguous - - natural-arithmetic - - primitive-offset - - primitive-unlifted - - run-st - - small-bytearray-builder "Robert Vollmert @robx": - - configurator-pg < 0 # via base-4.13.0.0 + - configurator-pg + - postgrest "Sandy Maguire @isovector": - - polysemy - - polysemy-plugin < 0 # via polysemy - - polysemy-zoo < 0 # via hedis - ecstasy - interpolatedstring-qq2 < 0 # via template-haskell-2.15.0.0 - prospect @@ -77,17 +88,21 @@ packages: - unagi-chan - type-errors - "Matej Niznik @TheMatten": + "Matej Niznik @TheMatten": + - polysemy + - polysemy-plugin < 0 # via polysemy + - polysemy-zoo < 0 # via hedis - loopbreaker "William Yao @williamyaoh": - - string-interpolate < 0 # via interpolatedstring-perl6 + - string-interpolate "Roel van Dijk @roelvandijk": - terminal-progress-bar "Marek Fajkus @turboMaCk": - wai-enforce-https + - aeson-combinators "Fernando Freire @dogonthehorizon": [] @@ -120,12 +135,17 @@ packages: "Preetham Gujjula @pgujjula": - modular + - list-predicate "Guillaume Bouchard @guibou": + - krank + - pretty-terminal - PyF "Erik Schnetter @eschnett": - - mpi-hs < 0 # via store + - mpi-hs + - mpi-hs-binary + - mpi-hs-cereal "Yang Bo @Atry": - control-dsl < 0 # via doctest-discover @@ -151,7 +171,7 @@ packages: "Scott N. Walck @walck": - cyclotomic - - learn-physics < 0 # via base-4.13.0.0 + - learn-physics - TypeCompose # @ghorn @@ -161,11 +181,11 @@ packages: "Phil de Joux @philderbeast": - siggy-chardust - detour-via-sci - - hpack-dhall < 0 # via hpack + - hpack-dhall "Matthew Ahrens @mpahrens": - forkable-monad - - butter < 0 # via network-simple + - butter < 0 # MonadFail "Iris Ward @AdituV": - typenums @@ -178,14 +198,13 @@ packages: "Manuel Bärenz @turion": - dunai - - rhine < 0 # via base-4.13.0.0 - - rhine-gloss < 0 # via base-4.13.0.0 - - dunai-core < 0 # via base-4.13.0.0 + - rhine + - rhine-gloss - finite-typelits - - essence-of-live-coding < 0 # via base-4.13.0.0 - - essence-of-live-coding-gloss < 0 # via base-4.13.0.0 - - essence-of-live-coding-pulse < 0 # via base-4.13.0.0 - - essence-of-live-coding-quickcheck < 0 # via base-4.13.0.0 + - essence-of-live-coding + - essence-of-live-coding-gloss + - essence-of-live-coding-pulse + - essence-of-live-coding-quickcheck - pulse-simple - simple-affine-space @@ -288,22 +307,17 @@ packages: - openexr-write "Pasqualino Assini @tittoassini": - # - zm # haskell-src-exts via derive - # - flat # haskell-src-exts via derive + # - zm + # - flat # fails to build - model < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build "Jose Iborra @pepeiborra": # - arrowp-qq # build failure https://github.com/pepeiborra/arrowp/issues/8 - - clr-marshal - - clr-host - haskell-src-exts-util - hexml-lens - hp2pretty - floatshow - - NoHoed - - threepenny-editors < 0 # GHC 8.4 - # - clr-inline # haskell-src-exts via here # possibly nondeterministic failures, see https://github.com/fpco/stackage/issues/2510 - - strict-types < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build + - ghc-check "Roman Gonzalez @roman": - componentm < 0 # transitive compilation failure @@ -319,7 +333,7 @@ packages: - sexpr-parser < 0 # via base-4.13.0.0 "Vanessa McHale @vmchale": - - bz2 + - bz2 < 1.0.0.2 # https://github.com/commercialhaskell/stackage/issues/5149 "Henning Thielemann @thielema": - accelerate-arithmetic < 0 # GHC 8.4 via accelerate @@ -447,7 +461,7 @@ packages: "Li-yao Xia @Lysxia": - boltzmann-samplers - - first-class-families + - first-class-families < 0.8.0.0 - generic-data - generic-data-surgery < 0 # via generic-data - generic-random @@ -472,6 +486,7 @@ packages: - matrix-market-attoparsec - mwc-probability-transition < 0 # via logging-effect - xeno + - bytestring-mmap # required by xeno - datasets < 0 # via req - lucid-extras - rigel-viz @@ -510,8 +525,12 @@ packages: - unicode-transforms - xls + "Pranay Sashank @pranaysashank": + - fusion-plugin-types + - fusion-plugin + "Aleksey Uimanov @s9gf4ult": - # - postgresql-query # haskell-src-exts via derive + # - postgresql-query # build errors - hreader - hset @@ -536,7 +555,7 @@ packages: - mbug < 0 # via http-client-0.6.1 "David Johnson @dmjio": - - miso < 0 # via servant + - miso - envy - s3-signer < 0 # via http-types # - google-translate # servant 0.12 @@ -552,7 +571,6 @@ packages: "Michael Snoyman michael@snoyman.com @snoyberg": - bzlib-conduit - - mega-sdist - case-insensitive - classy-prelude-yesod - conduit-combinators @@ -641,8 +659,8 @@ packages: - githash - time-manager - - pantry < 0 # via cryptonite-conduit & hackage-security & hpack & http-download & persistent & persistent-sqlite & persistent-template & rio-orphans & rio-prettyprint & tar-conduit & th-utilities - - mega-sdist < 0 # via pantry + - pantry + - mega-sdist < 0 # Cabal issues - http-download - hi-file-parser - rio-prettyprint @@ -655,6 +673,7 @@ packages: - ofx - accuerr - timelens + - squeather "Neil Mitchell @ndmitchell": - hlint @@ -671,14 +690,13 @@ packages: - extra - ghcid - hexml - - weeder - profiterole - - debug < 0 # via Hoed - record-dot-preprocessor - filepattern - record-hasfield - rattle - hie-bios + - fuzzy "Digital Asset ": - ghc-lib @@ -691,7 +709,7 @@ packages: - perfect-hash-generator "Alan Zimmerman @alanz": - - ghc-exactprint + - ghc-exactprint < 0.6.3 # https://github.com/commercialhaskell/stackage/issues/5268 - haskell-lsp - hjsmin - language-javascript @@ -715,16 +733,16 @@ packages: - psqueues - websockets - websockets-snap - - hakyll < 0 # jaspervdj/hakyll#691 + - hakyll "Sibi Prabakaran @psibi": - - download < 0 # via feed + - download - textlocal - shell-conduit - tldr - fb - yesod-fb - - yesod-auth-fb < 0 # https://github.com/psibi/yesod-auth-fb/issues/4 + - yesod-auth-fb - hourglass-orphans - wai-slack-middleware - sysinfo @@ -732,6 +750,7 @@ packages: - shelly - persistent-redis < 0 # GHC 8.4 via hedis - fakedata + - streamly-bytestring "haskell-openal": - OpenAL @@ -811,6 +830,8 @@ packages: - weigh - odbc # - structured-haskell-mode # https://github.com/chrisdone/structured-haskell-mode/issues/156 + - casa-client + - casa-types "Alberto G. Corona @agocorona": - RefSerialize @@ -835,7 +856,7 @@ packages: - comonad - compensated - compressed < 0 - - concurrent-supply < 0 # hashable-1.3.0 + - concurrent-supply - constraints < 0.12 # https://github.com/commercialhaskell/stackage/issues/5124 - contravariant - distributive @@ -864,14 +885,14 @@ packages: - lens-action - lens-aeson - lens-properties - - linear < 1.21 # https://github.com/commercialhaskell/stackage/issues/5123 + - linear - linear-accelerate < 0 # GHC 8.4 via accelerate - log-domain - machines - monadic-arrays - monad-products - monad-st - - mtl + # - mtl take the one that ships with GHC - nats - numeric-extras - parsers @@ -910,7 +931,7 @@ packages: - hspec-core - hspec-discover - hspec-wai - - hspec-wai-json < 0 # via hspec-wai + - hspec-wai-json - aeson-qq - interpolate - doctest @@ -971,7 +992,7 @@ packages: # - serversession-frontend-yesod # conduit 1.3, yesod 1.6 # - thumbnail-plus # https://github.com/prowdsponsor/thumbnail-plus/issues/5 - yesod-auth-fb - - yesod-fb < 0 # via yesod-core + - yesod-fb "Alexander Altman @pthariensflame": # Maintaining on behalf of @roelvandijk: @@ -1034,7 +1055,7 @@ packages: - Clipboard - grouped-list < 0 # via base-4.13.0.0 - haskintex < 0 # via hint - - HaTeX < 0 # MonadFail + - HaTeX - include-file - matrix - pcre-light @@ -1053,10 +1074,10 @@ packages: - turtle - foldl - bench - - dhall - - dhall-bash - - dhall-json - - dhall-yaml + - dhall < 1.31.0 # https://github.com/commercialhaskell/stackage/issues/5275 + - dhall-bash < 1.0.29 # via dhall + - dhall-json < 1.6.3 # via dhall + - dhall-yaml < 1.0.3 # via dhall - aeson-yaml # req'd by dhall-json # - dhall-nix # deriving-compat via hnix @@ -1169,14 +1190,14 @@ packages: - HandsomeSoup "Clint Adams @clinty": - - hOpenPGP < 0 # via bzlib + - hOpenPGP - openpgp-asciiarmor - MusicBrainz - DAV - - hopenpgp-tools < 0 # via graphviz + - hopenpgp-tools - opensource - - debian < 0 # via bzlib - - cabal-debian < 0 # via debian + - debian + - cabal-debian "Piyush P Kurur @piyush-kurur": - raaz < 0 # via base-4.13.0.0 @@ -1208,15 +1229,30 @@ packages: - biopsl < 0 # GHC 8.4 via biocore - seqloc < 0 # GHC 8.4 via biocore - bioalign < 0 # build failure with GHC 8.4 - # - BlastHTTP # https://github.com/eggzilla/BlastHTTP/issues/1 + # - BlastHTTP # network-2.8 "Florian Eggenhofer @eggzilla": - # - ClustalParser - # - EntrezHTTP # graphviz via Taxonomy + - ClustalParser + # - EntrezHTTP # biocore - Genbank < 0 # build failure with GHC 8.4 - # - RNAlien # graphviz via Taxonomy - # - Taxonomy # graphviz + # - RNAlien # aeson<=1.4.2 + # - biocore # base + - bimaps + # - BiobaseBlast # SciBaseTypes + # - BiobaseENA # BiobaseTypes + # - BiobaseEnsembl + # - BiobaseFasta # BiobaseTypes + # - BiobaseHTTP + # - BiobaseTypes # SciBaseTypes + # - BiobaseXNA # BiobaseTypes & PrimitiveArray + # - DPutils + - ForestStructures + # - OrderedBits + # - PrimitiveArray < 0.10.0.0 + # - SciBaseTypes # log-domain-0.12 + - Taxonomy - ViennaRNAParser + - either-unwrap "Silk ": - aeson-utils @@ -1232,8 +1268,8 @@ packages: # - rest-client # http-types 0.12 - rest-core < 0 # GHC 8.4 via base-4.11.0.0 - rest-snap < 0 # GHC 8.4 via rest-core - # - rest-gen # haskell-src-exts - # - rest-happstack # haskell-src-exts via rest-gen + # - rest-gen + # - rest-happstack # containers - rest-stringmap < 0 # via aeson-1.4.0.0 - rest-types < 0 # GHC 8.4 via base-4.11.0.0 # - rest-wai # http-types 0.12 @@ -1281,9 +1317,6 @@ packages: - wai-middleware-caching - wai-middleware-caching-lru < 0 - wai-middleware-caching-redis < 0 # GHC 8.4 via hedis - # not package maintainer - - ekg < 0 # via base-4.13.0.0 - - ekg-json < 0 # via base-4.13.0.0 "Paul Rouse @paul-rouse": - mysql @@ -1316,6 +1349,9 @@ packages: - AC-Angle - language-protobuf + "Flavio Corpa @kutyel": + - language-avro + "Matvey Aksenov @supki": - terminal-size - envparse < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build @@ -1329,30 +1365,29 @@ packages: - netwire-input-glfw - yoga - freetype2 - - HCodecs < 0 # MonadFail + - HCodecs "Emanuel Borsboom @borsboom": - BoundedChan - - broadcast-chan < 0 # compilation failure + - broadcast-chan - fuzzcheck - here - hlibgit2 # - gitlib-libgit2 # via gitlib: https://github.com/jwiegley/gitlib/issues/72 - - interpolatedstring-perl6 < 0 + - interpolatedstring-perl6 - iproute - missing-foreign - - MissingH < 0 # via array-0.5.4.0 & base-4.13.0.0 & containers-0.6.2.1 & directory-1.3.3.2 & filepath-1.4.2.1 & old-time-1.1.0.3 & process-1.6.5.1 & time-1.9.3 & unix-2.7.2.2 + - MissingH - multimap - parallel-io - text-binary - Chart-cairo < 0 # GHC 8.4 via cairo - - ghc-events < 0 # build failure with GHC 8.4 + - ghc-events - monad-extras - optparse-simple - - hpack < 0 # MonadFail https://github.com/sol/hpack/issues/371 + - hpack - bindings-uname - stack < 9.9.9 # see https://github.com/fpco/stackage/issues/3563 - - stack < 0 # via hackage-security "Michael Sloan @mgsloan": - th-orphans @@ -1372,7 +1407,7 @@ packages: - partial-handler - postgresql-binary - slave-thread < 0 - - stm-containers + - stm-containers < 0 # https://github.com/commercialhaskell/stackage/pull/5289#issuecomment-610353366 - refined < 0 # https://github.com/nikita-volkov/refined/issues/33 "Iustin Pop @iustin": @@ -1428,8 +1463,8 @@ packages: - shake-language-c < 0 # via fclabels "David Turner @davecturner": - - alarmclock < 0 # via base-4.13.0.0 - - bank-holidays-england < 0 # via base-4.13.0.0 + - alarmclock + - bank-holidays-england "Haskell Servant ": - servant @@ -1494,6 +1529,7 @@ packages: - fedora-haskell-tools - hkgr - http-directory + - pagure-cli - rpmbuild-order - simple-cabal - simple-cmd @@ -1533,13 +1569,13 @@ packages: - di-monad - exinst < 0 # compilation failure - flay < 0 - - network-simple < 0 # via network-bsd - - network-simple-tls < 0 # via network-simple + - network-simple + - network-simple-tls - pipes-aeson - pipes-attoparsec - pipes-binary - - pipes-network < 0 # via network-simple - - pipes-network-tls < 0 # via network-simple-tls + - pipes-network + - pipes-network-tls - safe-money - vector-bytes-instances - xmlbf-xeno < 0 # via xmlbf @@ -1550,7 +1586,7 @@ packages: - avers - avers-api < 0 # via servant - avers-server < 0 # via servant-server - - css-syntax < 0 # via base-4.13.0.0 + - css-syntax # - etcd # https://github.com/wereHamster/etcd-hs/issues/5 - github-types - github-webhook-handler < 0 # GHC 8.4 via base-4.11.0.0 @@ -1584,8 +1620,8 @@ packages: - bitcoin-tx < 0 # via hexstring - bitcoin-types < 0 # via base58string & hexstring - hexstring - - network-attoparsec < 0 # via network-simple - - network-anonymous-i2p < 0 # via network-simple + - network-attoparsec < 0 # MonadFail + - network-anonymous-i2p < 0 # via network-attoparsec - network-anonymous-tor < 0 # build failure w/ socks 0.6, see https://github.com/solatis/haskell-network-anonymous-tor/issues/14 "Timothy Jones @zmthy": @@ -1891,9 +1927,6 @@ packages: - wuss - bmp # @benl23x5 - - ekg-statsd < 0 # @tibbe via base-4.13.0.0 & time-1.9.3 - - gloss < 0 # @benl23x5 # via base-4.13.0.0 - - gloss-rendering < 0 # @benl23x5 # via base-4.13.0.0 - gpolyline # @fegu - postgresql-simple-migration < 0 # via time-1.9.3 # @ameingast - statestack @@ -1918,7 +1951,7 @@ packages: "William Casarin @jb55": - bson-lens < 0 # via bson - cased - - elm-export < 0 # via wl-pprint-text + - elm-export # - elm-export-persistent # https://github.com/jb55/elm-export-persistent/issues/2 - pipes-csv - pipes-mongodb < 0 # GHC 8.4 via mongoDB @@ -1962,8 +1995,8 @@ packages: - almost-fix - attoparsec-base64 - attoparsec-path - - attoparsec-ip - - attoparsec-uri + # - attoparsec-ip # Deprecated in favor of ip + # - attoparsec-uri - chan - commutative - composition-extra @@ -1990,7 +2023,7 @@ packages: - tries < 0 # GHC 8.4 via bytestring-trie - unit-constraint - unfoldable-restricted < 0 # via unfoldable - - urlpath + # - urlpath - wai-transformers < 0 # via wai-websockets - websockets-rpc < 0 # websockets-simple - websockets-simple < 0 # BuildFailureException with GHC 8.4 @@ -2001,12 +2034,10 @@ packages: - boundingboxes - control-bool - drinkery - - extensible < 0 # compilation failure - monad-skeleton - - objective < 0 - - winery < 0 # via fast-builder - - witherable < 0 # via monoidal-containers - xml-lens + - witherable-class + - deriving-aeson "Peter Harpending @pharpend": - editor-open @@ -2020,8 +2051,8 @@ packages: "Michael Thompson @michaelt": - pipes-text < 0 # GHC 8.4 via streaming-commons-0.2.0.0 - lens-simple < 0 # via lens-family-2.0.0 - - lens-family-core - - lens-family + - lens-family-core < 2.1.0 #https://github.com/commercialhaskell/stackage/issues/5182 + - lens-family < 2.1.0 #https://github.com/commercialhaskell/stackage/issues/5182 "Justin Le @mstksg": - advent-of-code-api @@ -2102,6 +2133,7 @@ packages: "Kai Zhang @kaizhang": - matrices + - haskell-igraph "Michel Boucey @MichelBoucey": - IPv6Addr @@ -2125,7 +2157,7 @@ packages: "Daniel Cartwright @chessai": - streaming - - streaming-bytestring < 0 # via streaming + - streaming-bytestring - country < 0 # via base-4.13.0.0 - semirings - torsor @@ -2137,11 +2169,10 @@ packages: - data-ordlist - digits - dns - - ekg-core < 0 # via base-4.13.0.0 - friday < 0 - friday-juicypixels < 0 - hbeanstalk < 0 # sClose not in scope - - hedis < 0 # via test-framework + - hedis - hprotoc < 0 # compilation failure - hsyslog-udp < 0 - iso3166-country-codes @@ -2188,7 +2219,7 @@ packages: - atomic-write - dbcleaner < 0 # via postgresql-simple - dotenv - - hapistrano < 0 # via path-io-1.5.0 & time-1.9.3 + - hapistrano - hspec-golden - inflections - stache @@ -2206,6 +2237,7 @@ packages: - network-carbon < 0 # GHC 8.4 via base-4.11.0.0 - logging-effect - dhall-to-cabal < 0 + - weeder # - reactive-banana # pqueue-1.4.1 "Antoni Silvestre @asilvestre": @@ -2239,7 +2271,7 @@ packages: - deriving-compat - dotgen - echo - - eliminators + - eliminators < 0.7 # GHC 8.10 via base-4.14 & template-haskell-2.16 - generic-deriving - hashmap - invariant @@ -2264,15 +2296,17 @@ packages: "Matt Parsons @parsonsmatt": - monad-logger-prefix - - monad-metrics < 0 # via ekg-core + - monad-metrics # - ekg-cloudwatch # http-conduit 2.3 via amazonka - smtp-mail < 0 # https://github.com/jhickner/smtp-mail/issues/24#issuecomment-499601949 - liboath-hs < 0 # via inline-c-0.8.0.1 - servant-quickcheck < 0 - esqueleto + - hedgehog-fakedata - persistent-typed-db - persistent-qq - persistent-pagination + - hspec-hedgehog "Matthew Pickering @mpickering": - refact @@ -2306,14 +2340,14 @@ packages: - microlens-ghc - microlens-contra - shortcut-links < 0 # MonadFail - - cheapskate-highlight < 0 # cheapskate - - cheapskate-lucid < 0 # cheapskate + - cheapskate-highlight + - cheapskate-lucid - cmark-lucid - cmark-highlight < 0 # cmark-0.6 - Spock-lucid < 0 # GHC 8.4 via Spock - charsetdetect-ae # - text-all # text-1.2.3.0 - - fmt < 0 # via doctest-discover + - fmt "Takano Akio tak@anoak.io @takano-akio": - fast-builder < 0 # via true-name @@ -2391,32 +2425,23 @@ packages: - io-storage - oo-prototypes - opentelemetry + - opentelemetry-extra + - opentelemetry-wai + - opentelemetry-lightstep - planb-token-introspection - pointedlist - unordered-intmap - word-trie - xdg-basedir - - yi-core < 0 # GHC 8.4 build failure - - yi-frontend-vty < 0 # GHC 8.4 via yi-core - - yi-fuzzy-open < 0 # GHC 8.4 via yi-core - - yi-ireader < 0 # GHC 8.4 via yi-core - - yi-keymap-cua < 0 # GHC 8.4 via yi-core - - yi-keymap-emacs < 0 # GHC 8.4 via yi-core - - yi-keymap-vim < 0 # GHC 8.4 via yi-core - - yi-language < 0 # via regex-base-0.94.0.0 - - yi-misc-modes < 0 # GHC 8.4 via yi-core - - yi-mode-haskell < 0 # GHC 8.4 via yi-core - - yi-mode-javascript < 0 # GHC 8.4 via yi-core - yi-rope - - yi-snippet < 0 # GHC 8.4 via yi-core "Tobias Bexelius @tobbebex": - GPipe < 0 # GHC 8.4 via base-4.11.0.0 "Jonas Carpay @jonascarpay": - - apecs < 0 # Template Haskell changes - - apecs-gloss < 0 # via gloss - - apecs-physics < 0 # via inline-c + - apecs + - apecs-gloss + - apecs-physics "Spencer Janssen @spencerjanssen": - Xauth @@ -2439,12 +2464,12 @@ packages: - core-text "Sean Hunt @ivan-m": - fgl - - graphviz < 0 # via polyparse-1.13 - - wl-pprint-text < 0 # via base-compat-0.11.0 + - graphviz + - wl-pprint-text - servant-pandoc < 0 # blocks http-media https://github.com/commercialhaskell/stackage/issues/4483 "Sharif Olorin @olorin": @@ -2452,8 +2477,8 @@ packages: - nagios-check "Peter Simons @peti": - - cabal2nix < 0 # via hpack - - cabal2spec + - cabal2nix + - cabal2spec < 2.6 # GHC 8.10 via Cabal-3.2 - cgi < 0 # via multipart - distribution-nixpkgs - distribution-opensuse @@ -2545,6 +2570,9 @@ packages: - wave - zip + "Leonhard Markert @curiousleo": + - monad-bayes + "Emmanuel Touzery @emmanueltouzery": - app-settings - hsexif < 0 # via time-1.9.3 @@ -2583,14 +2611,13 @@ packages: - rank1dynamic "Dave Tapley @dukedave": - - inline-c-cpp < 0 # via inline-c + - inline-c-cpp "Takahiro Himura @himura": - lens-regex - # haskell-src-exts via derive - # - twitter-conduit - # - twitter-types - # - twitter-types-lens + # - twitter-conduit # twitter-types + # - twitter-types # MonadFail + # - twitter-types-lens # "Robbin C. @robbinch": - zim-parser @@ -2639,11 +2666,11 @@ packages: - fuzzyset "Will Sewell @willsewell": - - benchpress < 0 # via base-4.13.0.0 + - benchpress - pusher-http-haskell "Yorick Laupa yo.eight@gmail.com @YoEight": - - eventstore < 0 # via dns + - eventstore - dotnet-timespan - eventsource-api < 0 # GHC 8.4 build failure - eventsource-geteventstore-store < 0 # GHC 8.4 via protolude @@ -2683,17 +2710,17 @@ packages: "Jeremy Shaw @stepcut": - boomerang < 0 # GHC 8.4 via template-haskell-2.13.0.0 - # - happstack-hsp # haskell-src-exts via hsx2hs + # - happstack-hsp # harp - happstack-jmacro < 0 # GHC 8.4 via happstack-server - - happstack-server < 0 + - happstack-server - happstack-server-tls < 0 # GHC 8.4 via happstack-server - hsx-jmacro < 0 - ixset < 0 # GHC 8.4 via syb-with-class - - reform < 0 # build failure with GHC 8.4 - - reform-blaze < 0 # GHC 8.4 via reform - - reform-hamlet < 0 # GHC 8.4 via reform - - reform-happstack < 0 # GHC 8.4 via happstack-server - # - reform-hsp # haskell-src-exts via hsx2hs + - reform + - reform-blaze + - reform-hamlet + - reform-happstack + # - reform-hsp # hsx2hs - userid < 0 # GHC 8.4 via base-4.11.0.0 - web-plugins < 0 - web-routes < 0 # via http-types @@ -2707,7 +2734,7 @@ packages: "Pedro Tacla Yamada @yamadapc": - ascii-progress - drawille < 0 - - file-modules < 0 # via MissingH + - file-modules - frontmatter - read-editor # - list-prompt # https://github.com/yamadapc/list-prompt/issues/3 @@ -2731,10 +2758,10 @@ packages: - yes-precure5-command - th-strict-compat - main-tester - - skews < 0 # via websockets - - wss-client < 0 - - network-messagepack-rpc < 0 # via data-msgpack - - network-messagepack-rpc-websocket < 0 + - skews + - wss-client + - network-messagepack-rpc + - network-messagepack-rpc-websocket - unicode-show - deriveJsonNoPrefix @@ -2802,10 +2829,10 @@ packages: - texmath - highlighting-kate - skylighting - - pandoc-types > 1.19 # https://github.com/fpco/stackage/issues/2223 + - pandoc-types - zip-archive - - doclayout < 0.3 # via pandoc-2.9.1.1 - - doctemplates < 0.8.1 # via doclayout + - doclayout + - doctemplates - emojis - pandoc - pandoc-citeproc @@ -2838,9 +2865,9 @@ packages: - xlsx-tabular "Mikhail Glushenkov @23Skidoo": - - Cabal - - cabal-install < 0 # via base-4.13.0.0 - # - pointful # haskell-src-exts + # - Cabal take the one that ships with GHC + - cabal-install < 0 # via Cabal + # - pointful # haskell-src-exts-simple "Lennart Kolmodin @kolmodin": - binary-bits < 0 # MonadFail @@ -2853,15 +2880,18 @@ packages: - th-data-compat - th-reify-compat - relational-query - - relational-query-HDBC < 0 # via HDBC - - persistable-types-HDBC-pg < 0 # via HDBC - - relational-record < 0 # via relational-query-HDBC + - relational-query-HDBC + - persistable-types-HDBC-pg + - relational-record - text-ldap - debian-build - aeson-generic-compat - json-rpc-generic - protocol-radius - protocol-radius-test + - th-bang-compat + - th-constraint-compat + - persistable-record "wren romano @wrengr": - bytestring-lexing @@ -2877,7 +2907,7 @@ packages: "Fraser Tweedale @frasertweedale": - concise - - jose < 0 # MonadFail + - jose "Yoshikuni Jujo @YoshikuniJujo": - zot @@ -2909,8 +2939,8 @@ packages: - antiope-sns - antiope-sqs - arbor-lru-cache - - arbor-postgres - - asif + - arbor-postgres < 0 # generic-lens 2.0.0.0 + - asif < 0 # hw-ip due to generic-lens 2.0.0.0 - avro - bits-extra - hw-balancedparens @@ -2918,28 +2948,28 @@ packages: - hw-conduit - hw-conduit-merges - hw-diagnostics - - hw-dsv - - hw-eliasfano + - hw-dsv < 0 # generic-lens 2.0.0.0 + - hw-eliasfano < 0 # generic-lens 2.0.0.0 - hw-excess - hw-fingertree - hw-fingertree-strict - hw-hedgehog - hw-hspec-hedgehog - hw-int - - hw-ip - - hw-json - - hw-json-simple-cursor - - hw-json-standard-cursor + - hw-ip < 0 # generic-lens 2.0.0.0 + - hw-json < 0 # generic-lens 2.0.0.0 + - hw-json-simple-cursor < 0 # generic-lens 2.0.0.0 + - hw-json-standard-cursor < 0 # generic-lens 2.0.0.0 - hw-mquery - - hw-packed-vector + - hw-packed-vector < 0 # generic-lens 2.0.0.0 - hw-parser - hw-prim - - hw-rankselect + - hw-rankselect < 0 # generic-lens 2.0.0.0 - hw-rankselect-base - - hw-simd + - hw-simd < 0 # hw-rankselect due to generic-lens 2.0.0.0 - hw-streams - - hw-succinct - - hw-xml + - hw-succinct < 0 # hw-rankselect due to generic-lens 2.0.0.0 + - hw-xml < 0 # generic-lens 2.0.0.0 "George Wilson @gwils": - hedgehog-fn @@ -2954,7 +2984,7 @@ packages: "Stephen Diehl @sdiehl": - llvm-hs-pretty < 0 # compilation failure - protolude - - repline + - repline < 0.3 # https://github.com/commercialhaskell/stackage/issues/5269 - picosat < 0 - aos-signature < 0 # via protolude # https://github.com/commercialhaskell/stackage/issues/4682 @@ -2964,7 +2994,7 @@ packages: - oblivious-transfer < 0 # via protolude - pairing < 0 # #4758 - libraft < 0 # via concurrency & ejafu & kg & kg-core & onad-metrics & ostgresql-simple-url & rotolude & uickcheck-state-machine & asty-dejafu - - galois-field < 0 # via protolude & wl-pprint-text + - galois-field < 0 # via protolude "Daishi Nakajima @nakaji-dayo": - api-field-json-th @@ -3014,17 +3044,25 @@ packages: "Iñaki García Etxebarria @garetxe": - haskell-gi - haskell-gi-base - - gi-atk < 0 # via haskell-gi - - gi-cairo < 0 # via haskell-gi - - gi-glib < 0 # via haskell-gi - - gi-gio < 0 # via haskell-gi - - gi-gobject < 0 # via haskell-gi - - gi-gtk < 0 # via gi-graphene - - gi-gtk-hs < 0 # via base-compat-0.11.0 + - gi-atk + - gi-cairo + - gi-dbusmenu + - gi-dbusmenugtk3 + - gi-gdk < 4 + - gi-gdkpixbuf + - gi-gdkx11 < 4 + - gi-gio + - gi-glib + - gi-gobject + - gi-graphene + - gi-gtk < 4 + - gi-gtk-hs - gi-gtksource < 0 # via gi-gdk-4.0.1 & gi-gtk-4.0.1 - gi-javascriptcore < 0 # via haskell-gi + - gi-pango - gi-vte < 0 # via gi-gdk-4.0.1 & gi-gtk-4.0.1 # - gi-webkit2 # https://github.com/fpco/stackage/issues/3415 + - gi-xlib "Brandon Simmons @jberryman": - directory-tree @@ -3036,8 +3074,8 @@ packages: - hpio < 0 # GHC 8.4 via protolude "Richard Eisenberg @goldfirere": - - th-desugar - - singletons + - th-desugar < 1.11 # GHC 8.10 via singletons-2.7 & eliminators-0.7 + - singletons < 2.7 # GHC 8.10 via Cabal-3.2 & base-4.14 - HUnit-approx - units-parser < 0 # BuildFailureException Process exited with ExitFailure 1: dist/build/main/main @@ -3090,6 +3128,7 @@ packages: - vector-rotcev - mod - tasty-rerun + - integer-roots "Ashley Yakeley @AshleyYakeley": - countable @@ -3097,8 +3136,8 @@ packages: - open-witness < 0 # MonadFail "Victor Denisov @VictorDenisov": - - mongoDB < 0 # via network-3.1.1.0 - - bson < 0 # via network-3.1.1.0 + - mongoDB + - bson "Alexis King @lexi-lambda": - freer-simple @@ -3185,6 +3224,8 @@ packages: - cpuinfo - lmdb - rdf + - data-compat + - deepseq-instances "Michael Swan @michael-swan": - pcf-font < 0 # MonadFail @@ -3232,7 +3273,7 @@ packages: - perf < 0 "Iphigenia Df @iphydf": - - data-msgpack < 0 # via data-msgpack-types + - data-msgpack # - network-msgpack-rpc # conduit 1.3 "Dino Morelli @dino-": @@ -3252,6 +3293,8 @@ packages: - port-utils "Jonathan Knowles @jonathanknowles": + - bech32 + - bech32-th - roc-id "Mahdi Dibaiee @mdibaiee": @@ -3299,7 +3342,7 @@ packages: "Tom Nielsen @glutamate": - plotlyhs - - inliterate < 0 # cheapskate + - inliterate "Hyunje Jun @noraesae": - line < 0 # via scotty @@ -3318,6 +3361,7 @@ packages: - Color - safe-decimal - flush-queue + - pvar "Hans-Peter Deifel @hpdeifel": - hledger-iadd @@ -3343,6 +3387,7 @@ packages: - socket-activation < 0 # via network-3.1.1.0 "aiya000 @aiya000": + - character-cases - throwable-exceptions "Mitsutoshi Aoe @maoe": @@ -3384,11 +3429,11 @@ packages: "ncaq @ncaq": - debug-trace-var - # - haskell-import-graph # fgl via graphviz + - haskell-import-graph - string-transform - uniq-deep - - yesod-form-bootstrap4 < 0 # via yesod-core - - yesod-recaptcha2 < 0 # via yesod-core + - yesod-form-bootstrap4 + - yesod-recaptcha2 "Andrei Barbu @abarbu": - nondeterminism @@ -3410,9 +3455,9 @@ packages: - github-webhooks < 0 # unknown "Pavel Yakovlev @zmactep": - - hasbolt < 0 # via hex + - hasbolt - uniprot-kb - - mmtf < 0 # via data-msgpack + - mmtf < 0 # MonadFail "Christopher A. Gorski @cgorski": - general-games @@ -3456,14 +3501,15 @@ packages: - wai-middleware-rollbar < 0 # aeson "Andrey Mokhov @snowleopard": - - algebraic-graphs < 0 # via base-compat-0.11.0 + - algebraic-graphs "Albert Krewinkel @tarleb": - - hslua + - hslua < 1.1.0 # https://github.com/commercialhaskell/stackage/issues/5261 - hslua-aeson + - hslua-module-doclayout - hslua-module-system - hslua-module-text - - jira-wiki-markup + - jira-wiki-markup < 1.2.0 # https://github.com/commercialhaskell/stackage/issues/5272 "Judah Jacobson @judah": - proto-lens-protobuf-types @@ -3476,7 +3522,7 @@ packages: - tensorflow-test - pier-core < 0 - pier < 0 - - haskeline + - haskeline < 0.8 # https://github.com/commercialhaskell/stackage/issues/5269 - ghc-source-gen "Christof Schramm ": @@ -3562,23 +3608,29 @@ packages: - listsafe "Serokell @serokell": - # - importify # haskell-src-exts via haskell-names + # - importify - log-warper < 0 # GHC 8.4 via lifted-async-0.10.0.1 - o-clock - universum + - with-utf8 "Kowainik @chshersh @vrom911": - co-log-core - co-log - co-log-polysemy + - colourista - first-class-patterns - ilist + - life-sync + - membrain - relude - shellmet - shortcut-links - - summoner < 0 # via base-4.13.0.0 + - summoner + - summoner-tui - tomland - typerep-map + - validation-selective "Dmitrii Kovanikov @chshersh": - type-errors-pretty @@ -3589,6 +3641,9 @@ packages: "Holmusk @arbus": - elm-street < 0 # via base-4.13.0.0 & warp-3.3.2 + "Noel Kwan @kwannoel": + - servant-docs-simple + "Lorenz Moesenlechner @moesenle": - servant-websockets @@ -3596,7 +3651,7 @@ packages: - currencies - alerts - yesod-alerts < 0 # via yesod-core - - graphite < 0 # via graphviz + - graphite "José Lorenzo Rodríguez @lorenzo": - wrecker < 0 # GHC 8.4 via ansigraph @@ -3630,8 +3685,8 @@ packages: "Naoto Shimazaki @nshimaza": - thread-hierarchy + - thread-supervisor - bitset-word8 - - cisco-spark-api - webex-teams-api - webex-teams-conduit - webex-teams-pipes @@ -3650,12 +3705,14 @@ packages: - colorize-haskell "Chris Martin @chris-martin": - - loc < 0 # via base-4.13.0.0 - - partial-semigroup < 0 # via base-4.13.0.0 - - path-text-utf8 < 0 # via base-4.13.0.0 + - data-forest + - loc + - partial-semigroup + - path-text-utf8 "Type Classes @argumatronic @chris-martin": - aws-cloudfront-signed-cookies + - d10 - stripe-concepts - stripe-signature - stripe-scotty < 0 # via scotty @@ -3665,7 +3722,7 @@ packages: - qm-interpolated-string "Douglas Burke @DougBurke": - - swish < 0 # via base-4.13.0.0 + - swish - hvega - ihaskell-hvega < 0 @@ -3674,6 +3731,8 @@ packages: "Csongor Kiss @kcsongor": - generic-lens + - generic-optics + - generic-lens-core "Bogdan Neterebskii @ozzzzz": - cast @@ -3688,6 +3747,7 @@ packages: "Alexander Vershilov @qnikst": - stm-conduit + - co-log-concurrent "Tung Dao @tungd": - time-locale-vietnamese @@ -3702,29 +3762,44 @@ packages: - gym-http-api < 0 # via servant servant-client "Tom Sydney Kerckhove @NorfairKing": + - cursor + - cursor-brick + - cursor-fuzzy-time + - cursor-gen + - fuzzy-time - genvalidity - genvalidity-aeson - genvalidity-bytestring - genvalidity-containers + - genvalidity-criterion - genvalidity-hspec - genvalidity-hspec-aeson - genvalidity-hspec-binary - genvalidity-hspec-cereal - genvalidity-hspec-hashable - genvalidity-hspec-optics + - genvalidity-hspec-persistent + - genvalidity-mergeful + - genvalidity-mergeless - genvalidity-path - genvalidity-property - genvalidity-scientific - - genvalidity-text < 0.7.0.1 # commercialhaskell/stackage#5013 + - genvalidity-text - genvalidity-time + - genvalidity-typed-uuid - genvalidity-unordered-containers - genvalidity-uuid - genvalidity-vector + - mergeful + - mergeless + - pretty-relative-time + - typed-uuid - validity - validity-aeson - validity-bytestring - validity-containers - validity-path + - validity-primitive - validity-scientific - validity-text - validity-time @@ -3771,7 +3846,7 @@ packages: "Alexey Kotlyarov @koterpillar": - appendmap - - serverless-haskell < 0 # via aeson-extra + - serverless-haskell "Guru Devanla @gdevanla": - pptable @@ -3793,25 +3868,21 @@ packages: - transformers-fix "Domen Kozar @domenkozar": - - cachix < 0 # #4752 - - cachix-api < 0 # via http-media & protolude & servant-auth & servant-auth-server & servant-auth-swagger & swagger2 - - elm2nix < 0 # via req - - mixpanel-client < 0 + - elm2nix + - mixpanel-client - netrc - pretty-sop - - servant-auth < 0 # via base-4.13.0.0 - - servant-auth-server < 0 # via base-4.13.0.0 + - servant-auth + - servant-auth-server - servant-auth-client < 0 # via warp-3.3.2 - - servant-auth-swagger < 0 # via base-4.13.0.0 - - servant-auth-docs < 0 # via base-4.13.0.0 - - servant-elm < 0 # via wl-pprint-text - - streaming-wai < 0 # via streaming - - systemd < 0 # socketToFd is ambiguous + - servant-auth-swagger + - servant-auth-docs + - servant-elm + - systemd "Andre Van Der Merwe @andrevdm": - bhoogle < 0 - hyraxAbif - - hyraxAbif < 0 # via binary-0.8.7.0 "David Millar-Durrant @DavidM-D": - indexed-list-literals @@ -3819,13 +3890,15 @@ packages: "Dmitry Dzhus @dzhus": - csg < 0 # via QuickCheck https://github.com/commercialhaskell/stackage/issues/4444 - simple-vec3 - - static-text < 0 # via template-haskell-2.15.0.0 - - th-nowq < 0 # via time-1.9.3 + - static-text + - th-env + - th-nowq "Dan Fithian @dfithian": - oauthenticated - datadog - interpolator + - file-path-th "Raghu Kaippully @rkaippully": - starter @@ -3836,7 +3909,7 @@ packages: "Avi Press @aviaviavi": - curl-runnings < 0 - - cryptocompare < 0 # via MissingH + - cryptocompare "Jack Kiefer @JackKiefer": - herms < 0 @@ -3962,7 +4035,7 @@ packages: - kazura-queue "Eric Torreborre @etorreborre": - - registry < 0 # also protolude, semigroups, universum + - registry "Ryota Kameoka @ryota-ka": - duration @@ -3971,7 +4044,7 @@ packages: - ghci-hexcalc "Nikos Karagianndis @nkarag": - - DBFunctor < 0 # via MissingH + - DBFunctor "Marat Khafizov @xafizoff": - n2o @@ -3996,6 +4069,10 @@ packages: - mx-state-codes - sitemap-gen - tasty-wai + - stack-templatizer + - immortal-queue + - wai-middleware-clacks + - hledger-stockquotes "David Baynard @dbaynard": - time-qq < 0 # see christian-marie/time-qq#3 @@ -4007,7 +4084,7 @@ packages: - failable - ttl-hashtables - radius - - structured-cli + - structured-cli < 2.6 # https://github.com/commercialhaskell/stackage/issues/5269 "Jan Path @janpath": - smallcheck-series < 0 # via base-4.13.0.0 @@ -4016,8 +4093,9 @@ packages: - oeis2 "David Himmelstrup @lemmih": + - chiphunk - reanimate-svg - - reanimate < 0 # via base-4.13.0.0 + - reanimate "Vitaly Bragilevsky @bravit": - Chart @@ -4045,12 +4123,27 @@ packages: "Elben Shira @elben": - pencil < 0 # via hsass + "Ivan Malison @IvanMalison": + - ConfigFile + - dbus-hslogger + - gi-cairo-connector + - gi-cairo-render + - gtk-sni-tray + - gtk-strut + - rate-limit + - status-notifier-item + - taffybar + - time-units + - xml-helpers + - xdg-desktop-entry + "ARATA Mizuki @minoki": - unboxing-vector "Brandon Chinn @brandon-leapyear": - aeson-schemas - github-rest + - hpc-lcov - th-test-utils "Akshay Mankar @akshaymankar": @@ -4075,20 +4168,29 @@ packages: "Satoshi Egi @egisatoshi": - egison - mini-egison + - egison-pattern-src + - egison-pattern-src-th-mode "Travis Cardwell @TravisCardwell": - ttc "Jasper Woudenberg @jasperwoudnberg": - bugsnag-hs + - junit-xml "Eric Conlon @ejconlon": - blanks - climb - heart-core - linenoise + # Maintainership with @23Skidoo + - ekg + - ekg-core + - ekg-json + - ekg-statsd "Jorah Gao @gqk007": + - aeson-default - vformat - vformat-time - vformat-aeson @@ -4097,6 +4199,36 @@ packages: "Shintaro Sakata @chemirea": - utf8-conversions + "Alessandro Marrella @amarrella": + - kubernetes-webhook-haskell + + "8c6794b6 <8c6794b6@gmail.com> @8c6794b6": + - hpc-codecov + + "Hiromi Ishii @konn": + - equational-reasoning + - ghc-typelits-presburger + - singletons-presburger + - type-natural + - sized + + "Frank Doepper @woffs": + - amqp-utils + - magic + + "Ziyang Liu @zliu41": + - hadoop-streaming + - indexed-containers + - math-extras + - min-max-pqueue + - multi-containers + + "Vaclav Svejcar @vaclavsvejcar": + - headroom + + "Adrian Sieber @ad-si": + - ulid + "Grandfathered dependencies": - network - Boolean @@ -4105,8 +4237,9 @@ packages: - FloatingHex - GenericPretty - Glob - - HDBC < 0 # via time-1.9.3 - - HDBC-session < 0 # via HDBC + - HasBigDecimal + - HDBC + - HDBC-session - HTTP - HsOpenSSL - HsYAML @@ -4116,7 +4249,7 @@ packages: - NumInstances - Only - ParsecTools - - QuickCheck + - QuickCheck < 2.14 # https://github.com/commercialhaskell/stackage/issues/5271 - RSA - aeson-compat - aeson-extra < 0 # via semialign @@ -4130,6 +4263,7 @@ packages: - assoc - attoparsec - auto-update + - base-noprelude - base64-bytestring - base64-bytestring-type - base64-string @@ -4211,7 +4345,6 @@ packages: - data-inttrie - data-lens-light - data-memocombinators - - data-msgpack-types < 0 # MonadFail - data-msgpack-types - data-serializer - data-textual @@ -4242,7 +4375,7 @@ packages: - fail - fast-logger - fast-math - - fib < 0 # via base-noprelude + - fib < 0 # via base-noprelude-4.13 - file-embed - file-embed-lzma - filemanip @@ -4257,20 +4390,17 @@ packages: - ghc-compact - ghc-paths - ghc-prof - - gi-gdk < 0 # via haskell-gi - - gi-gdkpixbuf < 0 # via haskell-gi - - gi-pango < 0 # via haskell-gi - github < 0 # via http-client-0.6.1 - github - groom - groups - - hackage-security < 0 # via base-4.13.0.0 + - hackage-security - hashable - haskell-gi-overloading - haskell-lexer - haskell-lsp-types - haskell-src - - haskell-src-exts < 1.23 # https://github.com/commercialhaskell/stackage/issues/5048 + - haskell-src-exts - haxl < 0 # via time-1.9.3 - heap - hex < 0 # via base-4.13.0.0 @@ -4312,7 +4442,7 @@ packages: - inspection-testing - integer-logarithms - io-streams-haproxy - - ixset-typed < 0 # via safecopy-0.10.0 + - ixset-typed - json < 0 # via base-4.13.0.0 - json-alt - kleene < 0 # via regex-applicative @@ -4327,6 +4457,7 @@ packages: - lockfree-queue - log-base - logging-facade + - lukko - lrucache - lzma - managed @@ -4364,10 +4495,8 @@ packages: - options - optparse-applicative - parallel - - parsec - path-pieces - pcg-random - - persistable-record - pipes-bytestring - pipes-group - placeholders @@ -4377,16 +4506,15 @@ packages: - postgresql-simple - postgresql-simple-url < 0 # via postgresql-simple - pretty-hex - - pretty-show < 1.10 # https://github.com/commercialhaskell/stackage/issues/5118 + - pretty-show - prettyprinter-convert-ansi-wl-pprint - primes - primitive - - primitive-extras - primitive-unaligned - process-extras - product-isomorphic - project-template - - protobuf < 0 # via hex + - protobuf - pureMD5 - quickcheck-instances - quickcheck-io @@ -4400,7 +4528,7 @@ packages: - readable - rebase - recursion-schemes - - regex-applicative-text < 0 # via regex-applicative + - regex-applicative-text - regex-base - regex-compat - regex-pcre @@ -4411,6 +4539,7 @@ packages: - relapse - relational-schemas - rerebase + - resolv - resource-pool - resourcet - rfc5051 @@ -4450,7 +4579,6 @@ packages: - statistics - step-function - stm-delay - - stm-hamt - storable-complex - store-core < 0 # MonadFail - streaming-cassava < 0 # via streaming @@ -4587,7 +4715,6 @@ packages: # this is to prevent us from including them by accident. They can # be removed from this list if they are fixed. "Unmaintained packages with compilation failures": - - base-noprelude < 0 # via base-4.13.0.0 - doctest-discover-configurator < 0 - flexible-defaults < 0 # MonadFail - haskell-tools-builtin-refactorings < 0 # bounds failure @@ -4622,11 +4749,7 @@ packages: - Win32 == 2.6.1.0 "Stackage upper bounds": - # https://github.com/commercialhaskell/stackage/issues/5037 - - haskeline < 0.8.0 - - structured-cli < 2.6 - - # https://github.com/commercialhaskell/stackage/issues/5097 + # https://github.com/commercialhaskell/stackage/issues/5191 - compilation failures - servant < 0.17 - servant-client < 0.17 - servant-server < 0.17 @@ -4636,7 +4759,50 @@ packages: - servant-lucid < 0.9.0.1 - servant-mock < 0.8.6 - servant-swagger < 1.1.8 - - aur < 6.3.0 + + # https://github.com/commercialhaskell/stackage/issues/5218 + - unliftio-core < 0.2 + - higher-leveldb < 0.6.0.0 + + # https://github.com/commercialhaskell/stackage/issues/5236 + - rank2classes < 1.4 + + # https://github.com/commercialhaskell/stackage/issues/5293 + - haddock-library < 1.9.0 + + # https://github.com/commercialhaskell/stackage/issues/5306 + - arithmoi < 0.11.0.0 + + # https://github.com/commercialhaskell/stackage/issues/5309 + - optics < 0.3 + - optics-core < 0.3 + - optics-extra < 0.3 + - optics-th < 0.3 + - optics < 0.3 + - optics-vl < 0.2.1 + + # https://github.com/commercialhaskell/stackage/issues/5319 + - protolude < 0.3 + + # https://github.com/commercialhaskell/stackage/issues/5322 + - swagger2 < 2.6 + + # https://github.com/commercialhaskell/stackage/issues/5323 + - base64-bytestring < 1.1 + + # https://github.com/commercialhaskell/stackage/issues/5324 + - cabal2nix < 2.15.2 + + # https://github.com/commercialhaskell/stackage/issues/5335 + - brick <0.53 + + # https://github.com/commercialhaskell/stackage/issues/5336 + - colourista < 0.1.0.0 + + # soon to be removed anyways, not creating an issue + - persistent-template < 2.8.3 + - validation-selective < 0.1.0.0 + # end of packages # Package flags are applied to individual packages, and override the values of @@ -4740,6 +4906,12 @@ package-flags: hsdev: docs: false + bson: + _old-network: false + + mongoDB: + _old-network: false + # end of package-flags # Special configure options for individual packages @@ -4914,9 +5086,11 @@ skipped-tests: - mmtf # via hspec-2.7.0 - next-ref # hspec 2.3 - partial-order # HUnit 1.6 + - protobuf # hex-0.1.2 - psqueues # via QuickCheck-2.12.6.1 - pure-zlib # via QuickCheck-2.12.6.1 - records-sop # via hspec-2.7.0 + - resolv # via tasty-1.2 - serialise - servant # via hspec-2.7.0 - servant-client # via hspec-2.7.0 @@ -4985,7 +5159,6 @@ skipped-tests: - servant-cassava - siggy-chardust - simple-vec3 - - skews - skylighting-core - speedy-slice - static-text @@ -5024,11 +5197,10 @@ skipped-tests: # Compilation failures - snappy # https://github.com/bos/snappy/issues/1 - - genvalidity-time # https://github.com/NorfairKing/validity/issues/51 - cron # Could not deduce (SOP.All (SOP.All Arbitrary) xss) arising from a use of ‘SOP.hcpure’ - config-ini # https://github.com/aisamanra/config-ini/issues/22 - polysemy-plugin # https://github.com/commercialhaskell/stackage/issues/4733 - - persistent-typed-db # https://github.com/parsonsmatt/persistent-typed-db/pull/7 + - primitive-extras # https://github.com/commercialhaskell/stackage/issues/5210 # Runtime issues - blank-canvas # Never finishes https://github.com/ku-fpg/blank-canvas/issues/73 @@ -5051,6 +5223,7 @@ skipped-tests: - cryptohash-sha1 - cryptohash-sha256 - cryptohash-sha512 + - HsYAML - lzma - resolv - token-bucket @@ -5091,6 +5264,7 @@ skipped-tests: - range-set-list - time-parsers - time-parsers + - universe-base - vec # Uses Cabal's "library internal" stanza feature @@ -5125,8 +5299,10 @@ skipped-tests: - envelope # https://github.com/commercialhaskell/stackage/issues/4669 - algebraic-graphs # https://github.com/commercialhaskell/stackage/issues/4670 - bugsnag-haskell # https://github.com/commercialhaskell/stackage/issues/4759 - - genvalidity-hspec-cereal # https://github.com/commercialhaskell/stackage/issues/4909 - - genvalidity-hspec-optics # https://github.com/commercialhaskell/stackage/issues/4910 + - servant-rawm # https://github.com/commercialhaskell/stackage/issues/5162 + + # https://github.com/commercialhaskell/stackage/issues/5302 + - registry # end of skipped-tests # Tests listed in expected-test-failures configure correctly but may fail to run @@ -5150,10 +5326,9 @@ expected-test-failures: - distributed-process - distributed-process-execution # https://github.com/haskell-distributed/distributed-process-execution/issues/2 - distributed-process-task - - egison # https://github.com/commercialhaskell/stackage/issues/4984 - foldl-statistics # https://github.com/data61/foldl-statistics/issues/2 - - fsnotify # Often runs out of inotify handles - forma + - fsnotify # Often runs out of inotify handles - hastache - idris # https://github.com/fpco/stackage/issues/1382 - ihaskell # https://github.com/gibiansky/IHaskell/issues/551 @@ -5232,7 +5407,7 @@ expected-test-failures: - mangopay # https://github.com/prowdsponsor/mangopay/issues/30 - memcached-binary # memcached - milena - - mongoDB # mongoDB - https://github.com/mongodb-haskell/mongodb/issues/61 + - mongoDB # Requires local MongoDB server - mysql # MySQL - mysql-haskell # Requires local mysql server with a test account, and binlog enabled. - mysql-simple # MySQL @@ -5249,6 +5424,7 @@ expected-test-failures: - postgresql-simple-migration - postgresql-simple-queue - postgresql-typed # PostgreSQL + - postgrest # PostgreSQL - purescript # git 128 https://github.com/purescript/purescript/issues/2292 - rattle # needs fsatrace - redis-io @@ -5259,7 +5435,6 @@ expected-test-failures: - serialport # "The tests need two serial ports as command line arguments" https://github.com/jputcu/serialport/issues/30 - serversession-backend-redis # redis - shake # Needs ghc on $PATH with some installed haskell packages - - stack # https://github.com/fpco/stackage/issues/3707 - stripe-http-streams # https://github.com/fpco/stackage/issues/2945, needs Stripe account - users-persistent # sqlite - users-postgresql-simple # PostgreSQL @@ -5300,6 +5475,7 @@ expected-test-failures: - loopbreaker # https://github.com/polysemy-research/loopbreaker/issues/10 - nettle # https://github.com/stbuehler/haskell-nettle/issues/10 - persistent-sqlite # https://github.com/yesodweb/persistent/issues/989 + - haskell-src-exts # https://github.com/commercialhaskell/stackage/issues/5151 # Compilation failures - ListLike # No issue tracker, e-mail sent to maintainer @@ -5307,11 +5483,9 @@ expected-test-failures: - async-timer # https://github.com/mtesseract/async-timer/issues/8 - commutative # https://github.com/athanclark/commutative/issues/4 - conduit-throttle # https://github.com/mtesseract/conduit-throttle/issues/12 - - feed # https://github.com/bergmark/feed/issues/43 - haddock - haskell-tools-builtin-refactorings - hweblib # https://github.com/aycanirican/hweblib/issues/3 - - libraft # https://github.com/commercialhaskell/stackage/issues/4337#issuecomment-462465921 - multiset # doctests require Glob, a hidden package - perf # https://github.com/fpco/stackage/pull/2859 - picosat # https://github.com/fpco/stackage/pull/2382 @@ -5386,9 +5560,6 @@ expected-test-failures: # Cannot reproduce locally, looks like it may be a bug in Stack or curator - shake-language-c - # https://github.com/commercialhaskell/stackage/issues/4707 - - blaze-colonnade - # https://github.com/commercialhaskell/stackage/issues/4722 - tasty-discover @@ -5408,6 +5579,23 @@ expected-test-failures: # Test-runner expects a cabal-style 'dist-newstyle' directory - hjsmin + + # https://github.com/commercialhaskell/stackage/issues/5158 + - cursor-gen + - genvalidity-mergeful + - genvalidity-mergeless + + # https://github.com/commercialhaskell/stackage/issues/5212 + - dhall-yaml + + # https://github.com/iij-ii/direct-hs/issues/100 + - skews + + # https://github.com/tomphp/haskell-cfenv/issues/1 + - cfenv + + # https://github.com/centromere/cacophony/issues/15 + - cacophony # end of expected-test-failures # Benchmarks which are known not to build. Note that, currently we do not run @@ -5462,11 +5650,6 @@ expected-haddock-failures: # https://github.com/haskell/haddock/issues/1091 - vault - # commercialhaskell/stackage#4904 - - monoid-subclasses - - # https://github.com/alanz/haskell-lsp/issues/220 - - haskell-lsp # end of expected-haddock-failures # For packages with haddock issues @@ -5474,8 +5657,6 @@ skipped-haddocks: - modular # https://github.com/haskell/haddock/issues/900 - sparkle # Java function failures tweag/sparkle#144 - polysemy-zoo # Needs polysemy-plugin GHC plugin -- haskell-lsp-types # 0.13.0.0 https://github.com/commercialhaskell/stackage/issues/4563#issuecomment-493899809 -- bitvec # https://github.com/commercialhaskell/stackage/issues/4848 - hw-ip # https://github.com/commercialhaskell/stackage/issues/5014 # end of skipped-haddocks @@ -5546,7 +5727,6 @@ skipped-benchmarks: - fclabels - foldl - generic-lens - - genvalidity-path - hashable - histogram-fill - hmatrix-morpheus @@ -5596,7 +5776,6 @@ skipped-benchmarks: - sorted-list - sourcemap - stache - - stm-hamt - tar - tar-conduit - text-builder @@ -5624,7 +5803,6 @@ skipped-benchmarks: # These can also be checked for updates periodically. - o-clock # base-4.10 and time-1.8 via tiempo - minisat-solver # Cabal-2.2.0.1 via easyrender - - cmark-gfm # via cheapskate # Compilation failures - cipher-aes # https://github.com/vincenthz/hs-crypto-cipher/issues/46 @@ -5745,7 +5923,6 @@ github-users: clckwrks: - stepcut stackbuilders: - - javcasas - jsl - sestrella - juanpaucar diff --git a/debian-bootstrap.sh b/debian-bootstrap.sh index f487b160..e688b670 100755 --- a/debian-bootstrap.sh +++ b/debian-bootstrap.sh @@ -17,9 +17,19 @@ mkdir -p /home/stackage export LANG=C.UTF-8 export DEBIAN_FRONTEND=noninteractive -# Get curl +# Get curl and unzip apt-get update -apt-get install -y curl +apt-get install -y curl unzip + +# Install AWS CLI +mkdir -p /tmp/awscli +( +cd /tmp/awscli +curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" +unzip awscliv2.zip +./aws/install --bin-dir /usr/bin +) +rm -rf /tmp/awscli # Get Stack and GHC curl -sSL https://get.haskellstack.org/ | sh -s - -d /usr/bin @@ -52,6 +62,8 @@ apt-get install -y \ libclang-3.9-dev \ libcurl4-openssl-dev \ libcwiid-dev \ + libdbusmenu-glib-dev \ + libdbusmenu-gtk3-dev \ libdevil-dev \ libedit-dev \ libedit2 \ @@ -66,6 +78,7 @@ apt-get install -y \ libglu1-mesa-dev \ libgmp3-dev \ libgnutls28-dev \ + libgraphene-1.0-dev \ libgsasl7-dev \ libgsl-dev \ libgtk-3-dev \ @@ -89,13 +102,13 @@ apt-get install -y \ libmono-2.0-dev \ libmp3lame-dev \ libmpfr-dev \ + libmpich-dev \ libmysqlclient-dev \ libncurses5-dev \ libnfc-dev \ liboath-dev \ libnotify-dev \ libopenal-dev \ - libopenmpi-dev \ libpango1.0-dev \ libpcap0.8-dev \ libpcre2-dev \ diff --git a/etc/curator-2-check.sh b/etc/check.sh similarity index 58% rename from etc/curator-2-check.sh rename to etc/check.sh index ac95ec8c..d571a9c1 100755 --- a/etc/curator-2-check.sh +++ b/etc/check.sh @@ -11,11 +11,8 @@ export PATH=$HOME/.local/bin:$PATH curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack' # Get new Stackage curator -CURATOR2=stackage-curator-2-f6258124cff9a7e92bcb5704164a70e149080e88 -wget "https://download.fpcomplete.com/stackage-curator-2/$CURATOR2.bz2" -bunzip2 "$CURATOR2.bz2" -chmod +x $CURATOR2 -mv $CURATOR2 ~/.local/bin/stackage-curator-2 +curl -L "https://download.fpcomplete.com/stackage-curator-2/curator-85b021a53833ff310fc66b3fdc5ca3f7828ce18b.bz2" | bunzip2 > curator +chmod +x curator # Install GHC stack setup $GHCVER @@ -24,8 +21,8 @@ stack setup $GHCVER # because of a different constraints handling in minor LTS version bumps NIGHTLY="nightly-$(date +%Y-%m-%d)" # New curator check -stackage-curator-2 update && - stackage-curator-2 constraints --target=$NIGHTLY && - stackage-curator-2 snapshot-incomplete && - stackage-curator-2 snapshot && - stack --resolver ghc-$GHCVER exec stackage-curator-2 check-snapshot +./curator update && + ./curator constraints --target=$NIGHTLY && + ./curator snapshot-incomplete --target=$NIGHTLY && + ./curator snapshot && + stack --resolver ghc-$GHCVER exec ./curator check-snapshot diff --git a/etc/ci-script.sh b/etc/ci-script.sh deleted file mode 100755 index 192b2a9b..00000000 --- a/etc/ci-script.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash - -set -euxo pipefail - -export GHCVER=8.8.1 - -# Download and unpack the stack executable -mkdir -p ~/.local/bin -export PATH=$HOME/.local/bin:$PATH -curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack' - -# Get stackage-curator -wget https://s3.amazonaws.com/stackage-travis/stackage-curator/stackage-curator.bz2 -bunzip2 stackage-curator.bz2 -chmod +x stackage-curator -mv stackage-curator ~/.local/bin - -# Install GHC -stack setup $GHCVER - -# Update the index -stack update - -# Check -exec stack --resolver ghc-$GHCVER exec stackage-curator check