diff --git a/.dockerignore b/.dockerignore index 383463ca..6be57529 100644 --- a/.dockerignore +++ b/.dockerignore @@ -6,3 +6,5 @@ cabal.sandbox.config tarballs *.yaml .git +automated +.github diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index abff59f4..bc6667e5 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,8 +1,13 @@ Checklist: - [ ] Meaningful commit message, eg `add my-cool-package` (please not mention `build-constraints.yml`) - [ ] At least 30 minutes have passed since uploading to Hackage -- [ ] 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): +- [ ] On your own machine, you have successfully run the following command (find verify-package in the root of this repo): - stack unpack $package-$version # $version is optional - stack init --resolver nightly + ./verify-package $package # or $package-$version + +The script runs virtually the following commands in a clean directory: + + stack unpack $package-$version # `-$version` is optional + cd $package-$version + rm -f stack.yaml && stack init --resolver nightly --ignore-subdirs stack build --resolver nightly --haddock --test --bench --no-run-benchmarks diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml new file mode 100644 index 00000000..00dd351c --- /dev/null +++ b/.github/workflows/check.yml @@ -0,0 +1,21 @@ +name: check +on: [push,pull_request] +jobs: + build: + runs-on: ubuntu-latest + name: Stackage check + steps: + - uses: actions/checkout@v2 + - uses: haskell/actions/setup@v1 + with: + ghc-version: '8.10' + stack-version: '2.5' + - uses: actions/cache@v2 + with: + path: | + ~/.stack + ~/.stackage/curator/cache + key: ${{ runner.os }}-stackage-nightly-${{ hashFiles('**/build-constraints.yaml') }} + restore-keys: | + ${{ runner.os }}- + - run: etc/check.sh diff --git a/.gitignore b/.gitignore index 9f5a7d4b..eeec85d5 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,6 @@ lts-*.yaml *.swp check-plan.yaml *~ +/constraints.yaml +/snapshot.yaml +/snapshot-incomplete.yaml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 9a45da61..00000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,15 +0,0 @@ -image: fpco/stack-build:lts-12.8 - -cache: - paths: - - $HOME/.stack - - $HOME/.stackage/curator/cache - -stages: - - build - -build: - stage: build - script: - # Edit etc/ci-script.sh to change GHC version - - ./etc/ci-script.sh diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 61a5a326..00000000 --- a/.travis.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Disable Docker stuff to try to make it faster -sudo: true - -# Choose a lightweight base image; we provide our own build tools. -language: generic - -# GHC depends on GMP. You can add other dependencies here as well. -addons: - apt: - 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 - -# Caching doesn't work with sudo: true -#cache: -# directories: -# - $HOME/.stack -# - $HOME/.stackage/curator/cache diff --git a/CURATORS.md b/CURATORS.md index 0ac5ca24..29ac271a 100644 --- a/CURATORS.md +++ b/CURATORS.md @@ -18,8 +18,8 @@ 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 -* [stackage-curator](http://www.stackage.org/package/stackage-curator) combines build-constraints.yaml with the current state of Hackage to create a build plan for a Stackage Nightly -* stackage-curator can check that build plan to ensure all version bounds are consistent +* [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 * The stackage-build server (described below) is able to run automated builds using the [build.sh script](https://github.com/commercialhaskell/stackage/blob/master/automated/build.sh) @@ -72,7 +72,7 @@ Most common technique, just prevent a new version of a library from being included immediately. This also applies to when only benchmarks and tests are affected. -* Copy the stackage-curator output and create a new issue, see e.g +* Copy the `curator` output and create a new issue, see e.g https://github.com/commercialhaskell/stackage/issues/2108 * Add a new entry under the "stackage upper bounds" section of `build-constraints.yaml`. For the above example it would be @@ -84,7 +84,7 @@ https://github.com/commercialhaskell/stackage/issues/2108 ``` * Commit (message e.g. "Upper bound for #2108") -* Optionally: Verify with `stackage-curator check` locally +* Optionally: Verify with `./check` locally * Push * Verify that everything works on the build server (you can restart the build or wait for it to to run again) @@ -110,7 +110,7 @@ new package may appear if its dependencies were part of this issue but have been updated since the last time we checked. We want to give these new packages ample time to be upgraded. -If stackage-curator is happy commit the change ("Remove upper bounds +If `curator` is happy commit the change ("Remove upper bounds and close #X"). After doing this the next nightly build may fail because some packages didn't have an upper bound in place, but compilation failed. In this case revert the previous commit so any @@ -213,14 +213,15 @@ major version number (e.g., lts3 for lts-3.\*). Note that when starting a new LTS major release, you'll need to modify Docker Hub to create a new Docker tag for the relevant branch name. -You'll need to update both the `PATH` in `Dockerfile` and the `GHCVER` variable -in `debian-bootstrap.sh`. +Update `GHCVER` in `Dockerfile`. (This env var automatically gets passed to `debian-bootstrap.sh`.) Ensure that the [global-hints.yaml file](https://github.com/fpco/stackage-content/blob/master/stack/global-hints.yaml) is updated with information on the latest GHC release by cloning that repo and running `./update-global-hints.yaml ghc-X.Y.Z`. +Also required to build an LTS minor bump with a ghc version change: On the build server, modify `/var/stackage/stackage/automated/work/lts-$THIS_LTS_MAJOR_VER/constraints.yaml` and update the ghc-version. (You may need to update sibling files as well.) Then run `NOPLAN=1 /var/stackage/stackage/automated/build.sh lts-$THIS_LTS_MINOR_BUMP` to build the LTS. + ### Getting the new image to the build server Once a new Docker image is available, you'll need to pull it onto the stackage-build server (see below). Instead of pulling an unbounded number of images, I typically just @@ -233,10 +234,14 @@ docker rmi $(docker images -q) but `docker pull commercialhaskell/stackage:nightly` can also be run instead just to update the nightly image say. -For a new GHC version you should also delete the cache directories on the stackage-build server to -force all packages to be rebuilt. See: [issue#746](https://github.com/commercialhaskell/stackage/issues/746). Eg: +For a new GHC version you should also delete the ~~cache~~ .stack-work snapshot install directories on the stackage-build server to +~~force all packages to be rebuilt~~ clear up some space. See: [issue#746](https://github.com/commercialhaskell/stackage/issues/746). Eg: + ``` -rm -r nightly/work/builds/nightly/ +# for example +SNAP_SERIES=nightly # or lts16 +OLD_GHCVER=8.10.1 +rm -r work/$SNAP_SERIES/unpack-dir/.stack-work/install/x86_64-linux/*/$OLD_GHCVER/ ``` This should also be done when moving the Nightly docker image to a new version of Ubuntu. @@ -250,7 +255,7 @@ DIR=$(mktemp -d) (cd $DIR \ && git clone https://github.com/commercialhaskell/stackage \ && cd stackage \ - && git checkout $BRANCH + && git checkout $BRANCH \ && docker build --tag commercialhaskell/stackage:$BRANCH .) rm -rf $DIR ``` @@ -280,31 +285,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.sh lts-2.17 +/var/stackage/stackage/automated/build.sh lts-15.1 # Run an LTS major bump -/opt/stackage-build/stackage/automated/build.sh lts-3.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). For an LTS minor bump, you'll typically want to use the -`CONSTRAINTS` environment variable, e.g.: +info above). -``` -CONSTRAINTS='--constraint "conduit < 1.4.5" --constraint "criterion < 1.2.3"' /opt/stackage-build/stackage/automated/build.sh lts-2.17 -``` +### Building LTS minor releases +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 `automated/lts-X.Y/Dockerfile` to `automated/lts-X.Z/Dockerfile`, where Z is the minor version you're building, and include the new changes. + * If you are building the first release of a new LTS major version, create a new `lts-X.Z/Dockerfile` based on the previous LTS's, and adjust the variables at the top to match the requirements of the snapshot. Ensure that `STACK_VERSION` is the latest release of Stack, and `BOOTSTRAP_COMMIT` is the commit ID of this repo containing the version of the `bootstrap-commit.sh` used to build the snapshot. Also ensure the FROM image's Ubuntu version matches that used in the [root Dockerfile](Dockerfile) used to build this snapshot. -Valid arguments to include in this environment variable: +First run `build.sh` to regenerate updated `ltsXX/work/constraints.yaml` and `ltsXX/work/snapshot-incomplete.yaml` files. -* `--constraint` to modify an upper or lower bound -* `--add-package` to add a brand new package -* `--expect-test-failure` to expect tests to fail -* `--expect-haddock-failure` to expect haddocks to fail -* `--expect-bench-failure` to expect benchmarks to fail +For an LTS minor bump, you'll typically want to: + +* Add constraints to package `range:` fields _under_ the `source:` field in that `constraints.yaml`, and edit `snapshot-incomplete.yaml` to change the version used for that package, if necessary. +* 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.sh` to build the generate an updated snapshot. 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 @@ -320,7 +327,7 @@ if one needs to revert one package, say due to a build or test regression, one can edit `current-plan.yaml` and updated the SHA256 hash of the .cabal file, to avoid having to rebuild everything again.) -Note LTS builds inherit the current Hackage data (stack updated for Nigthly) to avoid excess extra rebuilding. +Note LTS builds without NOPLAN will use the latest Hackage data. ### Timing @@ -331,11 +338,17 @@ early and hopefully the nightlies will be timely. LTS minor bumps typically are run on Sundays. -### Website sync debugging (and other out of disk space errors) +### Diskspace errors (and website sync debugging) -* You can detect the problem by running `df`. If you see that `/` is out of space, we have a problem -* (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 +* 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: + * run `./etc/diskspace/clean-old-stack-libs.sh [nightly|lts-XX]` + * If that is insufficient then remove all the old builds under the previous ghc/Cabal version: + * `rm -r /var/stackage/stackage/automated/work/[nightly|lts-XX]/unpack-dir/unpacked/*/.stack-work/dist/x86_64-linux/Cabal-X.Y.0.0/` + + optionally (not recommended?): + * `rm -r /var/stackage/stackage/automated/work/lts*/unpack-dir/unpacked/` + * `rm -r /var/stackage/stackage/automated/work/nightly/unpack-dir/unpacked/` ### Wiping the cache @@ -367,30 +380,30 @@ We do not run the full stackage build locally as that might take too much time. However, some steps on the other hand are much faster to do yourself, e.g. verifying constraints without building anything. -To get started, install `stackage-curator` via Git, or [the Linux binary]: +To get started, install `curator` via Git: ``` -$ git clone git@github.com:fpco/stackage-curator.git -$ cd stackage-curator && stack install +$ git clone git@github.com:commercialhaskell/curator.git +$ cd curator && stack install curator ``` -It is a good idea to upgrade `stackage-curator` at the start of your week. +It is a good idea to upgrade `curator` at the start of your week. Then, clone the stackage repo, get the latest packages and run dependency resolution: ``` $ git clone git@github.com:commercialhaskell/stackage.git -$ stack update && stackage-curator check +$ cd stackage +$ ./check ``` This can be used to make sure all version bounds are in place, including for test suites and benchmarks, to check whether bounds can be lifted, and to get [tell-me-when-its-released] notifications. -`stackage-curator` does not build anything, so you wont see any compilation +`curator` does not build anything, so you wont see any compilation errors for builds, tests and benchmarks. -[the Linux binary]: https://s3.amazonaws.com/stackage-travis/stackage-curator/stackage-curator.bz2 [tell-me-when-its-released]: https://github.com/commercialhaskell/stackage/blob/master/CURATORS.md#waiting-for-new-releases ## Adding new curators diff --git a/DATA-FLOW.md b/DATA-FLOW.md index 70532702..54c5722f 100644 --- a/DATA-FLOW.md +++ b/DATA-FLOW.md @@ -26,7 +26,7 @@ There are three inputs into the data flow: ## Travis For [various -reasons](https://www.fpcomplete.com/blog/2015/05/distributing-packages-without-sysadmin), +reasons](https://tech.fpcomplete.com/blog/2015/05/distributing-packages-without-sysadmin), we leverage Travis CI for running some processes. In particular: * [all-cabal-files](https://github.com/commercialhaskell/all-cabal-files/blob/hackage/.travis.yml) diff --git a/Dockerfile b/Dockerfile index 0b6189c7..b330e2ac 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.6.4 +ENV GHCVER 8.10.4 # 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/MAINTAINERS.md b/MAINTAINERS.md index 901e8d7f..c559231c 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -4,7 +4,7 @@ The idea behind Stackage is that, if all packages work with the newest versions * All packages are buildable and testable from Hackage. We recommend [the Stack Travis script](https://docs.haskellstack.org/en/stable/travis_ci/), which ensures a package is not accidentally incomplete. * All packages are compatible with the newest versions of all dependencies (You can find restrictive upper bounds by visiting http://packdeps.haskellers.com/feed?needle=PACKAGENAME). -* All packages in a snapshot are compatible with the versions of libraries that ship with the GHC used in the snapshot ([more information on lenient lower bounds](https://www.fpcomplete.com/blog/2014/05/lenient-lower-bounds)). +* All packages in a snapshot are compatible with the versions of libraries that ship with the GHC used in the snapshot ([more information on lenient lower bounds](https://tech.fpcomplete.com/blog/2014/05/lenient-lower-bounds)). Packages in Stackage are not patched: all package changes occur upstream in Hackage. @@ -19,26 +19,22 @@ To add your package you can edit [`build-constraints.yaml`](https://github.com/f - package2 - package3 -If your library depends on a C library, please add it to the `debian-bootstrap.sh` script. +Any dependencies of your packages that are not already part of +stackage also need to be added explicitly (When this happens you will +see `not present` errors in the CI log). As mentioned above: If you +don't maintain this package yourself it is preferable that the actual +maintainer is also the stackage maintainer, but you are allowed to add +it under your own name. -Any dependencies of your packages that are not already part of stackage are added implictly, but it is prefered -to add all packages explicitly. It is planned to remove this behaviour in the future. +If your package depends on a C library, please add it to the `debian-bootstrap.sh` script. -After doing that commit with a message like "add foo-bar" and send a pull request. +After doing that, commit with a message like "add foo-bar" and send a pull request. The continuous integration job will do some checks to see if your package's dependencies are up-to-date. The CI job notably doesn't compile packages, run tests, build documentation, or find missing C libraries. -If you want to be proactive or if CI fails, you can make sure that your package builds against the latest nightly: - -``` -# Build from the tarball on Hackage to check for missing files -$ stack unpack yourpackage && cd yourpackage-* -# Generate a pristine stack.yaml, adding any missing extra-deps -$ rm -f stack.yaml && stack init --resolver nightly --solver -# Build, generate docs, test, and build benchmarks -$ stack build --resolver nightly --haddock --test --bench --no-run-benchmarks -``` +If you want to be proactive or if CI fails, you can make sure that your package builds against the latest nightly. +See the [verify-package](https://github.com/commercialhaskell/stackage/blob/master/verify-package) script in this repository. This approach works well, but has two limitations you should be aware of: @@ -46,26 +42,11 @@ of: * It won't notify you of restrictive upper bounds in your package if Stackage has the same upper bounds. For that reason, we recommend using [Packdeps](http://packdeps.haskellers.com/) (see "Following - dependency upgrades" below). + dependency upgrades" below). You can also run `cabal outdated`. * If the latest Stackage Nightly is missing some of the latest packages, your build above may succeed whereas the Travis job may fail. Again: Packdeps will help you detect this situation. -Alternatively, you can build with `cabal`. Note that this may end up -using older dependency versions: - -``` -$ ghc --version # Should be the same as the latest nightly, it's in the title of https://www.stackage.org/nightly -$ cabal update -$ cabal get PACKAGE -$ cd PACKAGE-* -$ cabal sandbox init # Should give "Creating a new sandbox" and not "Using an existing sandbox". -$ cabal install --enable-tests --enable-benchmarks --dry-run | grep latest # Should give no results -$ cabal install --enable-tests --enable-benchmarks --allow-newer -$ cabal test -$ cabal haddock -``` - ## Github and Notifications Stackage uses Github notifications to reduce overhead of contacting individual @@ -114,7 +95,7 @@ is decided on a case-by-case basis. * If there are real breaking changes, the curator team will retain more discretion on how long a window to give before dropping packages. -* We usually drop all upper bounds and disable packages when we create +* We typically drop upper bounds and disable conflicting packages in Nightly after we create a new Long Term Support (LTS) major version. * There are rare cases where an upper bound or build failure are hard to deal with so then we may disable @@ -158,8 +139,8 @@ Note that it is _not_ a goal of LTS Haskell to track the latest version of GHC. If you want the latest and greatest, Stackage Nightly is your best bet. In particular, LTS Haskell will often—but not always—avoid upgrading to the first point release of GHC -releases (e.g., 8.2.1) to allow further testing and to get the -benefits of the first bugfix release (e.g., 8.2.2). +releases (e.g., 8.x.1) to allow further testing and to get the +benefits of the first bugfix release (e.g., 8.x.2). ## Adding a package to an LTS snapshot @@ -169,20 +150,16 @@ ending in `.0`), the package set is taken from Stackage Nightly. Therefore, by following the above steps, you can get your package into the next major LTS Haskell release. -If you would like to get your package added to an existing LTS Haskell major -release (e.g., if `lts-8.9` is out, you would want your package to appear in -`lts-8.10`), please do the following in addition to the steps above: +If you would like to get your package added to the current LTS Haskell +major release, please do the following in addition to the steps for Nightly described earlier: -* Check that your package can be built with that LTS major version (e.g. `stack build --test --bench --haddock --resolver lts-8.10`) +* Check that your package can be built with the current LTS version (e.g. `stack build --test --bench --haddock --resolver lts`) * Open up a new issue on the [lts-haskell repo](https://github.com/fpco/lts-haskell/issues/new) - * Specify the LTS major versions you would like your packages to go into (e.g. lts-8) * Provide a list of packages you would like added * If relevant, mention any upper bounds that are needed on those packages * Be patient! The LTS releases are less frequent than Nightly. The Stackage curators will try to get to your issue as soon as possible, but it may take some time. -* We gradually stop maintaining old LTS major versions, so your - request may take longer or be declined if it's for an old LTS. ## LTS package guarantees and exceptions diff --git a/README.md b/README.md index e68ec5ce..ed1c29ce 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,16 @@ stackage ======== - -[![Build Status](https://travis-ci.org/commercialhaskell/stackage.svg?branch=master)](https://travis-ci.org/commercialhaskell/stackage) +[![check](https://github.com/commercialhaskell/stackage/actions/workflows/check.yml/badge.svg)](https://github.com/commercialhaskell/stackage/actions/workflows/check.yml) [![Join the chat at https://gitter.im/commercialhaskell/stackage](https://badges.gitter.im/commercialhaskell/stackage.svg)](https://gitter.im/commercialhaskell/stackage?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -"Stable Hackage": creating a vetted set of packages from Hackage. -This repository is for package authors and maintainers to get their packages into Stackage. +Stable sets of Haskell Packages from Hackage + +_This repository is for package authors and maintainers to get their packages into Stackage._ + If you simply want to use Stackage as an end user, please follow the instructions on [https://www.stackage.org/](https://www.stackage.org). -We strongly recommend using the Haskell tool stack for doing builds, which -includes built-in Stackage support: [stack](https://github.com/commercialhaskell/stack) [![Build Status](https://dev.azure.com/commercialhaskell/stack/_apis/build/status/commercialhaskell.stack?branchName=master)](https://dev.azure.com/commercialhaskell/stack/_build/latest?definitionId=1?branchName=master). - +We strongly recommend using the Haskell [stack](https://github.com/commercialhaskell/stack) tool for doing builds, which +includes built-in Stackage support. Add your package ---------------- @@ -20,12 +20,12 @@ We welcome all packages, provided: * The package author/maintainer agrees to the [maintainers agreement](https://github.com/commercialhaskell/stackage/blob/master/MAINTAINERS.md). * The package is buildable and testable from Hackage. We recommend [the Stack Travis script](https://docs.haskellstack.org/en/stable/travis_ci/), which ensures a package is not accidentally incomplete. * The package is compatible with the newest versions of all dependencies (You can find restrictive upper bounds by visiting http://packdeps.haskellers.com/feed?needle=PACKAGENAME). -* The package is compatible with the versions of libraries that ship with GHC ([more information on lenient lower bounds](https://www.fpcomplete.com/blog/2014/05/lenient-lower-bounds)). +* The package is compatible with the versions of libraries that ship with GHC ([more information on lenient lower bounds](https://tech.fpcomplete.com/blog/2014/05/lenient-lower-bounds)). Full details on how to add and test a package can be found in the [maintainers agreement](https://github.com/commercialhaskell/stackage/blob/master/MAINTAINERS.md#adding-a-package). __NOTE__: There is an approximate 30 minute delay between a package uploading -to Hackage and being available to the Travis build script to check upper +to Hackage and being available to the Github workflow action to check upper bounds. If a pull request is marked as failed due to using an older version, please close and reopen the PR to retrigger a Travis build. @@ -36,24 +36,14 @@ The Stackage project consists of multiple repositories. This repository contains the metadata on packages to be included in future builds and some project information. In addition, we have the following repositories: -* [stackage-server](https://github.com/fpco/stackage-server) [![Build Status](https://travis-ci.org/fpco/stackage-server.svg?branch=master)](https://travis-ci.org/fpco/stackage-server) -* [stackage-curator](https://github.com/fpco/stackage-curator) [![Build Status](https://travis-ci.org/fpco/stackage-curator.svg?branch=master)](https://travis-ci.org/fpco/stackage-curator) -* [lts-haskell](https://github.com/fpco/lts-haskell) -* [stackage-nightly](https://github.com/fpco/stackage-nightly) - -We also support some add-on tools to cabal-install to make its usage with -Stackage both easier and more secure: - -* [stackage-cli](https://github.com/fpco/stackage-cli) [![Build Status](https://travis-ci.org/fpco/stackage-cli.svg?branch=master)](https://travis-ci.org/fpco/stackage-cli) -* [stackage-update](https://github.com/fpco/stackage-update) [![Build Status](https://travis-ci.org/fpco/stackage-update.svg?branch=master)](https://travis-ci.org/fpco/stackage-update) -* [stackage-upload](https://github.com/fpco/stackage-upload) [![Build Status](https://travis-ci.org/fpco/stackage-upload.svg?branch=master)](https://travis-ci.org/fpco/stackage-upload) -* [stackage-install](https://github.com/fpco/stackage-install) [![Build Status](https://travis-ci.org/fpco/stackage-install.svg?branch=master)](https://travis-ci.org/fpco/stackage-install) -* [stackage-build-plan](https://github.com/fpco/stackage-build-plan) [![Build Status](https://travis-ci.org/fpco/stackage-build-plan.svg?branch=master)](https://travis-ci.org/fpco/stackage-build-plan) +* [stackage-server](https://github.com/fpco/stackage-server) [![Base image](https://github.com/fpco/stackage-server/actions/workflows/base.yml/badge.svg)](https://github.com/fpco/stackage-server/actions/workflows/base.yml) +* [curator](https://github.com/commercialhaskell/curator) [![Build Status](https://travis-ci.org/fpco/stackage-curator.svg?branch=master)](https://travis-ci.org/fpco/stackage-curator) +* [lts-haskell](https://github.com/commercialhaskell/lts-haskell) +* [stackage-snapshots](https://github.com/commercialhaskell/stackage-snapshots/) Curious how it all fits together? See the [Stackage data flow](https://github.com/commercialhaskell/stackage/blob/master/DATA-FLOW.md). - Build the package set --------------------- @@ -88,6 +78,17 @@ The following describes at a high level the series of steps for processing Frequently Asked Questions -------------------------- +__Why is Stackage LTS still on an older version of GHC?__ + +Typically it takes some months from a new major ghc release before +the Haskell ecosystem supports it fully enough that we can push it +to a new stable Stackage major version release. There can also be +ghc regressions that hold up a LTS major release. + +The lag for minor ghc releases should be less +but it still requires extra work and there is usually some delay - this also +allows for some community testing before updating LTS. + __Why does Stackage have an older version of a package than Hackage?__ There are a number of answers to this question: @@ -109,14 +110,14 @@ There are a number of answers to this question: and packages depending on them - are fixed to GHC versions. Common examples of this are containers and transformers. There's a lot more information on this in - [an FP Complete blog post](https://www.fpcomplete.com/blog/2014/05/lenient-lower-bounds) + [an FP Complete blog post](https://tech.fpcomplete.com/blog/2014/05/lenient-lower-bounds) __How long do you maintain an LTS build?__ We only guarantee that we will maintain a single LTS major version at a time, and that it will be maintained for at least three months. This is the -[originally proposed support window](https://www.fpcomplete.com/blog/2014/12/backporting-bug-fixes), +[originally proposed support window](https://tech.fpcomplete.com/blog/2014/12/backporting-bug-fixes), and hasn't changed since then. That said, we do maintain the capability to keep multiple LTS runs @@ -126,4 +127,16 @@ trying to push out the bounds a bit farther. __What time are Stackage snapshots published?__ -Stackage Nightly and LTS are not released at a fixed time of day, they get pushed to stackage.org (and the metadata to the stackage-nightly and stackage-lts github repos) when their builds finish on the Stackage build server and the latest built haddocks have been synced over. This time varies greatly depending on build times for package updates, bounds breakage, problems with new packages being added and other build issues, etc. There are days when a release does not happen. LTS releases tend to happen over the weekend or early in the week. +Stackage Nightly and LTS are not released at a fixed time of day, they get +pushed to stackage.org (and the metadata to the stackage-nightly and +stackage-lts github repos) when their builds finish on the Stackage build +server and the latest built haddocks have been synced over. This time varies +greatly depending on build times for package updates, bounds breakage, +problems with new packages being added and other build issues, etc. There are +days when a release does not happen. LTS releases tend to happen over the +weekend or early in the week. + +__Where to get help regarding uploading packages?__ + +Please ask on [Gitter](https://gitter.im/commercialhaskell/stackage) or open +an issue or comment on the PR which uploads the package. 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.sh b/automated/build.sh index c2b21131..d1965b99 100755 --- a/automated/build.sh +++ b/automated/build.sh @@ -1,11 +1,11 @@ #!/usr/bin/env bash -set -eu +x +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,47 +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 -PLAN_FILE=current-plan.yaml -DOCMAP_FILE=current-docmap.yaml - -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 -SSH_DIR=$ROOT/ssh-$SHORTNAME +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/work/ssh USERID=$(id -u) mkdir -p \ - "$CABAL_DIR" \ + "$PANTRY_DIR" \ "$STACK_DIR" \ - "$GHC_DIR" \ "$DOT_STACKAGE_DIR" \ "$WORKDIR" \ - "$EXTRA_BIN_DIR" \ "$SSH_DIR" -GITCONFIG=$ROOT/gitconfig +GITCONFIG=$ROOT/work/gitconfig cat >$GITCONFIG <$SSH_DIR/known_hosts < curator +chmod +x curator +echo -n "curator version: " +docker run --rm -v $(pwd)/curator:/exe $IMAGE /exe --version + +curl -L https://github.com/commercialhaskell/stack/releases/download/v2.5.1/stack-2.5.1-linux-x86_64-bin > stack +#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 ) -ARGS_COMMON="--rm -v $WORKDIR:$HOME/work -w $HOME/work -v $BINDIR/stackage-curator:/usr/bin/stackage-curator:ro -v /etc/passwd:/etc/passwd:ro -v /etc/group:/etc/group:ro -v $EXTRA_BIN_DIR/stack:/usr/bin/stack:ro" -ARGS_PREBUILD="$ARGS_COMMON -u $USERID -e HOME=$HOME -v $CABAL_DIR:$HOME/.cabal -v $STACK_DIR:$HOME/.stack -v $GHC_DIR:$HOME/.ghc -v $DOT_STACKAGE_DIR:$HOME/.stackage" -ARGS_BUILD="$ARGS_COMMON -v $CABAL_DIR:$HOME/.cabal:ro -v $STACK_DIR:$HOME/.stack:ro -v $GHC_DIR:$HOME/.ghc:ro" -ARGS_UPLOAD="$ARGS_COMMON -u $USERID -e HOME=$HOME -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY -v $AUTH_TOKEN:/auth-token:ro -v $HACKAGE_CREDS:/hackage-creds:ro -v $DOT_STACKAGE_DIR:$HOME/.stackage -v $SSH_DIR:$HOME/.ssh:ro -v $GITCONFIG:$HOME/.gitconfig:ro -v $CABAL_DIR:$HOME/.cabal:ro -v $STACK_DIR:$HOME/.stack:ro" +# We share pantry directory between snapshots while the other content in .stack +# 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 $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 -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 @@ -91,11 +91,9 @@ ARGS_UPLOAD="$ARGS_COMMON -u $USERID -e HOME=$HOME -e AWS_ACCESS_KEY_ID=$AWS_ACC # below for why this is safe.) if [ $SHORTNAME = "lts" ] then - docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "exec stackage-curator check-target-available --target $TARGET" + docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "exec curator check-target-available --target $TARGET" fi -# Get latest stack -curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C $EXTRA_BIN_DIR '*/stack' # Determine the new build plan unless NOPLAN is set # @@ -105,18 +103,20 @@ if [ "${NOPLAN:-}x" = "x" ] then if [ $SHORTNAME = "lts" ] then - docker run $ARGS_PREBUILD $IMAGE /bin/bash -c "exec stackage-curator create-plan --plan-file $PLAN_FILE --target $TARGET ${CONSTRAINTS:-}" + docker run $ARGS_PREBUILD $IMAGE /bin/bash -c "curator constraints --target $TARGET && curator snapshot-incomplete --target $TARGET && curator snapshot" else - docker run $ARGS_PREBUILD $IMAGE /bin/bash -c "stack update && exec stackage-curator create-plan --plan-file $PLAN_FILE --target $TARGET ${CONSTRAINTS:-}" + 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-incomplete --target $TARGET && curator snapshot" fi + # Do the rest of the pre-build actions: # -# * Check that the plan is valid -# * 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 "stackage-curator check --plan-file $PLAN_FILE && stackage-curator fetch --plan-file $PLAN_FILE && cd /tmp && exec stack unpack random" +# * Check that the snapshot is valid +# * Fetch and unpack all needed tarballs (the build step does not have write access to the tarball directory) +docker run $ARGS_PREBUILD $IMAGE /bin/bash -c 'GHCVER=$(sed -n "s/^ghc-version: \(.*\)/\1/p" constraints.yaml) && stack setup ghc-$GHCVER --verbosity=error && stack exec --resolver=ghc-$GHCVER curator check-snapshot && curator unpack' case $SHORTNAME in lts) JOBS=1 ;; @@ -126,22 +126,32 @@ esac # 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 nice -n 15 /bin/bash -c "chown $USER $HOME && exec sudo -E -u $USER env \"HOME=$HOME\" \"PATH=\$PATH\" stackage-curator make-bundle --jobs $JOBS --plan-file $PLAN_FILE --docmap-file $DOCMAP_FILE --target $TARGET" +docker run $ARGS_BUILD $IMAGE nice -n 15 /bin/bash -c "chown $USER $HOME && exec sudo -E -u $USER env \"HOME=$HOME\" \"PATH=\$PATH\" curator build --jobs $JOBS" 2>&1 | tee "$SHORTNAME-build.log" # Make sure we actually need this snapshot. We used to perform this check # exclusively before building. Now we perform it after as well for the case of # nightly, where we don't perform this check beforehand. This is also slightly # safer, in case someone else already uploaded a specific snapshot while we # were building. -docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "exec stackage-curator check-target-available --target $TARGET" +docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "exec curator check-target-available --target $TARGET" # Successful build, so we need to: # # * Upload the docs to S3 -# * Upload the 00-index.tar file to S3 (TODO: this is probably no longer necessary, since snapshots never modify .cabal files) -# * Upload the new plan .yaml file to the appropriate Github repo -# * Register as a new Hackage distro -docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "stackage-curator upload-docs --target $TARGET && stackage-curator upload-index --plan-file $PLAN_FILE --target $TARGET && stackage-curator upload-github --plan-file $PLAN_FILE --docmap-file $DOCMAP_FILE --target $TARGET && exec stackage-curator hackage-distro --plan-file $PLAN_FILE --target $TARGET" +# * Upload the new snapshot .yaml file to the appropriate Github repo, also upload its constraints +docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "curator upload-docs --target $TARGET && curator upload-github --target $TARGET" + +# fixed in https://github.com/commercialhaskell/curator/pull/24 +docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "exec curator hackage-distro --target $TARGET" + +# Build and push docker image fpco/stack-build & fpco/stack-build-small for current release + +if [ $SHORTNAME = "lts" ] +then + $ROOT/dockerfiles/build.sh $TARGET + $ROOT/dockerfiles/build.sh --push $TARGET + $ROOT/dockerfiles/build.sh --push --small $TARGET +fi echo -n "Completed at " date 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..b310841b --- /dev/null +++ b/automated/dockerfiles/build.sh @@ -0,0 +1,177 @@ +#!/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 +# + +if [[ ! -x "$HOME/.local/bin/jq" ]]; then + mkdir -p $HOME/.local/bin + if [[ "$(uname)" = "Darwin" ]]; then + curl -o $HOME/.local/bin/jq -L https://github.com/stedolan/jq/releases/download/jq-1.6/jq-osx-amd64 + else + curl -o $HOME/.local/bin/jq -L https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64 + fi + chmod +x $HOME/.local/bin/jq +fi + +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-16.0/Dockerfile b/automated/dockerfiles/lts-16.0/Dockerfile new file mode 100644 index 00000000..7588bfa9 --- /dev/null +++ b/automated/dockerfiles/lts-16.0/Dockerfile @@ -0,0 +1,90 @@ +FROM ubuntu:18.04 + +LABEL maintainer="manny@fpcomplete.com" + +ARG GHC_VERSION=8.8.3 +ARG LTS_SLUG=lts-16.0 +ARG PID1_VERSION=0.1.2.0 +ARG STACK_VERSION=2.3.1 +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=1afd08ff0a3c3627f17eb1b928d35f337db40e08 + +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-16.12/Dockerfile b/automated/dockerfiles/lts-16.12/Dockerfile new file mode 100644 index 00000000..ad0d1ffb --- /dev/null +++ b/automated/dockerfiles/lts-16.12/Dockerfile @@ -0,0 +1,90 @@ +FROM ubuntu:18.04 + +LABEL maintainer="manny@fpcomplete.com" + +ARG GHC_VERSION=8.8.4 +ARG LTS_SLUG=lts-16.12 +ARG PID1_VERSION=0.1.2.0 +ARG STACK_VERSION=2.3.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=1afd08ff0a3c3627f17eb1b928d35f337db40e08 + +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-16.8/Dockerfile b/automated/dockerfiles/lts-16.8/Dockerfile new file mode 100644 index 00000000..901e702c --- /dev/null +++ b/automated/dockerfiles/lts-16.8/Dockerfile @@ -0,0 +1,3 @@ +FROM $DOCKER_REPO:lts-16.0 +ARG STACK_VERSION=2.3.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-17.0/Dockerfile b/automated/dockerfiles/lts-17.0/Dockerfile new file mode 100644 index 00000000..61c5d09d --- /dev/null +++ b/automated/dockerfiles/lts-17.0/Dockerfile @@ -0,0 +1,90 @@ +FROM ubuntu:18.04 + +LABEL maintainer="manny@fpcomplete.com" + +ARG GHC_VERSION=8.8.3 +ARG LTS_SLUG=lts-17.0 +ARG PID1_VERSION=0.1.2.0 +ARG STACK_VERSION=2.5.1 +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=1afd08ff0a3c3627f17eb1b928d35f337db40e08 + +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-17.3/Dockerfile b/automated/dockerfiles/lts-17.3/Dockerfile new file mode 100644 index 00000000..0c177b89 --- /dev/null +++ b/automated/dockerfiles/lts-17.3/Dockerfile @@ -0,0 +1,90 @@ +FROM ubuntu:18.04 + +LABEL maintainer="manny@fpcomplete.com" + +ARG GHC_VERSION=8.8.4 +ARG LTS_SLUG=lts-17.3 +ARG PID1_VERSION=0.1.2.0 +ARG STACK_VERSION=2.5.1 +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=1afd08ff0a3c3627f17eb1b928d35f337db40e08 + +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 66460b37..00000000 --- a/automated/new-stackage-format/convert.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env bash - -set -eux - -if [[ ! -f convert ]] -then - curl https://s3.amazonaws.com/michael.snoyman.com/convert-old-stackage-22f85f4829da949df601f2facf2d9b8c794232cf.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 - -./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 adb03b0e..9f21bd98 100755 --- a/automated/run-nightly.sh +++ b/automated/run-nightly.sh @@ -6,9 +6,6 @@ while true; do ./build.sh nightly-$(date -u +%F) date - ./new-stackage-format/convert.sh - date - sleep 30m echo done diff --git a/build-constraints.yaml b/build-constraints.yaml index 0299aefe..c26edba8 100644 --- a/build-constraints.yaml +++ b/build-constraints.yaml @@ -1,27 +1,197 @@ -ghc-major-version: "8.6" +ghc-major-version: "8.10" # new curator is supposed to use exact GHC version -ghc-version: "8.6.4" +ghc-version: "8.10.4" # This affects which version of the Cabal file format we allow. We # should ensure that this is always no greater than the version # supported by the most recent cabal-install and Stack releases. -cabal-format-version: "2.4" +cabal-format-version: "3.0" # Constraints for brand new builds packages: + "Lukas Epple @sternenseemann": + - socket + - spacecookie + - gopher-proxy + - filepath-bytestring + - download-curl + + "James Sully @sullyj3": + - buttplug-hs-core + + "Manuel Schneckenreither @schnecki": + - experimenter + - api-maker + + "Kamil Dworakowski @luntain": + - error-or + - error-or-utils + - inbox + - mock-time + + "Liang-Ting Chen @L-TChen": + - geniplate-mirror + + "Andreas Abel @andreasabel": + - BNFC + - STMonadTrans + - Agda + - agda2lagda + - ListLike + - haskell-src + - fix-whitespace + - hs-tags + + "Diogo Biazus ": + - hasql-notifications + + "David James @davjam": + - MapWith + + "Bernie Pope @bjpop": + - language-python + + "Nils Alex @nilsalex": + - safe-tensor + + "Artur Gajowy @ArturGajowy": + - ghc-clippy-plugin < 0 # dhall, https://github.com/commercialhaskell/stackage/issues/5753 + + "Daniel Rolls @danielrolls": + - byte-count-reader + + "Allan Lukwago @epicallan": + - servant-errors + + "Christian Charukiewicz @charukiewicz": + - isbn + + "Koz Ross @kozross": + - medea + + "Ashlynn Anderson @lambdadog": + - proto3-wire + + "Marcin Rzeźnicki @marcin-rzeznicki": + - hspec-tables + - stackcollapse-ghc + - libjwt-typed + + "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 + - mainland-pretty + - ref-fd + - srcloc + - symbol + + "Patrick Bahr ": + - equivalence + - compdata + - Rattus + + "Rob Stewart @robstewart57": + - gitlab-haskell + + "Callan McGill @callanmcgill": + - perfect-vector-shuffle + + "Luke Clifton @luke-clifton": + - generic-monoid + + "Tobias Reinhart @TobiReinhart": + - sparse-tensor + + "Stephan Schiffels @stschiff": + - sequence-formats + - pipes-ordered-zip + - sequenceTools + + "YongJoon Joe @QuietJoon": + - doldol + - ENIG + + "Chris Penner @ChrisPenner": + - eve + - lens-regex-pcre + - lens-csv + - selections + - slick + - unipatterns + + "Emily Pillmore @topos": + - base16 + - base16-lens + - base32 + - base32-lens + - base64 + - base64-lens + - lens-process + - microlens-process + - nonempty-vector + - smash + - smash-aeson + - smash-microlens + - smash-lens + - strict-tuple + - strict-tuple-lens < 0.2 # via `lens-5` + + "Matthieu Monsch @mtth": + - flags-applicative + - more-containers + - tracing < 0 # base16-bytestring 1.0.0.0 + + "Robert Vollmert @robx": + - configurator-pg + - postgrest + + "Sandy Maguire @isovector": + - ecstasy + - interpolatedstring-qq2 < 0 # via template-haskell-2.15.0.0 + - prospect + - do-notation + - unagi-chan + - type-errors + + "Matej Niznik @TheMatten": + - polysemy + - polysemy-plugin + - polysemy-zoo < 0 # via hedis + - loopbreaker < 0 # ghc 8.10 + + "William Yao @williamyaoh": + - string-interpolate + + "Roel van Dijk @roelvandijk": + - terminal-progress-bar "Marek Fajkus @turboMaCk": - wai-enforce-https + - aeson-combinators "Fernando Freire @dogonthehorizon": [] - # - hal # https://github.com/commercialhaskell/stackage/issues/4288 + # - hal # #4288/closed - "Daniel Taskoff @leohaskell": + "Daniel Taskoff @dtaskoff": + - hlibcpuid - skip-var + - system-info "Dzianis Kabanau @kobargh": - - template-toolkit + - template-toolkit < 0 # via regex-pcre-builtin "Christopher Davenport @ChristopherDavenport": - nonemptymap @@ -31,26 +201,34 @@ packages: - rosezipper "Edward Wastell @edwardwas": - - TotalMap - - sized-grid + - TotalMap < 0 # via base-4.13.0.0 + - sized-grid < 0 # via base-4.13.0.0 "Antonio Alonso Dominguez @alonsodomin": - - hschema - - hschema-aeson - - hschema-quickcheck - - hschema-prettyprinter + - hschema < 0 # via natural-transformation + - hschema-aeson < 0 # via hschema & hschema-prettyprinter & hschema-quickcheck + - hschema-prettyprinter < 0 # via natural-transformation + - hschema-quickcheck < 0 # via hschema "Preetham Gujjula @pgujjula": - modular + - list-predicate + + "Guillaume Bouchard @guibou": + - krank + - pretty-terminal + - PyF "Erik Schnetter @eschnett": - mpi-hs + - mpi-hs-binary + - mpi-hs-cereal "Yang Bo @Atry": - control-dsl "Laurent P. René de Cotret @LaurentRDC": - - pandoc-pyplot + - pandoc-plot "Andrew Newman @andrewfnewman": - geojson @@ -59,7 +237,7 @@ packages: - parsec-numbers "Joshua Grosso @jgrosso": - - axel + - axel < 0 # https://github.com/axellang/axel/issues/24 "Varun Gandhi @theindigamer": - edit < 0 @@ -68,17 +246,22 @@ packages: - valor "Scott N. Walck @walck": - - cyclotomic < 0 - - learn-physics < 0 + - cyclotomic + - learn-physics + - TypeCompose + + # @ghorn + - not-gloss + - spatial-math "Phil de Joux @philderbeast": - siggy-chardust - - detour-via-sci + - detour-via-sci < 0 # ghc 8.10 - hpack-dhall "Matthew Ahrens @mpahrens": - forkable-monad - - butter + - butter < 0 # MonadFail "Iris Ward @AdituV": - typenums @@ -91,19 +274,26 @@ packages: "Manuel Bärenz @turion": - dunai - - rhine < 0 - - rhine-gloss < 0 - - dunai-core + - rhine + - rhine-gloss - finite-typelits + - essence-of-live-coding + - essence-of-live-coding-gloss + - essence-of-live-coding-pulse + - essence-of-live-coding-quickcheck + - pulse-simple + - simple-affine-space "Paul Johnson @PaulJohnson": - - geodetics + - geodetics < 0 # transitive compilation failure + - Ranged-sets "Travis Athougies @tathougies": - - beam-core - - beam-migrate - - beam-sqlite - - beam-postgres + - beam-core < 0 # via vector-sized-1.4.0.0 + - beam-migrate < 0 # via dependent-map-0.3 & dependent-sum-0.6.2.0 + - beam-mysql < 0 # via beam-core + - beam-postgres < 0 # via beam-core + - beam-sqlite < 0 # via beam-core "Fraser Murray @thomasjm": - - aeson-typescript + - aeson-typescript < 0 # th-abstraction-0.3 + - fsnotify + - sandwich + - sandwich-quickcheck + - sandwich-slack + - sandwich-webdriver + - slack-progressbar "Paulo Tanaka @paulot": # on behalf of Bryan O'Sullivan @bos: @@ -131,7 +327,7 @@ packages: # - sessiontypes-distributed # lens 4.16 via diagrams "Jacob Thomas Errington @tsani": - - servant-github-webhook < 0 + - servant-github-webhook < 0 # base16-bytestring via github - pushbullet-types "Theodore Lief Gannon @tejon": @@ -163,10 +359,10 @@ packages: "Maarten Faddegon @MaartenFaddegon": - libgraph - - Hoed + - Hoed < 0 # via regex-tdfa-text "Agustin Camino @acamino": - - state-codes + - state-codes < 0 # via shakespeare "Sebastian Mihai Ardelean @ardeleanasm": - qchas @@ -175,10 +371,11 @@ packages: - mercury-api - normalization-insensitive < 0 # GHC 8.4 via unicode-transforms - "Jacob Stanley @jystic": + "Jacob Stanley @jacobstanley": - hedgehog - hedgehog-quickcheck - transformers-bifunctors + - unix-compat "Walter Schulze @awalterschulze": - katydid < 0 # via transformers-either @@ -186,44 +383,39 @@ packages: "Nobutada Matsubara @matsubara0507": - chatwork < 0 - rakuten < 0 - - servant-kotlin + - servant-kotlin < 0 # via containers-0.6.2.1 "Pavol Klacansky @pavolzetor": - openexr-write "Pasqualino Assini @tittoassini": - # - zm # haskell-src-exts via derive - # - flat # haskell-src-exts via derive - - model < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build + # - zm + - flat + - model "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 - - componentm-devel - - teardown + - componentm < 0 # transitive compilation failure + - componentm-devel < 0 # transitive compilation failure + - teardown < 0 # compilation failure - etc - - capataz + - capataz < 0 # transitive compilation failure "Richard Cook @rcook": - - hidden-char - - oset - - req-url-extra - - sexpr-parser + - hidden-char < 0 # via base-4.13.0.0 + - oset < 0 # via base-4.13.0.0 + - req-url-extra < 0 # req < 2.1.0 + - sexpr-parser < 0 # via base-4.13.0.0 - "Vanessa McHale @vmchale": - - tibetan-utils < 0 + "Vanessa McHale @vmchale": + - bz2 "Henning Thielemann @thielema": - accelerate-arithmetic < 0 # GHC 8.4 via accelerate @@ -236,7 +428,9 @@ packages: - apportionment - audacity - bibtex + - board-games - buffer-pipe + - cabal-flatpak - calendar-recycling - checksum - combinatorial @@ -249,6 +443,9 @@ packages: - data-accessor-template - data-accessor-transformers - data-ref + - doctest-exitcode-stdio + - doctest-extract + - doctest-lib - dsp - enumset - equal-files @@ -256,7 +453,7 @@ packages: - explicit-exception - fixed-length - gnuplot - - group-by-date < 0 # build failure with GHC 8.4 via hsshellscript + - group-by-date - guarded-allocation - iff - interpolation @@ -265,7 +462,7 @@ packages: - lazyio - markov-chain - midi - # - midi-music-box # lens 4.16 via diagrams + - midi-music-box < 0 # via diagrams-lib - mbox-utility - med-module - monoid-transformer @@ -279,6 +476,7 @@ packages: - sample-frame - sample-frame-np - set-cover + - shell-utility - sox - soxlib - spreadsheet @@ -314,7 +512,12 @@ packages: - resistor-cube - linear-circuit # Not a maintainer + - cabal-plan + - topograph - ix-shapable + - hsshellscript + - hyper + - storable-endian "Jeremy Barisch-Rooney @barischrooneyj": - threepenny-gui-flexbox < 0 # GHC 8.4 via clay @@ -324,91 +527,114 @@ packages: "Nikita Tchayka @nickseagull": - ramus - - require - - tintin - - aws-lambda-haskell-runtime + - require < 0 # via universum + - tintin < 0 # via universum + # - aws-lambda-haskell-runtime # https://github.com/commercialhaskell/stackage/pull/4299 "Simon Jakobi @sjakobi": - path - - present + - present < 0 # MonadFail - threepenny-gui - snap-server - newtype-generics - bsb-http-chunked - - coercible-utils + - coercible-utils < 0 # ghc 8.10 + - hspec-parsec + - checkers + - hnix < 0 + - hashing + - hnix-store-core < 0 # https://github.com/commercialhaskell/stackage/issues/5872 + - monadlist + - ref-tf + - unordered-containers + - prettyprinter + - prettyprinter-ansi-terminal + - prettyprinter-compat-wl-pprint + - prettyprinter-compat-ansi-wl-pprint + - prettyprinter-compat-annotated-wl-pprint + - prettyprinter-convert-ansi-wl-pprint "Joe M @joe9": - - logger-thread + - logger-thread < 0 # via protolude - text-generic-pretty < 0 # GHC 8.4 via ixset-typed "Li-yao Xia @Lysxia": + - ap-normalize - boltzmann-samplers - first-class-families - generic-data - generic-data-surgery + - generic-functor - generic-random - scanf - show-combinators - type-map + - quickcheck-higherorder + - test-fun "Tobias Dammers @tdammers": - - ginger < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build - - yeshql + - ginger + - yeshql < 0 # via yeshql-hdbc "Yair Chuchem @yairchu": + - generic-constraints - List - ListTree - "Luke Murphy @lwm": - - tasty-discover - "Marco Zocca @ocramz": - sparse-linear-algebra + - depq - matrix-market-attoparsec - - mwc-probability-transition - - network-multicast + - mwc-probability-transition < 0 # via logging-effect - xeno - - plot-light - - datasets + - bytestring-mmap # required by xeno + - datasets < 0 # via req - lucid-extras - rigel-viz "Joseph Canero @caneroj1": - - sqlite-simple-errors + - sqlite-simple-errors < 0 # via text-1.2.4.0 - median-stream - stm-supply < 0 # GHC 8.4 via Unique - - filter-logger + - filter-logger < 0 # via scotty & wai-logger - tile - - mbtiles + - mbtiles < 0 # via sqlite-simple "James M.C. Haver II @mchaver": - quickcheck-arbitrary-adt - hspec-golden-aeson + - quickcheck-arbitrary-template < 0 # via template-haskell-2.15.0.0 "Winter Han @winterland1989": - if - - tcp-streams - - tcp-streams-openssl - - wire-streams + - tcp-streams < 0 # via test-framework + - tcp-streams-openssl < 0 # via tcp-streams & network + - wire-streams < 0 # via io-streams - binary-parsers - binary-ieee754 - word24 - - mysql-haskell + - mysql-haskell < 0 # via memory-0.15.0 - mysql-haskell-openssl < 0 - data-has - unboxed-ref "Harendra Kumar @harendra-kumar": - - monad-recorder + - bench-show < 0 # via optparse-applicative-0.15.1.0 + - monad-recorder < 0 # compilation failure - packcheck - streamly - unicode-transforms - - xls + - xls < 0 # https://github.com/harendra-kumar/xls/issues/7 + + "Pranay Sashank @pranaysashank": + - fusion-plugin-types + - fusion-plugin "Aleksey Uimanov @s9gf4ult": - # - postgresql-query # haskell-src-exts via derive - - hreader - - hset + # - postgresql-query # build errors + - hreader < 0 # via hset + - hset < 0 # via type-fun + - base58-bytestring "Aaron Taylor @hamsterdam": - kawhi @@ -424,32 +650,32 @@ packages: - symengine "alpheccar @alpheccar": - - HPDF + - HPDF < 0 # compilation failure "Dmitry Bogatov @iu-guest": - once - - mbug + - mbug < 0 # via http-client-0.6.1 "David Johnson @dmjio": - - miso + - miso < 0 # ghc 8.10 via servant - envy - - s3-signer + - s3-signer < 0 # via http-types # - google-translate # servant 0.12 # - hackernews # servant 0.12 - ses-html - # - stripe-haskell # free 5 - # - stripe-http-streams # free 5 - - stripe-core < 0 # via aeson-1.3.1.0 + - stripe-haskell + - stripe-http-client + - stripe-core + - stripe-tests "Piotr Mlodawski @pmlodawski": - - error-util + - error-util < 0 # MonadFail - signal "Michael Snoyman michael@snoyman.com @snoyberg": - bzlib-conduit - - mega-sdist - case-insensitive - - classy-prelude-yesod + - classy-prelude-yesod < 0 # aeson 1.5 via yesod - conduit-combinators - conduit-extra - hebrew-time @@ -458,21 +684,25 @@ packages: - mime-mail-ses - mime-types - network-conduit-tls - - persistent + - persistent < 2.12.0.0 || > 2.12.0.0 - persistent-mysql - persistent-postgresql - persistent-sqlite - persistent-template + - persistent-test # - stackage-curator # http-conduit 2.3 via amazonka - store + - wai-extra - wai-websockets - warp-tls - yesod + - authenticate + - html-conduit - yesod-auth - authenticate-oauth - yesod-bin - - yesod-eventsource - - yesod-gitrepo + - yesod-eventsource < 0 # via yesod-core + - yesod-gitrepo < 0 # via yesod-core - yesod-newsfeed - yesod-sitemap - yesod-static @@ -486,44 +716,39 @@ packages: - monad-unlift - monad-unlift-ref - yaml - - servius + - servius < 0 # via wai-app-static - cryptonite-conduit - streaming-commons - alex - async - base16-bytestring - - c2hs - - csv-conduit < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build - - executable-hash + - csv-conduit < 0 # ghc 8.10 + - executable-hash < 0 # via cryptohash - executable-path - foreign-store - formatting - - gtk2hs-buildtools + - gtk2hs-buildtools < 0 # compilation failure - happy - hybrid-vectors - indents - language-c - - persistent-mongoDB < 0 # GHC 8.4 via mongoDB + - persistent-mongoDB < 0 # via mongoDB, bson - pretty-class - th-expand-syns - th-lift - quickcheck-assertions - - wai-middleware-consul < 0 - - wai-middleware-crowd + - wai-middleware-crowd < 0 # via optparse-applicative-0.15.1.0 - monad-logger-json - safe-exceptions - - monad-logger-syslog - fsnotify-conduit - pid1 - typed-process - say - unliftio-core - unliftio - - compact < 0 # ghc-compact - - fsnotify - hinotify - hfsevents - Win32-notify @@ -534,18 +759,30 @@ packages: - http-conduit - githash + - time-manager + - pantry + - mega-sdist < 0 # Cabal issues + - http-download + - hi-file-parser + - rio-prettyprint + - packdeps + + "Brandon Barker @bbarker": + - unexceptionalio + - unexceptionalio-trans + - zio + "Omari Norman @massysett": - rainbow - rainbox - multiarg - - Earley - ofx - accuerr - timelens - - non-empty-sequence + - squeather "Neil Mitchell @ndmitchell": - - hlint + - hlint < 3.3 # TODO(mihaimaruseac): Fix when switching to GHC 9.0.1 - hoogle - shake - tagsoup @@ -559,14 +796,20 @@ packages: - extra - ghcid - hexml - - weeder - profiterole - - debug - record-dot-preprocessor - filepattern + - record-hasfield + - rattle + - hie-bios + - fuzzy "Digital Asset ": - - ghc-lib + - ghc-lib < 9.0.1 # TODO(mihaimaruseac): Fix when switching to GHC 9.0.1 + - ghc-lib-parser < 9.0.1 # TODO(mihaimaruseac): Fix when switching to GHC 9.0.1 + + "Shayne Fletcher ": + - ghc-lib-parser-ex < 9 # TODO(mihaimaruseac): Fix when switching to GHC 9.0.1 "Karl Ostmo @kostmo": - perfect-hash-generator @@ -576,7 +819,7 @@ packages: - haskell-lsp - hjsmin - language-javascript - - Strafunski-StrategyLib + - Strafunski-StrategyLib < 0 # via base-4.13.0.0 "Luke Lau @bubba": - lsp-test @@ -591,12 +834,12 @@ packages: "Jasper Van der Jeugt @jaspervdj": - blaze-html - blaze-markup - - stylish-haskell < 0 # haskell-src-exts 1.21 + - stylish-haskell < 0 # ghc 8.10 # profiteur # aeson-1.4.0.0 - psqueues - websockets - websockets-snap - - hakyll < 0 # jaspervdj/hakyll#691 + - hakyll < 0 # outdated dependencies "Sibi Prabakaran @psibi": - download @@ -605,7 +848,7 @@ packages: - tldr - fb - yesod-fb - - yesod-auth-fb < 0 # https://github.com/psibi/yesod-auth-fb/issues/4 + - yesod-auth-fb < 0 # aeson 1.5 via yesod-persistent via yesod-auth - hourglass-orphans - wai-slack-middleware - sysinfo @@ -613,6 +856,8 @@ packages: - shelly - persistent-redis < 0 # GHC 8.4 via hedis - fakedata + - fakedata-parser + - streamly-bytestring < 0 # primitive via streamly "haskell-openal": - OpenAL @@ -633,11 +878,11 @@ packages: "Philipp Middendorf @pmiddend": - clock - "Stefan Wehr @skogsbaer": + "Stefan Wehr @skogsbaer": - HTF - xmlgen - stm-stats < 0 - - large-hashable + - large-hashable < 0 # compilation failure "Bart Massey @BartMassey": - parseargs @@ -650,7 +895,7 @@ packages: - connection - cprng-aes - cpu - - cryptocipher + - cryptocipher < 0 # via cipher-blowfish - cryptohash - cryptonite - cryptonite-openssl @@ -670,20 +915,19 @@ packages: - tls - tls-debug - vhd < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build - - xenstore + - xenstore < 0 # sClose not in scope "Chris Done @chrisdone": - labels - ace - - check-email + - check-email < 0 # via email-validate - freenect - - frisby + - frisby < 0 # MonadFail - gd - hostname-validate - ini - lucid - pdfinfo - - present - pure-io < 0 # build failure with GHC 8.4 - sourcemap - hindent < 0 # GHC 8.4 via descriptive @@ -693,6 +937,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 @@ -729,7 +975,6 @@ packages: - fixed - folds - free - - gc - gl - graphs - half @@ -737,6 +982,7 @@ packages: - hybrid-vectors - hyperloglog - hyphenation + - indexed-traversable - integration - intern - intervals @@ -754,7 +1000,7 @@ packages: - monadic-arrays - monad-products - monad-st - - mtl + # - mtl take the one that ships with GHC - nats - numeric-extras - parsers @@ -762,7 +1008,6 @@ packages: - profunctors - promises - rcu - - recursion-schemes - reducers - reflection - semigroupoid-extras @@ -792,41 +1037,42 @@ packages: - hspec - hspec-core - hspec-discover - - hspec-wai + - hspec-wai < 0.11.1 # https://github.com/commercialhaskell/stackage/issues/5940 - hspec-wai-json - aeson-qq - interpolate - - doctest + - doctest < 0.17 # https://github.com/commercialhaskell/stackage/issues/5574 - base-compat - "Mario Blazevic @blamario": + "Mario Blazevic @blamario": - monad-parallel - monad-coroutine - - incremental-parser - - monoid-subclasses - - picoparsec < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build + - monoid-subclasses < 1.1 # https://github.com/commercialhaskell/stackage/issues/5900 - rank2classes + - input-parsers + - incremental-parser + - construct "Brent Yorgey @byorgey": - - active - - diagrams - - diagrams-builder < 0 # via lens-4.17 - - diagrams-cairo < 0 # via lens-4.17 - - diagrams-canvas < 0 # via lens-4.17 - - diagrams-contrib - - diagrams-core - - diagrams-gtk < 0 # via diagrams-cairo - - diagrams-html5 < 0 # via lens-4.17 - - diagrams-lib - - diagrams-postscript < 0 # via lens-4.17 - - diagrams-rasterific + - active < 0 # ghc 8.10 + - diagrams < 0 # ghc 8.10 + - diagrams-builder < 0 # haskell-src-exts-simple + - diagrams-cairo < 0 # cairo + - diagrams-canvas < 0 # base-4.13, lens-4.18 + - diagrams-contrib < 0 # ghc 8.10 + - diagrams-core < 0 # ghc 8.10 + - diagrams-gtk < 0 # cairo + - diagrams-html5 < 0 # lens-4.18 + - diagrams-lib < 0 # ghc 8.10 + - diagrams-postscript < 0 # ghc 8.10 + - diagrams-rasterific < 0 # ghc 8.10 - diagrams-solve - - diagrams-svg - - force-layout - - SVGFonts - - haxr < 0 # GHC 8.4 via HaXml + - diagrams-svg < 0 # ghc 8.10 + - force-layout < 0 # ghc 8.10 + - SVGFonts < 0 # ghc 8.10 + - haxr - MonadRandom - - monoid-extras + - monoid-extras < 0 # ghc 8.10 "Vincent Berthoux @Twinside": - JuicyPixels @@ -841,9 +1087,21 @@ packages: - gravatar - load-env - yesod-auth-oauth2 - - yesod-markdown < 0 # pbrisbin/yesod-markdown#65 + - yesod-markdown - yesod-paginator + "Freckle Engineering @pbrisbin @halogenandtoast @mjgpy3": + - bcp47 + - bcp47-orphans + - faktory + - graphula + - hspec-expectations-json + - yesod-page-cursor + - nonempty-zipper + - sendgrid-v3 + - yesod-auth-oauth2 + - hspec-junit-formatter + "Felipe Lessa @meteficha": - fb - nonce @@ -873,25 +1131,25 @@ packages: - accelerate-llvm-native < 0 # GHC 8.4 via base-4.11.0.0 - accelerate-llvm-ptx < 0 # GHC 8.4 via base-4.11.0.0 - accelerate-examples < 0 # GHC 8.4 via accelerate - - repa - - repa-algorithms - - repa-io + - repa < 0 # via base-4.13.0.0 + - repa-algorithms < 0 # via base-4.13.0.0 + - repa-io < 0 # via base-4.13.0.0 - gloss - gloss-rendering - - gloss-algorithms - - gloss-raster - - gloss-examples + - gloss-algorithms < 0 # via base-4.13.0.0 + - gloss-examples < 0 # via base-4.13.0.0 + - gloss-raster < 0 # via base-4.13.0.0 - gloss-accelerate < 0 # GHC 8.4 via base-4.11.0.0 - gloss-raster-accelerate < 0 # GHC 8.4 via base-4.11.0.0 - colour-accelerate < 0 # GHC 8.4 via base-4.11.0.0 - lens-accelerate < 0 # GHC 8.4 via base-4.11.0.0 - mwc-random-accelerate < 0 # GHC 8.4 via accelerate - - cuda - - cufft - - cublas - - cusparse - - cusolver < 0 #4029 - - nvvm + - cuda < 0 + - cufft < 0 # via cuda + - cublas < 0 # via cuda + - cusparse < 0 # via cuda + - cusolver < 0 #4029/closed + - nvvm < 0 # via cuda - wide-word # @erikd "Dan Burton @DanBurton": @@ -909,15 +1167,18 @@ packages: # @mr's packages - ftp-client - ftp-client-conduit + # other: real maintainers pls steal these back + - text-format # needed by liquid-fixpoint + - liquid-fixpoint "Daniel Díaz dhelta.diaz@gmail.com @Daniel-Diaz": - bimap-server - binary-list - byteset - Clipboard - - grouped-list < 0 # GHC 8.4 via base-4.11.1.0 - - haskintex < 0 - - HaTeX < 0 + - grouped-list < 0 # via base-4.13.0.0 + - haskintex < 0 # via hint + - HaTeX - include-file - matrix - pcre-light @@ -939,31 +1200,35 @@ packages: - dhall - dhall-bash - dhall-json - # - dhall-nix # deriving-compat via hnix - - dhall-text + - dhall-lsp-server + - dhall-yaml + - aeson-yaml # req'd by dhall-json + - dhall-nix < 0 + - nix-derivation "Andrew Thaddeus Martin @andrewthad": - - colonnade - - blaze-colonnade + - colonnade < 0 # via profunctors-5.5 + - blaze-colonnade < 0 # via profunctors-5.5 + - dot "Chris Allen @bitemyapp": - - machines-directory - - machines-io + - machines-directory < 0 # via machines-0.7 + - machines-io < 0 # via machines-0.7 - bloodhound < 0 # via aeson-1.3.1.0 "Adam Bergmark @bergmark": - - HUnit - aeson + - HUnit - attoparsec-iso8601 - fay < 0 - fay-base < 0 - fay-dom < 0 - feed - time-compat - - through-text < 0 + - through-text # Not my packages - HStringTemplate - - language-ecmascript + - language-ecmascript < 0 # via Diff-0.4.0 - spoon - tagshare @@ -977,20 +1242,20 @@ packages: "Robert Klotzner @eskimor": - purescript-bridge - - servant-purescript < 0 # mainland-pretty <- srcloc - - servant-subscriber < 0 # build failure with servant 0.14: https://github.com/eskimor/servant-subscriber/issues/17 + - servant-purescript < 0 # ghc 8.10 via servant + - servant-subscriber < 0 # ghc 8.10 via servant "Rodrigo Setti @rodrigosetti": - messagepack - messagepack-rpc < 0 "Boris Lykah @lykahb": - - groundhog - - groundhog-inspector - - groundhog-mysql - - groundhog-postgresql - - groundhog-sqlite - - groundhog-th + - groundhog < 0 # MonadFail + - groundhog-inspector < 0 # via groundhog + - groundhog-mysql < 0 # via groundhog + - groundhog-postgresql < 0 # via groundhog + - groundhog-sqlite < 0 # via direct-sqlite + - groundhog-th < 0 # via groundhog "Janne Hellsten @nurpax": - sqlite-simple @@ -998,7 +1263,7 @@ packages: "Michal J. Gajda @mgajda": - iterable - FenwickTree - - json-autotype + - json-autotype < 0 # via lens-4.18.1 "Dom De Re @domdere": - cassava-conduit @@ -1017,8 +1282,6 @@ packages: - immortal - regex-applicative - lexer-applicative < 0 # DependencyFailed (PackageName "srcloc") - - smallcheck - - socket < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build - tasty - tasty-golden - tasty-hunit @@ -1036,7 +1299,7 @@ packages: - set-monad < 0 # build failure with GHC 8.4 "Phil Hargett @hargettp": - - courier + - courier < 0 # via test-framework & test-framework-hunit "Aycan iRiCAN @aycanirican": - hdaemonize @@ -1044,7 +1307,7 @@ packages: "Joachim Breitner @nomeata": - circle-packing - - haskell-spacegoo + - haskell-spacegoo < 0 # MonadFail - tasty-expected-failure "Aditya Bhargava @egonSchiele": @@ -1057,24 +1320,33 @@ packages: - DAV - hopenpgp-tools - opensource + - debian + - cabal-debian + # dependencies: + - monad-chronicle "Piyush P Kurur @piyush-kurur": - - raaz < 0 # GHC 8.4 via base-4.11.0.0 - - naqsha < 0 # GHC 8.4 via base-4.11.0.0 + - raaz < 0 # via base-4.13.0.0 + - naqsha < 0 # via base-4.13.0.0 "Joey Hess @joeyh": - # - git-annex # conduit 1.3 + # - git-annex # Depends on many packages not tracked by Stackage - concurrent-output - mountpoints - disk-free-space - "Colin Woodbury @fosskers": + "Colin Woodbury @fosskers": + - aur + - aura + - bounded-queue - kanji + - language-bash - microlens-aeson - - pipes-random < 0 + - pipes-random + - servant-xml < 0 # via http-media - streaming-attoparsec - versions - - vectortiles < 0 + # - vectortiles < 0 "Ketil Malde @ketil-malde": # - biocore # build failure with GHC 8.4 https://github.com/fpco/stackage/pull/3359 @@ -1085,55 +1357,67 @@ 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 + - aeson-utils < 0 - arrow-list < 0 - attoparsec-expr - code-builder < 0 - - generic-aeson < 0 - generic-xmlpickler < 0 - hxt-pickle-utils < 0 - imagesize-conduit - json-schema < 0 - multipart - # - 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-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 + - rest-client < 0 + - rest-core < 0 + - rest-gen < 0 + - rest-happstack < 0 + - rest-snap < 0 + - rest-stringmap < 0 + - rest-types < 0 + - rest-wai < 0 - tostring - uri-encode "Simon Michael @simonmichael": - # - # The hledger project aims to keep the latest release of the core - # hledger-lib and hledger packages in stackage nightly at all times. - # When other hledger-* packages have too-restrictive bounds, we prefer they - # be removed, rather than putting an upper bound on hledger-lib and hledger. - # (https://github.com/fpco/stackage/issues/3494) - # - - hledger-lib - - hledger - - hledger-ui - - hledger-web - - hledger-api - # - - quickbench + - quickbench < 0 # via docopt - regex-compat-tdfa - shelltestrunner + # The hledger project aims to keep the latest release of the core + # "hledger-lib" and "hledger" packages in stackage nightly at all times. + # When other hledger-* packages (or minor non-hledger packages) have + # incompatible bounds, we would prefer they be disabled temporarily, + # rather than disabling the latest hledger-lib and hledger. + # (https://github.com/commercialhaskell/stackage/issues/3494, + # https://github.com/commercialhaskell/stackage/issues/5779) + - hledger + - hledger-lib + - hledger-ui + - hledger-web "Mihai Maruseac @mihaimaruseac": - io-manager @@ -1151,7 +1435,7 @@ packages: - ghc-syb-utils < 0 # build failure with GHC 8.4 "Boris Buliga @d12frosted": - - io-choice + - io-choice < 0 # template-haskell "Yann Esposito yogsototh @yogsototh": - human-readable-duration @@ -1159,40 +1443,54 @@ packages: - wai-middleware-caching - wai-middleware-caching-lru < 0 - wai-middleware-caching-redis < 0 # GHC 8.4 via hedis - # not package maintainer - - ekg - - ekg-json "Paul Rouse @paul-rouse": - mysql - mysql-simple - - sphinx + - sphinx < 0 # Could not find module Network - xmlhtml < 0 # GHC 8.4 via hspec-2.5.0 - yesod-auth-hashdb "Toralf Wittner @twittner": - bytestring-conversion - - cql - - cql-io + - cql < 0 # Template Haskell changes + - cql-io < 0 # via cql - redis-resp < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build - redis-io < 0 # GHC 8.4 via tinylog - swagger - tinylog - - wai-predicates - - wai-routing + - wai-predicates < 0 # MonadFail + - wai-routing < 0 # DependencyFailed (PackageName "wai-route") - zeromq4-haskell "Alejandro Serrano @serras": - djinn-lib < 0 # build failure with GHC 8.4 - djinn-ghc < 0 # GHC 8.4 via djinn-lib - - generics-mrsop + - generics-mrsop < 0 # MonadFail - kind-apply - kind-generics - kind-generics-th + - simplistic-generics + - wl-pprint + - AC-Angle + - language-protobuf + - generic-aeson + - parameterized + - tracing-control < 0 # https://github.com/commercialhaskell/stackage/issues/5948 + - primitive-extras + - primitive-unlifted < 0.2 + - stm-hamt + - stm-containers + - stm-lifted + - monad-primitive + - mwc-random-monad + + "Flavio Corpa @kutyel": + - language-avro "Matvey Aksenov @supki": - terminal-size - - envparse < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build + - envparse "Luis G. Torres @giogadi": - kdt @@ -1204,19 +1502,16 @@ packages: - yoga - freetype2 - HCodecs + - netcode-io + - reliable-io "Emanuel Borsboom @borsboom": - BoundedChan - broadcast-chan - - bytestring-lexing - - bytestring-trie < 0 # build failure with GHC 8.4 - - data-accessor - - data-accessor-mtl - fuzzcheck - here - hlibgit2 # - gitlib-libgit2 # via gitlib: https://github.com/jwiegley/gitlib/issues/72 - - hostname-validate - interpolatedstring-perl6 - iproute - missing-foreign @@ -1225,16 +1520,20 @@ packages: - 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 - bindings-uname - - stack < 9.9.9 # see https://github.com/fpco/stackage/issues/3563 + - stack < 9.9.9 # see #3563/closed "Michael Sloan @mgsloan": + - store + - store-core + - store-streaming - th-orphans - th-reify-many + - th-utilities "Nikita Volkov @nikita-volkov": - base-prelude @@ -1250,8 +1549,6 @@ packages: - partial-handler - postgresql-binary - slave-thread < 0 - - stm-containers < 0 - - refined < 0 # https://github.com/nikita-volkov/refined/issues/33 "Iustin Pop @iustin": - prefix-units @@ -1267,13 +1564,13 @@ packages: - reroute < 0 # build faiulre with GHC 8.4 https://github.com/agrafix/Spock/issues/140 - users # - users-persistent # persistent 2.8 - - users-postgresql-simple - - users-test + - users-postgresql-simple < 0 # via postgresql-simple + - users-test < 0 # via users # - validate-input # https://github.com/agrafix/validate-input/issues/3 # - ignore # https://github.com/agrafix/ignore/issues/5 - blaze-bootstrap - dataurl - - psql-helpers + - psql-helpers < 0 # via postgresql-simple - superbuffer - timespan < 0 # build failure with GHC 8.4 - distance < 0 # build failure with GHC 8.4 @@ -1309,29 +1606,46 @@ packages: - alarmclock - bank-holidays-england - "Haskell Servant ": + "Haskell Servant ": - servant - - servant-client - - servant-docs - - servant-js - - servant-server - - servant-lucid - servant-blaze + - servant-cassava < 0 # ghc 8.10 via servant + - servant-client + - servant-client-core + - servant-conduit + - servant-docs - servant-foreign - - servant-mock - - servant-cassava + - servant-http-streams + - servant-js < 0 # ghc 8.10 via servant + - servant-lucid < 0 # ghc 8.10 via servant + - servant-machines + - servant-mock < 0 # ghc 8.10 via servant + - servant-multipart + - servant-pipes + - servant-server + - servant-swagger + - servant-swagger-ui + - servant-swagger-ui-core + + "Optics ": + - indexed-profunctors + - optics + - optics-core + - optics-extra + - optics-th + - optics-vl "Alexandr Ruchkin @mvoidex": - hformat - simple-log - text-region - haskell-names - - hsdev + - hsdev < 0 # via ghc-boot-8.8.1 "Aleksey Kliger @lambdageek": - - unbound-generics - - indentation-core - - indentation-parsec + - unbound-generics < 0 # MonadFail + - indentation-core < 0 # via base-4.13.0.0 + - indentation-parsec < 0 # via base-4.13.0.0 - clang-compilation-database < 0 "Alois Cochard @aloiscochard": @@ -1345,17 +1659,29 @@ packages: - snowflake "Leza M. Lutonda @lemol": - - HaskellNet - - HaskellNet-SSL < 0 + # - HaskellNet < 0 # mime-mail-0.5 + - HaskellNet-SSL < 0 # mime-mail-0.5 via HaskellNet "Jens Petersen @juhp": + - bugzilla-redhat + - cabal-file - cabal-rpm + - dl-fedora - fedora-dists - fedora-haskell-tools + - hkgr + - http-directory + - http-query + - koji + - pagure-cli + - pkgtreediff + - rhbzquery - rpmbuild-order + - simple-cabal - simple-cmd - simple-cmd-args + - async-pool - darcs < 0 # - idris # aeson https://github.com/idris-lang/Idris-dev/issues/4493 - libffi @@ -1372,23 +1698,24 @@ packages: - vcswrapper < 0 # GHC 8.4 via base-4.11.0.0 - ShellCheck - binary-shared + - xdg-userdirs - - codec-rpm - - cpio-conduit + - codec-rpm < 0 # via cpio-conduit + - cpio-conduit < 0 # https://github.com/commercialhaskell/stackage/issues/5948 # please take these - cryptohash-md5 - cryptohash-sha1 "Renzo Carbonara @k0001": - - df1 - - di + - df1 < 0 # compilation failure + - di < 0 # transitive compilation failure - di-core - - di-df1 - - di-handle + - di-df1 < 0 # transitive compilation failure + - di-handle < 0 # compilation failure - di-monad - - exinst - - flay + - exinst < 0 # compilation failure + - flay < 0 - network-simple - network-simple-tls - pipes-aeson @@ -1396,26 +1723,26 @@ packages: - pipes-binary - pipes-network - pipes-network-tls - - safe-money < 0 + - safe-money - vector-bytes-instances - - xmlbf-xeno + - xmlbf-xeno < 0 # via xmlbf - xmlbf-xmlhtml < 0 # GHC 8.4 via xmlhtml via hspec-2.5.0 - - xmlbf + - xmlbf < 0 # MonadFail "Tomas Carnecky @wereHamster": - avers - - avers-api - - avers-server + - avers-api < 0 # via servant + - avers-server < 0 # via servant-server - 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 - github-webhook-handler-snap < 0 # GHC 8.4 via base-4.11.0.0 - google-cloud < 0 # GHC 8.4 via base-4.11.0.0 - - kraken + - kraken < 0 # via base-4.13.0.0 - libinfluxdb < 0 # GHC 8.4 via base-4.11.0.0 - mole < 0 # GHC 8.4 via base-4.11.0.0 - - publicsuffix < 0 + - publicsuffix - rethinkdb-client-driver - snap-blaze @@ -1423,9 +1750,9 @@ packages: - bcrypt "Jeffrey Rosenbluth @jeffreyrosenbluth": - - palette + - palette < 0 # via base-4.13.0.0 - diagrams-canvas - - svg-builder + - svg-builder < 0 # ghc 8.10 "Gabríel Arthúr Pétursson @polarina": - sdl2 @@ -1435,14 +1762,14 @@ packages: - base58string - bitcoin-api < 0 - bitcoin-api-extra < 0 - - bitcoin-block - - bitcoin-script - - bitcoin-tx - - bitcoin-types - - hexstring - - network-attoparsec - - network-anonymous-i2p - - network-anonymous-tor + - bitcoin-block < 0 # via hexstring + - bitcoin-script < 0 # MonadFail + - bitcoin-tx < 0 # via hexstring + - bitcoin-types < 0 # via base58string & hexstring + - hexstring < 0 # https://github.com/commercialhaskell/stackage/issues/5948 + - 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": - http-media @@ -1450,9 +1777,9 @@ packages: "Greg V @myfreeweb": - pcre-heavy - http-link-header - - microformats2-parser + - microformats2-parser < 0 # via wai-cli - hspec-expectations-pretty-diff - - wai-cli + - wai-cli < 0 # via network-3.1.1.0 - magicbane < 0 # via ekg-wai "Francesco Mazzoli @bitonic": @@ -1469,81 +1796,10 @@ packages: "Jan Stolarek @jstolarek": - tasty-program - "Oleg Grenrus @phadej": - - aeson-compat - - aeson-extra - - base64-bytestring-type - - binary-orphans - - binary-tagged - - boring - - cabal-doctest - - crypt-sha512 - - dlist-nonempty - - edit-distance - - fin - - functor-classes-compat - - generics-sop-lens - - github - - insert-ordered-containers - - integer-logarithms - - JuicyPixels-scale-dct - - kleene - - lattices - - microstache - - OneTuple - - postgresql-simple-url - - range-set-list - - regex-applicative-text - - servant-dhall < 0 - - servant-swagger-ui - - servant-swagger-ui-core - - servant-swagger-ui-redoc - - servant-yaml - - singleton-bool - - spdx < 0 # needs QuickCheck 2.12 - - splitmix - - step-function - - tdigest - - these - - time-parsers - - tree-diff - - vec - - # scrive/log - - log < 0 # via log-elasticsearch - - log-base - - log-elasticsearch < 0 # via bloodhound - - log-postgres < 0 - - # Not a maintainer - - folds - - friendly-time - - hashable - - haxl - - monad-time - - packdeps < 0 - - recursion-schemes < 5.1.1.1 || > 5.1.1.1 - - unordered-containers - - # Regex packages by Chris Kuklewicz - - regex-base - - regex-compat - - regex-pcre - - regex-posix - - regex-tdfa - - # Universe - - universe - - universe-base - - universe-instances-base - - universe-instances-extended - - universe-instances-trans - - universe-reverse-instances - "Abhinav Gupta @abhinav": - - farmhash + - farmhash < 0 # ghc 8.10.1 https://github.com/commercialhaskell/stackage/issues/5437 - pinch < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build - - sandman + - sandman < 0 # Cabal 3 "Adam C. Foltzer @acfoltzer": - gitrev @@ -1553,7 +1809,7 @@ packages: - jose-jwt "Brendan Hay @brendanhay": - - amazonka + - amazonka < 0 # ghc 8.10 via unliftio-core - amazonka-core - amazonka-test - amazonka-apigateway @@ -1588,7 +1844,7 @@ packages: - amazonka-ds - amazonka-dynamodb - amazonka-dynamodb-streams - - amazonka-ec2 + # - amazonka-ec2 # https://github.com/brendanhay/amazonka/issues/549 - amazonka-ecr - amazonka-ecs - amazonka-efs @@ -1601,6 +1857,7 @@ packages: - amazonka-emr - amazonka-gamelift - amazonka-glacier + - amazonka-glue - amazonka-health - amazonka-iam - amazonka-importexport @@ -1746,7 +2003,7 @@ packages: - text-manipulate "Nick Partridge @nkpart": - - cabal-file-th + - cabal-file-th < 0 # Cabal 3 "Gershom Bazerman @gbaz": - jmacro < 0 @@ -1760,11 +2017,11 @@ packages: - cubicspline - maximal-cliques - "Alexander Bondarenko @wiz": + "Alexander Bondarenko @dpwiz": - hedn - soap - soap-tls - - soap-openssl < 0 + - soap-openssl "Andres Löh @kosmikus": - generics-sop @@ -1789,7 +2046,6 @@ packages: - hxt-tagsoup - hexpat - digits - - unification-fd - logict - leveldb-haskell - system-argv0 @@ -1803,25 +2059,25 @@ packages: "Taylor Fausak @tfausak": - autoexporter + - burrito - derulo - flow - github-release - json-feed - lackey + - list-singleton + - rampart - ratel - ratel-wai - rattletrap - salve + - splint - strive + - witch - wuss - bmp # @benl23x5 - - ekg-statsd - - gloss # @benl23x5 - - gloss-rendering # @benl23x5 - gpolyline # @fegu - - postgresql-simple-migration # @ameingast - - statestack # @diagrams "Marios Titas @redneb": - HsOpenSSL-x509-system @@ -1841,7 +2097,7 @@ packages: - wai-middleware-prometheus < 0 # GHC 8.4 via prometheus-client "William Casarin @jb55": - - bson-lens + - bson-lens < 0 # via bson - cased - elm-export # - elm-export-persistent # https://github.com/jb55/elm-export-persistent/issues/2 @@ -1857,7 +2113,7 @@ packages: - annotated-wl-pprint "Yitz Gale @ygale": - - boolean-normal-forms + - boolean-normal-forms < 0 # ghc 8.10 - strict-concurrency - timezone-series - timezone-olson @@ -1866,20 +2122,20 @@ packages: - aeson-better-errors "Mitchell Rosen @mitchellwrosen": - - safe-exceptions-checked + - ki - tasty-hspec - termbox + - text-ansi - timer-wheel - - wai-middleware-travisci - "Christiaan Baaij @christiaanb": + "QBayLogic B.V. @martijnbastiaan": - ghc-tcplugins-extra - ghc-typelits-extra - ghc-typelits-knownnat - ghc-typelits-natnormalise - - clash-prelude < 0 - - clash-lib < 0 - - clash-ghc < 0 + - clash-prelude + - clash-lib + - clash-ghc "Athan Clark @athanclark": - aeson-attoparsec @@ -1887,15 +2143,15 @@ packages: - almost-fix - attoparsec-base64 - attoparsec-path - - attoparsec-ip - - attoparsec-uri + # - attoparsec-ip # Deprecated in favor of ip + # - attoparsec-uri - chan - commutative - composition-extra - every - extractable-singleton - follow-file - - HSet + - HSet < 0 # Duplicate Hashable instance - markup < 0 # GHC 8.4 via clay - monad-control-aligned - monadoid < 0 # build failure with GHC 8.4 @@ -1915,58 +2171,59 @@ packages: - tries < 0 # GHC 8.4 via bytestring-trie - unit-constraint - unfoldable-restricted < 0 # via unfoldable - - urlpath - - wai-transformers + # - urlpath + - wai-transformers < 0 # via wai-websockets - websockets-rpc < 0 # websockets-simple - websockets-simple < 0 # BuildFailureException with GHC 8.4 - webpage < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build - - ws + - ws < 0 # via attoparsec-uri & wuss "Fumiaki Kinoshita @fumieval": - boundingboxes - control-bool - drinkery - - extensible - monad-skeleton - - objective < 0 - - winery - - witherable - xml-lens + - witherable + - deriving-aeson "Peter Harpending @pharpend": - editor-open - - exceptional + - exceptional < 0 # MonadFail - pager - semiring-simple "Philipp Hausmann @phile314": + - language-thrift - tasty-silver "Michael Thompson @michaelt": - pipes-text < 0 # GHC 8.4 via streaming-commons-0.2.0.0 - - lens-simple - - lens-family-core - - lens-family + - lens-simple < 0 # via lens-family-2.0.0 + - lens-family-core < 2.1.0 #https://github.com/commercialhaskell/stackage/issues/5563 + - lens-family < 2.1.0 #https://github.com/commercialhaskell/stackage/issues/5563 "Justin Le @mstksg": - - advent-of-code-api + - advent-of-code-api < 0 # ghc 8.10 via servant - auto - backprop - bins - configurator-export - - decidable - - emd - - hamilton + - decidable < 0 # https://github.com/commercialhaskell/stackage/issues/5802 + - emd < 0 # via typelits-witnesses + - functor-products < 0 # https://github.com/mstksg/functor-products/issues/1 + - hamilton < 0 # via vty - hmatrix-backprop - hmatrix-vector-sized - - lens-typelevel - - list-witnesses + - lens-typelevel < 0 # GHC 8.8 via ghc-typelits-presburger (konn/equational-reasoning-in-haskell#4) + - list-witnesses < 0 # https://github.com/commercialhaskell/stackage/issues/5817 - nonempty-containers - one-liner-instances - prompt + - servant-cli < 0 # via servant-server - tagged-binary # - type-combinators-singletons # GHC 8.4 via type-combinators - - typelits-witnesses + - typelits-witnesses < 0 # via dependent-sum - uncertain - vector-sized @@ -1975,7 +2232,7 @@ packages: - metrics - pipes-wai - serf - - uri-templater + # - uri-templater # https://github.com/iand675/uri-templater/issues/7 "Michael Xavier @MichaelXavier": - uri-bytestring @@ -1988,7 +2245,7 @@ packages: "Lars Kuhtz @larskuhtz": - wai-cors - - configuration-tools + - configuration-tools < 0 # compilation error - random-bytestring "Sam Rijs @srijs": @@ -2001,30 +2258,30 @@ packages: - fn "Mathieu Boespflug @mboes": - - cassette < 0 # build failure with GHC 8.4 - choice - distributed-closure - inline-java < 0 - inline-r - - jni - - jvm + - jni < 0 # compilation failure + - jvm < 0 # transitive compilation failure - jvm-streaming < 0 - H - sparkle < 0 - th-lift "Christopher Reichert @creichert": - - bencode + - bencode < 0 # via base-4.13.0.0 - hsebaysdk - dockerfile - - wai-middleware-throttle + - wai-middleware-throttle < 0 # via token-bucket # - yesod-auth-basic # https://github.com/creichert/yesod-auth-basic/issues/2 "Hirotomo Moriwaki @philopon": - - barrier + - barrier < 0 # via blaze-svg "Kai Zhang @kaizhang": - matrices + - haskell-igraph < 0 # ghc 8.10.1 #5440/closed "Michel Boucey @MichelBoucey": - IPv6Addr @@ -2032,18 +2289,19 @@ packages: - cayley-client - Spintax - glabrous - - google-oauth2-jwt + - google-oauth2-jwt < 0 # via HsOpenSSL - IPv6DB < 0 + - gothic "koral koral@mailoo.org @k0ral": - atom-conduit < 0 - conduit-parse - dublincore-xml-conduit - euler-tour-tree < 0 # GHC 8.4 via base-4.11.0.0 - - opml-conduit < 0 # refined + - opml-conduit < 0 # Variable not in scope: throwRefine - rss-conduit < 0 - timerep - - xml-conduit-parse + - xml-conduit-parse < 0 # compilation error "Daniel Cartwright @chessai": - streaming @@ -2052,6 +2310,9 @@ packages: - semirings - torsor - chronos + - refined + - these-skinny + - hedgehog-classes < 0 # https://github.com/commercialhaskell/stackage/issues/5816 "Kostiantyn Rybnikov @k-bx": - SHA @@ -2059,16 +2320,15 @@ packages: - data-ordlist - digits - dns - - ekg-core - friday < 0 - friday-juicypixels < 0 - - hbeanstalk + - hbeanstalk < 0 # sClose not in scope - hedis - hprotoc - hsyslog-udp < 0 - iso3166-country-codes - iso639 - - monoidal-containers + - monoidal-containers < 0 # via base-4.13.0.0 - murmur-hash - protocol-buffers - protocol-buffers-descriptor @@ -2088,7 +2348,7 @@ packages: "Sven Heyll @sheyll": - b9 < 0 # build failure with GHC 8.4 https://github.com/sheyll/b9-vm-image-builder/issues/4 - type-spec - - pretty-types + - pretty-types < 0 # ghc 8.10.1 #5446/closed - function-builder - bytestring-to-vector @@ -2101,15 +2361,17 @@ packages: "Vladislav Zavialov @int-index": - transformers-lift < 0 # transformers https://github.com/commercialhaskell/stackage/issues/4408 - - union - - named + - union < 0 # via base-4.13.0.0 + - named < 0 # via base-4.13.0.0 - inj + - shower < 0 # via base-4.13.0.0 "Stack Builders stackage@stackbuilders.com @stackbuilders": - atomic-write - - dbcleaner + - dbcleaner < 0 # via postgresql-simple - dotenv - hapistrano + - hspec-golden - inflections - stache - scalendar < 0 @@ -2119,16 +2381,6 @@ packages: - NineP - Network-NineP < 0 - "Oliver Charles @ocharles": - - diff3 < 0 # build failure with GHC 8.4 - - exhaustive < 0 # GHC 8.4 via base-4.11.0.0 - - libsystemd-journal < 0 # GHC 8.4 via base-4.11.0.0 - - network-carbon < 0 # GHC 8.4 via base-4.11.0.0 - - tasty-rerun < 0 # GHC 8.4 via base-4.11.0.0 - - logging-effect - - dhall-to-cabal < 0 - # - reactive-banana # pqueue-1.4.1 - "Antoni Silvestre @asilvestre": # Test suite needs a running neo4j server with auth disabled # unfortunately the cabal package name and the github repo don't have the exact same name @@ -2139,27 +2391,31 @@ packages: - data-fix "Alexey Khudyakov @Shimuuar": - - histogram-fill + - histogram-fill < 0 # compilation failure - fixed-vector - fixed-vector-hetero - type-level-numbers "Ryan Scott @RyanGlScott": - abstract-deque - - abstract-deque-tests + - abstract-deque-tests < 0 # via test-framework - abstract-par - atomic-primops - base-compat-batteries - base-orphans - chaselev-deque - code-page + - constraint-tuples - criterion - criterion-measurement + - data-reify - deriving-compat + - dotgen - echo - eliminators - generic-deriving - hashmap + - indexed-traversable-instances - invariant - keycode - lift-generics @@ -2167,11 +2423,18 @@ packages: - monad-par - monad-par-extras - mtl-compat + - ordered-containers - proxied + - rdtsc + - singleton-nats + - singletons-base + - singletons-th - text-show - text-show-instances - th-abstraction + - th-compat - thread-local-storage + - type-equality "Kirill Zaborsky @qrilka": - xlsx @@ -2179,57 +2442,60 @@ packages: "Matt Parsons @parsonsmatt": - monad-logger-prefix - monad-metrics + - prairie # - ekg-cloudwatch # http-conduit 2.3 via amazonka - smtp-mail - liboath-hs - servant-quickcheck < 0 - esqueleto + - hedgehog-fakedata + - persistent-documentation - persistent-typed-db + - persistent-qq + - persistent-pagination + - hspec-hedgehog + - exception-via + - record-wrangler + - lift-type "Matthew Pickering @mpickering": - refact - - apply-refact "Andrew Gibiansky @gibiansky": - ipython-kernel - "Andrés Sicard-Ramírez @asr": - - Agda < 0 - "James Cook @mokus0": - - dependent-sum - - dependent-sum-template - - dependent-map + - dependent-map < 0 # via constraints-extras + - dependent-sum < 0 # via constraints-extras + - dependent-sum-template < 0 # via constraints-extras - dice < 0 # GHC 8.4 via random-fu - - hstatsd + - hstatsd < 0 # sClose not in scope - misfortune < 0 # GHC 8.4 via random-fu "Timo von Holtz @tvh": - ekg-wai < 0 # via ekg-json # - haxl-amazonka # http-conduit 2.3 via amazonka - hasql-migration < 0 # https://github.com/tvh/hasql-migration/issues/4 - - servant-JuicyPixels + - servant-JuicyPixels < 0 # ghc 8.10 via servant - "Artyom @neongreen": + "Artyom Kazak @neongreen": - microlens - microlens-platform - microlens-mtl - microlens-th - microlens-ghc - microlens-contra - - shortcut-links - - cheapskate-lucid - cheapskate-highlight - - cmark-lucid < 0 # GHC 8.4 via cmark - - cmark-highlight < 0 # GHC 8.4 via cmark + - cheapskate-lucid + - cmark-lucid + - cmark-highlight < 0 # cmark-0.6 - Spock-lucid < 0 # GHC 8.4 via Spock - charsetdetect-ae - - ilist # - text-all # text-1.2.3.0 - fmt "Takano Akio tak@anoak.io @takano-akio": - - fast-builder < 0 # GHC 8.4 via base-4.11.0.0 + - fast-builder < 0 # via true-name - filelock "Brian Lewis brian@lorf.org @bsl": @@ -2241,8 +2507,9 @@ packages: - hidapi - iso8601-time - loop + - lz4-frame-conduit - netpbm - - network-house + - network-house < 0 # MonadFail - reinterpret-cast - shared-memory - posix-paths @@ -2263,6 +2530,7 @@ packages: - leancheck - leancheck-instances - fitspec + - express - speculate - extrapolate - percent-format @@ -2274,20 +2542,20 @@ packages: - irc "Dennis Gosnell @cdepillabout": - - emailaddress < 0 # opaleye - envelope - from-sum - - hailgun - - hailgun-simple < 0 # via hailgun - natural-transformation - # - opaleye-trans # product-profunctors 0.9 + - password + - password-instances + - password-types - pretty-simple + - print-console-colors - read-env-var - - servant-checked-exceptions < 0 # https://github.com/cdepillabout/servant-checked-exceptions/issues/29 - - servant-checked-exceptions-core < 0 # servant 0.16 - - servant-rawm < 0 # https://github.com/cdepillabout/servant-rawm/issues/9 - - servant-static-th - - termonad < 0 + - servant-checked-exceptions < 0 # ghc 8.10 via servant + - servant-checked-exceptions-core < 0 # ghc 8.10 via servant + - servant-rawm + - servant-static-th < 0 # ghc 8.10 via servant + - termonad < 0 # via gi-vte - world-peace - xml-html-qq - xml-indexed-cursor @@ -2300,34 +2568,31 @@ packages: - compiler-warnings - docopt - dynamic-state - - dyre - io-storage - oo-prototypes + - opentelemetry + - opentelemetry-extra + - opentelemetry-wai + - opentelemetry-lightstep + - planb-token-introspection < 0 # #5445/closed - pointedlist - - unordered-intmap + - unordered-intmap < 0 # primitive 0.7.1.0 https://github.com/ethercrow/unordered-intmap/issues/2 - 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 - - 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 + # needed for opentelemetry + - ghc-trace-events # @maoe "Tobias Bexelius @tobbebex": - GPipe < 0 # GHC 8.4 via base-4.11.0.0 "Jonas Carpay @jonascarpay": - apecs - - apecs-physics - apecs-gloss + - apecs-physics + - aeson-commit + - js-chart + - tasty-focus "Spencer Janssen @spencerjanssen": - Xauth @@ -2340,11 +2605,14 @@ packages: - io-streams - openssl-streams - "Andrew Cowie @afcowie": + "Andrew Cowie @istathar": - chronologique - http-common - http-streams - locators + - core-data + - core-program + - core-text "Sean Hunt @olorin": - quickcheck-text @@ -2374,27 +2642,26 @@ packages: - hsemail - hsyslog - jailbreak-cabal - - json-autotype - - lambdabot-core - - lambdabot-irc-plugins + - lambdabot-core < 0 # via dependent-map-0.3 + - lambdabot-irc-plugins < 0 # via lambdabot-core - language-nix - logging-facade-syslog - MonadPrompt - - multipart # for cgi - nix-paths - parsec-class - - prim-uniq + - prim-uniq < 0 # via dependent-sum - random-fu - random-source - rvar - SafeSemaphore - - streamproc - - stringsearch # for cgi + - streamproc < 0 # MonadFail + - stringsearch # for cgi - titlecase + - X11 - xmonad "Mark Fine @markfine": - - postgresql-schema + - postgresql-schema < 0 # via postgresql-simple - sbp "Jinjing Wang @nfjinjing": @@ -2414,52 +2681,57 @@ packages: "Simon Marechal @bartavelle": - compactmap - stateWriter < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build - - filecache + - filecache < 0 - pcre-utils - - strict-base-types + - strict-base-types < 0 - withdependencies < 0 - hruby - - language-puppet + - language-puppet < 0 # https://github.com/commercialhaskell/stackage/issues/5573 - tar-conduit "Mark Karpov @mrkkrp": - - megaparsec - - htaglib - - path-io - - hspec-megaparsec - - zip - JuicyPixels-extra - - identicon - - pagination - - text-metrics - - tagged-identity - - req - - req-conduit - cue-sheet - - wave - flac - flac-picture - - lame - - path - forma - - stache - - parser-combinators - - modern-uri - - mmark - - mmark-ext + - ghc-syntax-highlighter < 0.0.7 # GHC 9.0.1 bound + - hspec-megaparsec + - htaglib - html-entity-map + - identicon + - lame + - megaparsec + - megaparsec-tests + - mmark - mmark-cli - - ghc-syntax-highlighter + - mmark-ext + - modern-uri + - ormolu + - pagination + - parser-combinators + - parser-combinators-tests + - path + - path-io + - req + - req-conduit + - stache + - tagged-identity + - text-metrics + - wave + - zip + + "Leonhard Markert @curiousleo": + - monad-bayes < 0 # ghc 8.10 "Emmanuel Touzery @emmanueltouzery": - app-settings - - hsexif - - slack-web + - hsexif < 0 # via time-1.9.3 + - slack-web < 0 # via base-4.13.0.0 "Nickolay Kudasov @fizruk": - http-api-data - swagger2 - - servant-swagger - telegram-bot-simple < 0 # https://github.com/fizruk/telegram-bot-simple/issues/18 "Jared Tobin @jtobin": @@ -2471,6 +2743,8 @@ packages: - declarative - sampling - flat-mcmc + - urbit-hob + - hnock "Facundo Domínguez @facundominguez": - distributed-process < 0 # GHC 8.4 via network-transport-tcp @@ -2492,10 +2766,9 @@ packages: "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 @@ -2513,13 +2786,12 @@ packages: "Stanislav Chernichkin @schernichkin": - partial-isomorphisms - - vinyl "Christoph Breitkopf @bokesan": - IntervalMap "Michele Lacchia @rubik": - - docopt + - docopt < 0 # MonadFail - pathwalk "John Galt @centromere": @@ -2527,8 +2799,6 @@ packages: - blake2 - nfc < 0 # build failure with GHC 8.4 - "Adam Curtis @kallisti-dev": - - webdriver "Michael Schröder @mcschroeder": - ctrie @@ -2539,7 +2809,7 @@ packages: - hsndfile-vector < 0 # build failure with GHC 8.4 "yihuang @yihuang": - - tagstream-conduit + - tagstream-conduit < 0 # MonadFail "Johannes Hilden @laserpants": - hashids @@ -2554,16 +2824,16 @@ packages: - dotnet-timespan - eventsource-api < 0 # GHC 8.4 build failure - eventsource-geteventstore-store < 0 # GHC 8.4 via protolude - - eventsource-store-specs < 0 # tasty-hspec + - eventsource-store-specs < 0 # eventsource-api - eventsource-stub-store < 0 # GHC 8.4 via protolude "Sebastian Dröge slomo@coaxion.net @sdroege": - - conduit-iconv - - conduit-connection + - conduit-iconv < 0 # MonadFail + - conduit-connection < 0 # connection-0.3.0 "Andrew Rademacher @AndrewRademacher": - aeson-casing - - graylog + - graylog < 0 # Couldn't find module Network.BSD - parsec-numeric # - mallard # https://github.com/AndrewRademacher/mallard/issues/49 - gdax < 0 @@ -2573,7 +2843,7 @@ packages: "Mihaly Barasz klao@nilcons.com @klao": - lens-datetime - - tz + - tz < 0 # via time-1.9.3 - tzdata "Timothy Klim @TimothyKlim": @@ -2581,34 +2851,29 @@ packages: "David Luposchainsky @quchen": - pgp-wordlist - - show-prettyprint - - prettyprinter - - prettyprinter-ansi-terminal - - prettyprinter-compat-wl-pprint - - prettyprinter-compat-ansi-wl-pprint - - prettyprinter-compat-annotated-wl-pprint + - show-prettyprint < 0 # via trifecta "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 + - web-routes < 0 # via http-types - web-routes-boomerang < 0 # GHC 8.4 via boomerang - web-routes-happstack < 0 # GHC 8.4 via happstack-server - - web-routes-hsp + - web-routes-hsp < 0 # via web-routes - web-routes-th < 0 # GHC 8.4 via template-haskell-2.13.0.0 - - web-routes-wai + - web-routes-wai < 0 # via web-routes # - hsx2hs # haskell-src-exts "Pedro Tacla Yamada @yamadapc": @@ -2624,14 +2889,14 @@ packages: # - language-dockerfile # https://github.com/beijaflor-io/haskell-language-dockerfile/issues/11 "Pascal Hartig @passy": - - giphy-api < 0 # https://github.com/passy/giphy-api/issues/18 + - giphy-api < 0 # ghc 8.10 via servant - optparse-text "rightfold @rightfold": - open-browser "Denis Redozubov @dredozubov": - - hreader-lens + - hreader-lens < 0 # via hreader - schematic < 0 # GHC 8.4 via base-4.11.0.0 "Yuji Yamamoto @igrep": @@ -2639,16 +2904,18 @@ packages: - th-strict-compat - main-tester - skews - - wss-client < 0 + - wss-client - network-messagepack-rpc - - network-messagepack-rpc-websocket < 0 + - network-messagepack-rpc-websocket - unicode-show - deriveJsonNoPrefix + - fakefs + - fakepull "Hans-Christian Esperer @hce": - - avwx + # avwx # https://github.com/hce/avwx/issues/2 - saltine - - wai-session-postgresql + - wai-session-postgresql < 0 # via wai-session "Haisheng Wu @freizl": - hoauth2 @@ -2660,9 +2927,10 @@ packages: - dawg-ord < 0 "Amit Levy @alevy": - - simple < 0 # GHC 8.4 via simple-templates - - simple-templates < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build - - simple-session < 0 # GHC 8.4 via simple + - simple < 0 # https://github.com/alevy/simple/issues/23 + - simple-templates + - simple-session < 0 + - postgresql-orm "Sergey Astanin @astanin": # Stackage server uses Ubuntu 16.04 which ships libzip-1.0.1. @@ -2671,6 +2939,7 @@ packages: - LibZip >= 1.0 "Anthony Cowley @acowley": + - vinyl - Frames < 0 # GHC 8.4 via base-4.11.0.0 - hpp < 0 # build failure with GHC 8.4 via bytestring-trie @@ -2686,7 +2955,7 @@ packages: - tao-example "Suhail Shergill @suhailshergill": - - extensible-effects < 0 # GHC 8.4 via base-4.11.0.0 + - extensible-effects "Justus Adam @JustusAdam": # - marvin # https://github.com/JustusAdam/marvin/issues/22 @@ -2700,7 +2969,7 @@ packages: "Jean-Philippe Bernardy @jyp": - polynomials-bernstein - - typography-geometry + - typography-geometry < 0 # compilation failure "John MacFarlane @jgm": - hsb2hs < 0 # build failure with GHC 8.4 @@ -2708,12 +2977,19 @@ packages: - texmath - highlighting-kate - skylighting - - pandoc-types < 1.19 || > 1.19 # Accidental upload, see: https://github.com/fpco/stackage/issues/2223 + - skylighting-core + - pandoc-types - zip-archive + - doclayout - doctemplates + - emojis - pandoc - - pandoc-citeproc - - ipynb + - citeproc + - commonmark + - commonmark-extensions + - commonmark-pandoc + - HsYAML-aeson + - ipynb #< 0 # via aeson-diff "Karun Ramakrishnan @karun012": - doctest-discover @@ -2723,7 +2999,7 @@ packages: "Ozgun Ataman ozgun.ataman@soostone.com @ozataman": - string-conv - - rng-utils + - rng-utils < 0 # https://github.com/commercialhaskell/stackage/issues/4686 - ua-parser - hs-GeoIP - retry @@ -2733,7 +3009,6 @@ packages: "Sid Kapur sidharthkapur1@gmail.com @sid-kap": - tuple - OneTuple - # - SVGFonts # lens 4.16 via diagrams "Aaron Levin @aaronmblevin": - free-vl @@ -2742,15 +3017,15 @@ packages: - xlsx-tabular "Mikhail Glushenkov @23Skidoo": - - Cabal - - cabal-install - # - pointful # haskell-src-exts + # - Cabal take the one that ships with GHC + - cabal-install < 0 # via Cabal/base + # - pointful # haskell-src-exts-simple "Lennart Kolmodin @kolmodin": - - binary-bits + - binary-bits < 0 # MonadFail "Alex McLean @yaxu": - - tidal < 0 # transformers https://github.com/commercialhaskell/stackage/issues/4408 + - tidal - hosc "Kei Hibino @khibino": @@ -2766,6 +3041,9 @@ packages: - json-rpc-generic - protocol-radius - protocol-radius-test + - th-bang-compat + - th-constraint-compat + - persistable-record "wren romano @wrengr": - bytestring-lexing @@ -2781,32 +3059,47 @@ packages: "Fraser Tweedale @frasertweedale": - concise + - dyre - jose "Yoshikuni Jujo @YoshikuniJujo": - zot - yjtools - io-machine - - yjsvg < 0 # build failure with GHC 8.4 + - yjsvg - x11-xim - X11-xft - Imlib - - xturtle < 0 # GHC 8.4 via yjsvg - - gluturtle < 0 # build failure with GHC 8.4 - - papillon < 0 - - exception-hierarchy < 0 - - simplest-sqlite < 0 + - xturtle < 0 # ghc 8.10 + - gluturtle + - papillon < 0 # ghc 8.10 + - zasni-gerna < 0 # ghc 8.10 + - exception-hierarchy + - simplest-sqlite < 0 # ghc 8.10 - warp-tls-uid - nowdoc + - HaXml + - typecheck-plugin-nat-simple + - ranged-list "Jan Gerlinger @JanGe": - irc-dcc < 0 + "Alexey Raga @AlexeyRaga": + - hw-kafka-client + "John Ky newhoggy@gmail.com @newhoggy": + - aeson-lens + - antiope-core < 0 # ghc 8.10 via amazonka + - antiope-dynamodb < 0 # ghc 8.10 via amazonka + - antiope-messages < 0 # ghc 8.10 via amazonka + - antiope-s3 < 0 # ghc 8.10 via amazonka + - antiope-sns < 0 # ghc 8.10 via amazonka + - antiope-sqs < 0 # ghc 8.10 via amazonka - arbor-lru-cache - - arbor-postgres < 0 # postgresql-simple 0.6 - - avro + - arbor-postgres < 0 # optparse-applicative 0.16.1 - asif + - avro - bits-extra - hw-balancedparens - hw-bits @@ -2816,13 +3109,15 @@ packages: - hw-dsv - hw-eliasfano - hw-excess + - hw-fingertree + - hw-fingertree-strict - hw-hedgehog - - hw-hspec-hedgehog < 0 # via hspec-2.7.0 + - hw-hspec-hedgehog - hw-int - hw-ip - - hw-fingertree < 0 # build failure with GHC 8.4 - - hw-fingertree-strict - hw-json + - hw-json-simple-cursor + - hw-json-standard-cursor - hw-mquery - hw-packed-vector - hw-parser @@ -2830,45 +3125,41 @@ packages: - hw-rankselect - hw-rankselect-base - hw-simd - - hw-succinct - hw-streams - - hw-xml < 0 # Build failure haskell-works/hw-xml#28 - - pure-zlib - - antiope-athena - - antiope-core - - antiope-dynamodb - - antiope-messages - - antiope-s3 - - antiope-sns - - antiope-sqs + - hw-succinct + - hw-xml + - tasty-discover "George Wilson @gwils": - - sv - - sv-cassava - - sv-core - - tasty-hedgehog + - hedgehog-fn + - sv < 0 # via base-4.13.0.0 + - sv-cassava < 0 # via sv-core + - sv-core < 0 # via base-4.13.0.0 + - tasty-hedgehog < 1.1.0.0 # https://github.com/commercialhaskell/stackage/issues/5973 "Ismail Mustafa @ismailmustafa": - handwriting < 0 "Stephen Diehl @sdiehl": - - llvm-hs-pretty + - llvm-hs-pretty < 0 # compilation failure - protolude - repline - picosat < 0 - - aos-signature - - bulletproofs - - pedersen-commitment - - merkle-tree - - oblivious-transfer - - pairing - - libraft + - aos-signature < 0 # via protolude + # https://github.com/commercialhaskell/stackage/issues/4682 + - bulletproofs < 0 # via protolude + - pedersen-commitment < 0 # via protolude + - merkle-tree < 0 # via protolude + - oblivious-transfer < 0 # via protolude + - pairing < 0 # #4758/closed + - libraft < 0 # via concurrency & ejafu & kg & kg-core & onad-metrics & ostgresql-simple-url & rotolude & uickcheck-state-machine & asty-dejafu + - galois-field < 0 # via protolude "Daishi Nakajima @nakaji-dayo": - api-field-json-th "Patrick Thomson @helium": - - postgresql-transactional + - postgresql-transactional < 0 # via postgresql-simple "Tom Murphy ": - gingersnap @@ -2876,9 +3167,9 @@ packages: - midair - nano-erl - rando - - vivid - - vivid-osc - - vivid-supercollider + - vivid < 0 # via vivid-osc + - vivid-osc < 0 + - vivid-supercollider < 0 # via vivid-osc "Toshio Ito @debug-ito": - fold-debounce @@ -2901,10 +3192,10 @@ packages: "David Reaver @jdreaver": - eventful-core # - eventful-dynamodb # http-conduit 2.3 via amazonka - - eventful-memory + - eventful-memory < 0 # via eventful-core - eventful-postgresql < 0 # GHC 8.4 via persistent-postgresql - - eventful-sql-common - - eventful-sqlite + - eventful-sql-common < 0 # persistent 2.10.0 #4551/closed + - eventful-sqlite < 0 # persistent 2.10.0 via eventful-sql-common - eventful-test-helpers - stratosphere - sum-type-boilerplate @@ -2914,15 +3205,25 @@ packages: - haskell-gi-base - gi-atk - gi-cairo - - gi-glib + - gi-dbusmenu + - gi-dbusmenugtk3 + - gi-gdk < 4 + - gi-gdkpixbuf + - gi-gdkx11 < 4 - gi-gio + - gi-glib - gi-gobject - - gi-gtk + - gi-graphene + - gi-gtk < 4 - gi-gtk-hs - - gi-gtksource - - gi-javascriptcore - - gi-vte - # - gi-webkit2 # GHC 8.4 + - gi-pango + - gi-xlib + - gi-harfbuzz + - gi-gsk < 4 + - gi-gtksource < 0 # via gi-gdk-4.0.1 & gi-gtk-4.0.1 + - gi-javascriptcore < 0 # via haskell-gi + - gi-vte < 0 # via gi-gdk-4.0.1 & gi-gtk-4.0.1 + # - gi-webkit2 # https://github.com/fpco/stackage/issues/3415 "Brandon Simmons @jberryman": - directory-tree @@ -2949,7 +3250,7 @@ packages: "Pavel Ryzhov @paulrzcz": - hquantlib < 0 - - hquantlib-time + - hquantlib-time < 0 # via time-1.9.3 - HSvm "Henri Verroken @hverr": @@ -2960,7 +3261,7 @@ packages: - haskey-mtl < 0 - intset-imperative - lxd-client < 0 # GHC 8.4 via http-media - - lxd-client-config + - lxd-client-config < 0 # via test-framework - xxhash-ffi - zeromq4-patterns @@ -2969,21 +3270,34 @@ packages: # - microsoft-translator # servant 0.13 "Tebello Thejane @tebello-thejane": - - bitx-bitcoin + - bitx-bitcoin < 0 # compilation error "Andrew Lelechenko @Bodigrim": - exp-pairs - fast-digits - chimera - quadratic-irrational + - primitive-addr - quickcheck-classes + - quickcheck-classes-base - arithmoi - bitvec + - poly + - extended-reals + - ChasingBottoms + - data-interval + - vector-rotcev + - mod + - tasty-rerun + - integer-roots + - smallcheck + - quote-quot + - tasty-bench "Ashley Yakeley @AshleyYakeley": - countable - - witness - - open-witness + - witness < 0 # ghc 8.10.1 #5451/closed + - open-witness < 0 # MonadFail "Victor Denisov @VictorDenisov": - mongoDB @@ -3001,7 +3315,7 @@ packages: - webrtc-vad - servant-generic < 0 # merged into servant >= 0.14.1 - clang-pure < 0 # https://github.com/commercialhaskell/stackage/issues/3810 - - codec + - codec < 0 # via binary-bits "Michal Konecny @michalkonecny": - hmpfr @@ -3010,7 +3324,7 @@ packages: - aern2-real "Bartosz Nitka @niteria": - - oeis + - oeis < 0 # via test-framework "Gergely Patai @cobbpg": - elerea @@ -3020,28 +3334,29 @@ packages: "Dominic Orchard @dorchard": - array-memoize - - codo-notation + - codo-notation < 0 # MonadFail - language-fortran < 0 # build failure with GHC 8.4 - "Shao Cheng @TerrorJack": + "Cheng Shao @TerrorJack": + - binaryen < 0 # https://github.com/commercialhaskell/stackage/issues/5822 - cabal-toolkit < 0 # GHC 8.4 via Cabal-2.2.0.0 - direct-rocksdb < 0 # GHC 8.4 via Cabal-2.2.0.0 "Anton Gushcha @ncrashed": - aeson-injector < 0 # GHC 8.4 via base-4.11.0.0 - - JuicyPixels-blp < 0 # JuicyPixels 3.3 commercialhaskell/stackate#3818 + - JuicyPixels-blp < 0 # JuicyPixels 3.3 #3818/closed "Al Zohali @zohl": # - servant-auth-cookie # servant 0.13 - dictionaries < 0 # GHC 8.4 via base-4.11.0.0 - - cereal-time + - cereal-time < 0 # via time-1.9.3 "Joachim Fasting @joachifm": - libmpd "Moritz Kiefer @cocreature": - lrucaching - - llvm-hs < 0 # https://github.com/commercialhaskell/stackage/issues/4238 + - llvm-hs - llvm-hs-pure "Thierry Bourrillon @tbourrillon": @@ -3074,10 +3389,12 @@ packages: - cpuinfo - lmdb - rdf + - data-compat + - deepseq-instances "Michael Swan @michael-swan": - - pcf-font - - pcf-font-embed + - pcf-font < 0 # MonadFail + - pcf-font-embed < 0 # via pcf-font "Iago Abal ": - bv @@ -3089,10 +3406,6 @@ packages: - vector-split - vector-mmap - "Alex Mason @Axman6": - [] - # - amazonka-s3-streaming # https://github.com/axman6/amazonka-s3-streaming/issues/9 - "Ondrej Palkovsky @ondrap": - json-stream < 0 # GHC 8.4 via base-4.11.0.0 @@ -3104,22 +3417,21 @@ packages: - pqueue - butcher - czipwith - - data-tree-print - - brittany < 0 # via yaml-0.9.0 commercialhaskell/stackage#3823 + - data-tree-print < 0 # ghc 8.10 + - brittany < 0 # ghc 8.10 via ghc-exactprint "Ryan Mulligan @ryantm": - - HDBC-mysql + - HDBC-mysql < 0 # via HDBC "Tony Morris @tonymorris": - validation "Tony Day @tonyday567": - - numhask < 0 + - numhask + - numhask-array < 0 - numhask-prelude < 0 - - numhask-range < 0 + - numhask-space < 0 - perf < 0 - - online < 0 - - chart-unit < 0 # via diagrams-lib "Iphigenia Df @iphydf": - data-msgpack @@ -3132,15 +3444,18 @@ packages: "Jonathan Fischoff @jfischoff": - clock-extras - - next-ref < 0 - - threads-extras < 0 + - postgres-options - tmp-postgres - pg-transact - - hspec-pg-transact - - postgresql-simple-queue - port-utils + - postgresql-libpq-notify + - hasql-queue "Jonathan Knowles @jonathanknowles": + - bech32 + - bech32-th + - cardano-coin-selection + - quiet - roc-id "Mahdi Dibaiee @mdibaiee": @@ -3152,7 +3467,7 @@ packages: - rawfilepath "Konstantin Zudov @zudov": - - html-email-validate + - html-email-validate < 0 # via regex-pcre-builtin "Carl Baatz @cbaatz": - atom-basic @@ -3166,30 +3481,32 @@ packages: - bookkeeping < 0 # GHC 8.4 BuildFailureException Process exited with ExitFailure 1: ./Setup build - ochintin-daicho < 0 # GHC 8.4 DependencyFailed (PackageName "bookkeeping") - transaction - - tonaparser + - tonaparser < 0 # via envy - tonalude - tonatona - - tonatona-logger - - tonatona-servant - - tonatona-persistent-sqlite - - tonatona-persistent-postgresql + - tonatona-logger < 0 # via tonaparser + - tonatona-servant < 0 # via servant-server + - tonatona-persistent-sqlite < 0 # via persistent + - tonatona-persistent-postgresql < 0 # via persistent "Marcin Tolysz @tolysz": - rawstring-qm "Daniel YU ": - salak + - salak-yaml + - salak-toml < 0 # via tomland - tensors - - yam - - yam-datasource - - menshen + - menshen < 0 # via regex-tdfa-1.3.0 + - crc32c + - boots "Tom Nielsen @glutamate": - plotlyhs - inliterate "Hyunje Jun @noraesae": - - line + - line # via scotty "Hannes Saffrich @m0rphism": [] @@ -3200,6 +3517,14 @@ packages: # - hip # lens 4.16 via diagrams/chart - massiv - massiv-io + - massiv-test + - massiv-serialise + - massiv-persist + - scheduler + - Color + - safe-decimal + - flush-queue + - pvar "Hans-Peter Deifel @hpdeifel": - hledger-iadd @@ -3209,8 +3534,8 @@ packages: "Boldizsár Németh @nboldi": - instance-control - - references - - classyplate + - references < 0 + - classyplate < 0 # via base-4.13.0.0 - haskell-tools-ast < 0 - haskell-tools-backend-ghc < 0 - haskell-tools-prettyprint < 0 @@ -3222,15 +3547,16 @@ packages: - haskell-tools-debug < 0 "David Fisher @ddfisher": - - socket-activation + - socket-activation < 0 # via network-3.1.1.0 "aiya000 @aiya000": + - character-cases - throwable-exceptions "Mitsutoshi Aoe @maoe": - influxdb - sensu-run < 0 # GHC 8.4 via base-4.11.0.0 - - viewprof < 0 # brick-0.38 commercialhaskell/stackage#3839 vty-5.22 commercialhaskell/stackage#3840 + - viewprof < 0 # via base-4.13.0.0 "Dylan Simon @dylex": - postgresql-typed @@ -3239,21 +3565,21 @@ packages: - zip-stream "Louis Pan @louispan": - - alternators + - alternators < 0 - arrow-extras - data-diverse - - data-diverse-lens + - data-diverse-lens < 0 # "The liberal coverage condition fails" - ghcjs-base-stub < 0 - - glaze - - glazier + - glaze < 0 + - glazier < 0 - glazier-react < 0 - glazier-react-widget < 0 - javascript-extras < 0 - lens-misc - l10n - - pipes-category - - pipes-fluid - - pipes-misc + - pipes-category < 0 # via pipes-extras + - pipes-fluid < 0 # via these + - pipes-misc < 0 # via pipes-category - stm-extras "Siniša Biđin @sbidin": @@ -3263,14 +3589,15 @@ packages: "Aditya Manthramurthy @donatello": - minio-hs + - webby "ncaq @ncaq": - debug-trace-var - # - haskell-import-graph # fgl via graphviz + - haskell-import-graph - string-transform - uniq-deep - - yesod-form-bootstrap4 - - yesod-recaptcha2 + - yesod-form-bootstrap4 < 0 # aeson 1.5 via yesod-persistent via yesod-form + - yesod-recaptcha2 < 0 # aeson 1.5 via yesod-persistent via yesod-form "Andrei Barbu @abarbu": - nondeterminism @@ -3288,13 +3615,13 @@ packages: - rot13 - dvorak - "OnRock Engineering ": + "Cuedo Business Solutions @cuedo": - github-webhooks "Pavel Yakovlev @zmactep": - hasbolt - uniprot-kb - - mmtf + - mmtf < 0 # MonadFail "Christopher A. Gorski @cgorski": - general-games @@ -3309,13 +3636,21 @@ packages: - verbosity "Devon Hollowood @devonhollowood": - - search-algorithms < 0 + - search-algorithms "Chris Dornan @cdornan": - sort - regex - - regex-pcre-text + - regex-pcre-text < 0 # via regex-base-0.94.0.0 - regex-with-pcre + - possibly + - enum-text < 0 # via fmt + - rg < 0 # via fmt + - columnar < 0 # via fmt + - enum-text-rio < 0 # via fmt + - fmt-for-rio < 0 # via enum-text-rio + - no-value + - optparse-enum < 0 # via fmt "Elliot Cameron @3noch": [] @@ -3326,7 +3661,7 @@ packages: "Hardy Jones @joneshf": # - katip-rollbar # async 2.2 - rollbar-hs < 0 - - servant-ruby + - servant-ruby < 0 # via servant-foreign - wai-middleware-rollbar < 0 # aeson "Andrey Mokhov @snowleopard": @@ -3335,7 +3670,12 @@ packages: "Albert Krewinkel @tarleb": - hslua - hslua-aeson + - hslua-module-doclayout + - hslua-module-path + - hslua-module-system - hslua-module-text + - jira-wiki-markup + - tasty-lua "Judah Jacobson @judah": - proto-lens-protobuf-types @@ -3343,28 +3683,30 @@ packages: - proto-lens-runtime - proto-lens-setup - proto-lens - - proto-lens-arbitrary - - proto-lens-optparse + # disabled due to QuickCheck < 2.14 + # - proto-lens-arbitrary + - proto-lens-optparse < 0 # optparse-applicative 0.16.1 - tensorflow-test - pier-core < 0 - pier < 0 - haskeline + - ghc-source-gen # tests disabled due to QuickCheck < 2.14 "Christof Schramm ": - mnist-idx "Naushadh @naushadh": - - persistent-mysql-haskell + - persistent-mysql-haskell < 0 # persistent 2.10.0 #4550/closed "Moritz Schulte @mtesseract": - async-refresh - async-refresh-tokens - type-level-integers - partial-order < 0 - - async-timer + - async-timer < 0 # ghc 8.10 via unliftio-core # - nakadi-client # http-conduit 2.3 - throttle-io-stream - - conduit-throttle + - conduit-throttle < 0 # via test-framework "Simon Hafner @reactormonk": - uri-bytestring-aeson @@ -3373,17 +3715,19 @@ packages: "Sebastian Witte @saep": - nvim-hs - nvim-hs-contrib - # - nvim-hs-ghcid + - nvim-hs-ghcid "Sam Protas @SamProtas": - triplesec - composable-associations - composable-associations-aeson + - JuicyPixels-blurhash "Anton Ekblad @valderman": - selda - selda-sqlite - selda-postgresql + - selda-json "Luis Pedro Coelho @luispedro": - safeio @@ -3391,11 +3735,8 @@ packages: - conduit-zstd "Alex Biehl @alexbiehl": - - haddock-library - - "Mark Hopkins @mjhopkins": - [] - # - alerta # servant-client 0.12 + - haddock-library < 1.10 # https://github.com/commercialhaskell/stackage/issues/5890 + - http-client-openssl "Steven Vandevelde @icidasset": - shikensu @@ -3408,15 +3749,6 @@ packages: - mltool - hmatrix-morpheus - "Edward Amsden @eamsden": - [] - # https://bitbucket.org/fmapE/h2c/issues/1/compilation-failure-since-upgrading-to - #- h2c - #- bno055-haskell - - "Lars Brünjes @brunjlar": - - pell < 0 # GHC 8.4 via arithmoi - "Matt Noonan @matt-noonan": - justified-containers - roles >= 0.2 @@ -3424,55 +3756,56 @@ packages: - gdp "Levent Erkok @LeventErkok": - - sbv + - sbv < 0 # MonadFail - crackNum "János Tapolczai @jtapolczai": - listsafe - "Serokell @serokell": - # - importify # haskell-src-exts via haskell-names + "Serokell @serokell": + # - importify - log-warper < 0 # GHC 8.4 via lifted-async-0.10.0.1 - o-clock + - tasty-hunit-compat - universum + - with-utf8 + - uncaught-exception - "Kowainik @ChShersh": - - base-noprelude == 4.12.0.0 - - co-log-core - - co-log < 0 - - first-class-patterns - - relude - - shellmet - - summoner < 0 - - tomland - - typerep-map + "Holmusk @arbus": + - elm-street < 0 # via base-4.13.0.0 & warp-3.3.2 + + "Noel Kwan @kwannoel": + - servant-docs-simple < 0 # ghc 8.10 via servant "Lorenz Moesenlechner @moesenle": - - servant-websockets < 0 # https://github.com/moesenle/servant-websockets/issues/8 + - servant-websockets < 0 # ghc 8.10 via servant-server "Daniel Campoverde @alx741": - currencies - alerts - - yesod-alerts + - yesod-alerts < 0 # via yesod-core + - graphite "José Lorenzo Rodríguez @lorenzo": - wrecker < 0 # GHC 8.4 via ansigraph - language-docker - docker-build-cacher < 0 # GHC 8.4 via turtle - - mysql-haskell-nem + - mysql-haskell-nem < 0 # via io-streams + - hadolint < 0 # ansi-terminal 0.11 via colourista "Phil Ruffwind @Rufflewind": - - blas-hs + - blas-hs < 0 # MonadFail "Eitan Chatav @echatav": - - squeal-postgresql < 0 + - free-categories + - squeal-postgresql "Sam Quinn @Lazersmoke": - ghost-buster "typeable.io ": - - dom-parser - - xml-isogen + - dom-parser < 0 # via xml-lens + - xml-isogen < 0 # via dom-parser "Jeremy Huffman @jeremyjh": - higher-leveldb @@ -3485,8 +3818,8 @@ packages: "Naoto Shimazaki @nshimaza": - thread-hierarchy + - thread-supervisor - bitset-word8 - - cisco-spark-api - webex-teams-api - webex-teams-conduit - webex-teams-pipes @@ -3505,11 +3838,29 @@ packages: - colorize-haskell "Chris Martin @chris-martin": + - data-forest - loc - partial-semigroup - path-text-utf8 + "Type Classes @argumatronic @chris-martin": + - ascii + - ascii-case + - ascii-char + - ascii-group + - ascii-predicates + - ascii-superset + - ascii-th + - aws-cloudfront-signed-cookies + - data-ascii + - d10 + - stripe-concepts + - stripe-signature < 0 # criterion 0.27 + - stripe-scotty < 0 # via scotty + - stripe-wreq < 0 # via wreq + "Viacheslav Lotsmanov @unclechu": + - place-cursor-at - qm-interpolated-string "Douglas Burke @DougBurke": @@ -3522,6 +3873,8 @@ packages: "Csongor Kiss @kcsongor": - generic-lens + - generic-optics + - generic-lens-core "Bogdan Neterebskii @ozzzzz": - cast @@ -3532,10 +3885,12 @@ packages: - binary-ext "Bob Long @bobjflong": - - yesod-csp + - yesod-csp < 0 # via yesod-core "Alexander Vershilov @qnikst": - stm-conduit + - co-log-concurrent + - HaskellNet "Tung Dao @tungd": - time-locale-vietnamese @@ -3546,53 +3901,81 @@ packages: - airship < 0 # GHC 8.4 via http-media - hedgehog-corpus - "Sam Stites @stites": - - gym-http-api - "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-persistent - genvalidity-property - genvalidity-scientific + - genvalidity-sydtest + - genvalidity-sydtest-aeson + - genvalidity-sydtest-hashable + - genvalidity-sydtest-lens + - genvalidity-sydtest-persistent - genvalidity-text - genvalidity-time + - genvalidity-typed-uuid - genvalidity-unordered-containers - genvalidity-uuid - genvalidity-vector + - mergeful + - mergeless + - pretty-relative-time + - safe-coloured-text + - sydtest + - sydtest-discover + - sydtest-persistent-sqlite + - sydtest-servant + - sydtest-wai + - sydtest-yesod + - typed-uuid - validity - validity-aeson - validity-bytestring - validity-containers - validity-path + - validity-persistent + - validity-primitive - validity-scientific - validity-text - validity-time - validity-unordered-containers - validity-uuid - validity-vector + - yamlparse-applicative "Henry Laxen @HenryLaxen": - bbdb "Stevan Andjelkovic @stevana": - - quickcheck-state-machine + - quickcheck-state-machine < 0 # via tree-diff "Sebastian Nagel @ch1bo": - - hdevtools - - servant-exceptions < 0 # https://github.com/ch1bo/servant-exceptions/issues/9 + - hdevtools < 0 # compilation failure + - servant-exceptions + - servant-exceptions-server "Vaibhav Sagar @vaibhavsagar": - - ihaskell < 0 - - ghc-parser < 0 + - ihaskell + - ghc-parser "Alexis Williams @typedrat": - stb-image-redux @@ -3610,7 +3993,7 @@ packages: "Bardur Arantsson @BardurArantsson": - peregrin - pg-harness-client - - pg-harness-server + - pg-harness-server < 0 # via scotty - unliftio-pool - unliftio-streams @@ -3623,53 +4006,88 @@ packages: "Guru Devanla @gdevanla": - pptable - - cassava-records + - cassava-records < 0 # MonadFail + - pandoc-markdown-ghci-filter < 0 # https://github.com/gdevanla/pandoc-markdown-ghci-filter/issues/3 "Lucas David Traverso @ludat": - map-syntax < 0 # GHC 8.4 via base-4.11.0.0 - heist < 0 # GHC 8.4 via map-syntax - snap < 0 # GHC 8.4 via base-4.11.0.0 + - conferer + #- conferer-snap # Because snap + - conferer-warp + - conferer-hspec + - conferer-aeson "Tim Humphries @thumphries": - transformers-either < 0 # via exceptions-0.10.0 - transformers-fix + "Dan Firth @locallycompact": + - aeson-with + - binary-instances + - comonad-extras + - composite-aeson + - composite-aeson-path + - composite-aeson-refined + - composite-aeson-throw + - composite-base + - composite-binary + - composite-ekg + - composite-hashable + - composite-tuple + - composite-xstep + - ixset-typed-binary-instance + - ixset-typed-conversions + - ixset-typed-hashable-instance + - lucid-cdn + - pandoc-dhall-decoder + - pandoc-throw + - path-binary-instance + - path-extensions + - path-like + - shake-plus + - shake-plus-extended + - within + - zipper-extra + "Domen Kozar @domenkozar": - - cachix < 0 - - cachix-api - elm2nix - - stack2nix - - mixpanel-client < 0 # https://github.com/domenkozar/mixpanel-client/issues/3 + - mixpanel-client < 0 # ghc 8.10 via servant + - netrc < 0 # ghc 8.10 - pretty-sop - - servant-auth - - servant-auth-server - - servant-auth-client - - servant-auth-swagger - - servant-auth-docs - - servant-elm - - streaming-wai + - servant-auth # ghc 8.10 + - servant-auth-server # ghc 8.10 via servant + - servant-auth-client # via warp-3.3.2 + - servant-auth-swagger # ghc 8.10 via servant + - servant-auth-docs # ghc 8.10 via servant + - servant-elm # ghc 8.10 via servant - systemd + + "Andre Van Der Merwe @andrevdm": - bhoogle < 0 - - hyraxAbif + - hyraxAbif < 0 # ghc 8.10 "David Millar-Durrant @DavidM-D": - indexed-list-literals "Dmitry Dzhus @dzhus": - - csg + - csg < 0 # via QuickCheck https://github.com/commercialhaskell/stackage/issues/4444 - simple-vec3 - static-text + - th-env - th-nowq "Dan Fithian @dfithian": - oauthenticated - datadog - interpolator + - file-path-th "Raghu Kaippully @rkaippully": - - starter + - webgear-server "Alex Washburn @recursion-ninja": - bv-little @@ -3683,17 +4101,17 @@ packages: - herms < 0 "Sergey Vinokurov @sergv": - - bencoding - - emacs-module + - bencoding < 0 # via bencode + - emacs-module < 0 # ghc 8.10.1 #5436/closed - tasty-ant-xml "Eugene Smolanka @esmolanka": - - sexp-grammar < 0 - - invertible-grammar < 0 + - sexp-grammar + - invertible-grammar "Maximilian Tagher @MaxGabriel": - - aeson-iproute - - persistent-iproute + - aeson-iproute < 0 # via iproute + - persistent-iproute < 0 # persistent-2.10.0 #4553/closed "Damian Nadales @capitanbatata": - hierarchy < 0 @@ -3705,16 +4123,16 @@ packages: - closed "Chris Coffey @ChrisCoffey": - - servant-tracing + - servant-tracing < 0 # via servant-server - cuckoo-filter - - confcrypt + - confcrypt < 0 # via crypto-pubkey-openssh & optparse-applicative-0.15.1.0 "Rick Owens @owensmurray": - om-elm < 0 "ALeX Kazik @alexkazik": - exomizer - - qnap-decrypt + - qnap-decrypt < 0 # via cipher-aes128 - qrcode-core - qrcode-juicypixels @@ -3722,12 +4140,13 @@ packages: - fuzzy-dates "Matthew Farkas-Dyck @strake": - - Fin + - Fin < 0 # compilation failure - alg - category - constraint + - dual - either-both - - filtrable + - filtrable < 0.1.5.0 # https://github.com/commercialhaskell/stackage/issues/5565 - foldable1 - hs-functors - lenz @@ -3737,20 +4156,21 @@ packages: - util "Ben Sima @bensima": - - yesod-text-markdown + - yesod-text-markdown < 0 # via persistent "Alexander Krupenkin @akru": - - web3 + - web3 < 0 # via base-4.13.0.0 & cryptonite-0.26 & memory-0.15.0 & microlens-mtl-0.2.0.1 & time-1.9.3 "Georg Rudoy <0xd34df00d@gmail.com> @0xd34df00d": + - can-i-haz - enum-subset-generate "Trevis Elser @telser": - sendfile "Kristen Kozak @grayjay": - - json-rpc-server - - json-rpc-client + - json-rpc-server < 0 # via base-4.13.0.0 + - json-rpc-client < 0 # via base-4.13.0.0 "Magnus Therning @magthe": - hsini @@ -3765,19 +4185,21 @@ packages: - natural-sort "John Biesnecker @biesnecker": - - async-pool < 0 + - async-pool "Zoltan Kelemen @kelemzol": - fswatch < 0 - "Luke Hoersten @lukehoersten": - - prometheus < 0 - - hgrev < 0 - - seqid < 0 - - seqid-streams < 0 + "Matthew Wraith @wraithm": + - prometheus + - prometheus-wai-middleware + - hgrev + - seqid + - seqid-streams "Daniel Gorin @jcpetruzza": - barbies + - data-hash "Eduard Sergeev @EduardSergeev": - monad-memo @@ -3792,10 +4214,11 @@ packages: - nqe - secp256k1-haskell - rocksdb-haskell + - rocksdb-haskell-jprupp - rocksdb-query - - haskoin-core - - haskoin-node < 0 - - haskoin-store < 0 + - haskoin-core < 0 # ghc 8.10 + - haskoin-node < 0 # ghc 8.10 + - haskoin-store < 0 # https://github.com/haskoin/haskoin-store/issues/12 "asakamirai @asakamirai": - kazura-queue @@ -3822,21 +4245,28 @@ packages: - bazel-runfiles "Rob Rix @robrix": - - fused-effects + - fused-effects < 0 # ghc 8.10 "Josef Thorne @Grendel-Grendel-Grendel": - focuslist "Pavan Rikhi @prikhi": - hs-php-session - - wordpress-auth - - servant-auth-wordpress + - wordpress-auth < 0 # via http-types + - servant-auth-wordpress < 0 # via servant-server - ca-province-codes + - mx-state-codes + - sitemap-gen + - tasty-wai + - stack-templatizer + - immortal-queue + - wai-middleware-clacks + - hledger-stockquotes - "David Baynard @dbaynard": - - time-qq # see christian-marie/time-qq#3 - - ucam-webauth - - ucam-webauth-types + "David Baynard @dbaynard": + - time-qq < 0 # see christian-marie/time-qq#3 + - ucam-webauth < 0 # via base-4.13.0.0 + - ucam-webauth-types < 0 # via base-4.13.0.0 "Erick Gonzalez @codemonkeylabs-de": - eap @@ -3846,18 +4276,283 @@ packages: - structured-cli "Jan Path @janpath": - - smallcheck-series + - smallcheck-series < 0 # via base-4.13.0.0 "Taisuke Hikawa <23.prime.37@gmail.com> @23prime": - oeis2 "David Himmelstrup @lemmih": - - reanimate-svg - - reanimate + - chiphunk + - reanimate-svg < 0 # via reanimate + - reanimate < 0 # via hgeometry & hgeometry-combinatorial + - earcut + - vector-circular + # required by reanimate as of 0.4.2.0 + - hgeometry < 0 # via vector-0.12.2.0 https://github.com/commercialhaskell/stackage/issues/5886 + - hgeometry-combinatorial < 0 # via vector-0.12.2.0 https://github.com/commercialhaskell/stackage/issues/5886 + - approximate-equality # required by hgeometry-combinatorial + - type-level-natural-number # required by approximate-equality + + "Vitaly Bragilevsky @bravit": + - Chart + - Chart-diagrams < 0 # ghc 8.10 + + "Juri Chomé @2mol": + - msgpack < 0 # via base-4.13.0.0 + # - msgpack-rpc # https://github.com/commercialhaskell/stackage/pull/4471 + # - msgpack-idl # https://github.com/commercialhaskell/stackage/pull/4471 + - msgpack-aeson < 0 # via msgpack + - int-cast + + "Akihito Kirisaki @kirisaki": + - caster < 0 # via fast-builder + + "Felix Paulusma @Vlix": + - safe-json + + "Olle Fredriksson @ollef": + - rope-utf16-splay + + "Venkateswara Rao Mandela @vmandela": + - pandoc-csv2table < 0 # compilation error + + "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 + - graphql-client + - hpc-lcov + - th-test-utils + + "Brandon Chinn @brandonchinn178": + - persistent-mtl + - fourmolu + + "Akshay Mankar @akshaymankar": + - jsonpath + + "James Brock @jamesdbrock": + - replace-megaparsec + - replace-attoparsec + + "Robbie McMichael @robbiemcmichael": + - http-client-overrides + + "Ian Graves @igraves": + - monad-resumption + + "Marius Ghita @mhitza": + - minimal-configuration + + "Davit Nalchevanidze @nalchevanidze": + - morpheus-graphql + - morpheus-graphql-core + - morpheus-graphql-client + - morpheus-graphql-subscriptions + - morpheus-graphql-app + + "Satoshi Egi @egisatoshi": + - backtracking + - egison + - mini-egison + - sweet-egison + - egison-pattern-src + - egison-pattern-src-th-mode + + "Travis Cardwell @TravisCardwell": + - ttc + + "Jasper Woudenberg @jwoudenberg": + - bugsnag-hs + - junit-xml + - wai-feature-flags + - tasty-test-reporter + - pretty-diff + + "Eric Conlon @ejconlon": + - blanks + - climb + - linenoise + - little-rio + - little-logger < 0 # ansi-terminal 0.11 via co-log + # Maintainership with @23Skidoo + - ekg + - ekg-core + - ekg-json + - ekg-statsd + + "Jorah Gao @gqk007": + - aeson-default + - vformat + - vformat-time + - vformat-aeson + - hkd-default + + "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 + - subcategories + - sized + + "Frank Doepper @woffs": + - amqp-utils + - magic + + "Ziyang Liu @zliu41": + - apply-refact + - hadoop-streaming + - indexed-containers + - math-extras + - min-max-pqueue + - multi-containers + + "Vaclav Svejcar @vaclavsvejcar": + - headroom + + "Adrian Sieber @ad-si": + - ulid + + "Rickey Visinski @rickeyski": + - slack-api + + "Dobromir Nikolov @dnikolovv": + - it-has < 0 # generic-lens 2.1 + + "Gabriele Sales @gbrsales": + - cabal-appimage + + "Dominik Schrempf @dschrempf": + - pava + - elynx-nexus + - elynx-markov + - elynx-seq + - elynx-tools + - elynx-tree + - slynx + - tlynx + - elynx + - mcmc + - dirichlet + - circular + + "Eric Rochester @erochest": + - text-regex-replace + + "Masahiro Honma @hiratara": + - string-random + + "Michael B. Gale @mbg": + - c14n + - katip-logstash + - logstash + - monad-logger-logstash + - moss + - wai-rate-limit + - wai-rate-limit-redis + - wai-saml2 + + "Jun Narumi @narumij": + - matrix-as-xyz + - hall-symbols + - symmetry-operations-symbols + + "Hideaki Kawai @kayhide": + - wakame + + "Michael Williams @mlcfp": + - zenacy-html + - zenacy-unicode + + "Maxim Koltsov @maksbotan": + - openapi3 + - servant-openapi3 + + "Song Zhang @HaskellZhangSong": + - derive-topdown + + "NoRedInk ": + - nri-env-parser + - nri-observability + - nri-prelude + + "Behrang Norouzinia @behrang": + - jalaali + + "Alexander Batischev @Minoru": + - hakyll-convert + + "Edward Nerd @nerded1337": + - zydiskell + + "Alejandro Peralta Bazas @aleperaltabazas": + - hocon + + "Joshua Booth @jnbooth": + - bitwise-enum + + "Shlomo Shuck @sjshuck": + - pcre2 + + "Emil Axelsson <78emil@gmail.com> @emax": + - tree-view + + "Samuel Gélineau @gelisam": + - haskell-awk + - hint + - recursion-schemes + + "Kyriakos Papachrysanthou @3kyro": + - keep-alive + + "Brooklyn Zelenka @expede": + - rescue + + "Artem Pelenitsyn @ulysses4ever": + - alex-meta + - happy-meta + - BNFC-meta + + "Tomasz Maciosowski @t4ccer": + - wai-session-redis + + "Rory Tyler Hayford @ngua": + - ipa + + "Andreas Herrmann @aherrmann": + - capability "Grandfathered dependencies": - Boolean - - ChasingBottoms - Decimal - Diff - FloatingHex @@ -3866,42 +4561,54 @@ packages: - HDBC - HDBC-session - HTTP + - HasBigDecimal - HsOpenSSL - HsYAML - - ListLike + - JuicyPixels-scale-dct - MemoTrie - NumInstances - Only - ParsecTools - QuickCheck - RSA - - X11 + - aeson-compat + - aeson-extra < 0 # via semialign + - aeson-optics - alsa-mixer - ansi-terminal - appar - - assoc - asn1-encoding - asn1-parse - asn1-types + - assoc - attoparsec - - authenticate - auto-update + - base-noprelude < 0 # ghc 8.10 - base64-bytestring + - base64-bytestring-type - base64-string - bimap + - bin # req'd by boring + - binary-orphans - binary-parser + - binary-tagged - bindings-DSL - bitarray - blaze-builder - blaze-svg - blaze-textual + - boring + - brick - buffer-builder + - byte-order - byteable - bytestring-builder - bytestring-strict-builder - bytestring-tree-builder - bzlib + - c2hs - ca-province-codes + - cabal-doctest - call-stack - casing - cassava-megaparsec @@ -3909,16 +4616,17 @@ packages: - cereal - cereal-text - cereal-vector - - checkers - chunked-data - - cipher-aes128 - - cipher-blowfish + - cipher-aes128 < 0 # via Cabal-3.0.0.0 + - cipher-blowfish < 0 # MonadFail - cipher-camellia - cipher-des - classy-prelude - classy-prelude-conduit - clientsession - cmark-gfm + - co-log-core + - co-log-polysemy < 0 - colour - concurrent-extra - conduit @@ -3930,13 +4638,14 @@ packages: - convertible - cookie - cpphs + - crypt-sha512 < 0 # ghc 8.10 - crypto-api - - crypto-api-tests - - crypto-cipher-tests + - crypto-api-tests < 0 # via test-framework + - crypto-cipher-tests < 0 # via test-framework - crypto-cipher-types - crypto-numbers - crypto-pubkey - - crypto-pubkey-openssh + - crypto-pubkey-openssh < 0 # MonadFail - crypto-random - cryptohash-cryptoapi - cryptohash-sha256 @@ -3947,6 +4656,7 @@ packages: - data-binary-ieee754 - data-bword - data-checked + - data-clist - data-default - data-default-class - data-default-instances-containers @@ -3958,9 +4668,9 @@ packages: - data-lens-light - data-memocombinators - data-msgpack-types - - data-reify - data-serializer - data-textual + - dec - deepseq-generics - deferred-folds - dense-linear-algebra @@ -3970,45 +4680,52 @@ packages: - discount - dlist - dlist-instances - - dotgen + - dlist-nonempty - double-conversion - - dual-tree + - dual-tree < 0 # ghc 8.10 - easy-file - - easytest + - easytest < 0 # via hedgehog-1 - ed25519 + - edit-distance + - elm-bridge - enclosed-exceptions - entropy - erf - errors - - exception-mtl - - exception-transformers - expiring-cache-map - extensible-exceptions - fail - fast-logger - fast-math + - fib < 0 # via base-noprelude-4.13 - file-embed - file-embed-lzma - filemanip + - fin - fingertree + - first-class-patterns - fmlist + - friendly-time + - functor-classes-compat + - functor-combinators < 0 # via dependent-sum - generic-arbitrary + - generics-sop-lens + - ghc-byteorder + - ghc-compact < 0 # ghc 8.10 - ghc-paths - ghc-prof - - gi-gdk - - gi-gdkpixbuf - - gi-pango + - github < 0 # base16-bytestring 1.0.0.0 - groom - groups - hackage-security + - hashable - haskell-gi-overloading - haskell-lexer - haskell-lsp-types - - haskell-src - haskell-src-exts + - haxl < 0 # via time-1.9.3 - heap - - hex - - hint + - hex < 0 # via base-4.13.0.0 - hmatrix - hmatrix-gsl - hostname @@ -4024,7 +4741,6 @@ packages: - hspec-meta - hspec-smallcheck - html - - html-conduit - html-entities - http-client-tls - http-date @@ -4032,70 +4748,80 @@ packages: - http-types - http2 - httpd-shed + - hw-json-simd - hw-string-parse - hxt - hxt-charproperties - hxt-http - hxt-regex-xmlschema - hxt-unicode - - hw-json-simd - iconv - ieee754 + - ilist + - indexed - infer-license + - insert-ordered-containers - inspection-testing + - integer-logarithms - io-streams-haproxy - - ip - ixset-typed - - json - - json-alt - - language-haskell-extract + - json < 0 # via base-4.13.0.0 + - json-alt < 0 # aeson 1.5 + - kleene < 0 # via regex-applicative + - language-haskell-extract < 0 # ghc 8.10 - largeword + - lattices - lazy-csv - libyaml - lifted-async - lifted-base - loch-th - lockfree-queue + - log-base < 0 # ghc 8.10 via unliftio-core - logging-facade - lrucache + - lukko - lzma - - mainland-pretty - managed - math-functions + - membrain - mersenne-random-pure64 - mfsolve + - microstache - mmap - mmorph - mockery - monad-control - monad-logger - monad-loops + - monad-time - monads-tf - mono-traversable-instances - mono-traversable-keys - multiset - - mwc-random + - mwc-random < 0.15.0.0 # https://github.com/commercialhaskell/stackage/issues/5557 - names-th - nanospec - nettle + - network + - network-bsd - network-byte-order - network-info - network-ip - - network-uri + - network-run + - network-uri < 2.7.0.0 || > 2.7.0.0 # 2.7.0.0 was deprecated, don't remove bound until >2.7.0.0 is released. - newtype - nicify-lib - old-locale - old-time - - one-liner + - one-liner < 2.0 # via linear-base (ghc9) - operational - optional-args - options - optparse-applicative - parallel - - parsec - path-pieces - pcg-random - - persistable-record - pipes-bytestring - pipes-group - placeholders @@ -4103,11 +4829,13 @@ packages: - polyparse - postgresql-libpq - postgresql-simple + - postgresql-simple-url < 0 # via postgresql-simple - pretty-hex - pretty-show - prettyprinter-convert-ansi-wl-pprint - primes - primitive + - primitive-unaligned - process-extras - product-isomorphic - project-template @@ -4117,16 +4845,26 @@ packages: - quickcheck-io - quickcheck-simple - quickcheck-unicode + - ral # req'd by boring - random - random-shuffle + - range-set-list - raw-strings-qq - readable - rebase + - regex-applicative-text + - regex-base + - regex-compat + - regex-pcre - regex-pcre-builtin - - regex-tdfa-text + - regex-posix + - regex-tdfa + - regex-tdfa-text < 0 # via regex-base-0.94.0.0 - relapse - relational-schemas + - relude < 1 # cabal version/parsing issue: https://github.com/commercialhaskell/stackage/issues/5921 - rerebase + - resolv - resource-pool - resourcet - rfc5051 @@ -4135,42 +4873,56 @@ packages: - safecopy - scientific - securemem + - selective + - semialign < 1.2 # via `indexed-traversable-instances` https://github.com/commercialhaskell/stackage/issues/5881 + - semialign-indexed < 1.2 # via `lens-5` https://github.com/commercialhaskell/stackage/issues/5874 + - semialign-optics < 1.2 # via `optics-core-0.4` https://github.com/commercialhaskell/stackage/issues/5881 - serialise - servant-client-core + - servant-swagger-ui + - servant-swagger-ui-core + - servant-swagger-ui-redoc < 0 # ghc 8.10 via servant & swagger2 + - servant-yaml < 0 # ghc 8.10 via servant - setenv - shakespeare - shell-escape + - shellmet + - shortcut-links - silently - simple-reflect - simple-sendfile - - singleton-nats - - size-based + - singleton-bool + - size-based < 0 # ghc 8.10 - skein - - skylighting-core + - slist - snap-core + - some - special-values - splice - split + - splitmix - sql-words - - srcloc - stateref - statistics + - step-function - stm-delay - storable-complex - - store-core - - streaming-cassava + - streaming-cassava < 0 # via streaming - strict - strict-list - string-qq - stringbuilder + - structured - sundown - syb - - symbol - system-fileio - system-filepath - tabular - tar + - tasty-lua - tasty-th + - tdigest + - template-haskell-compat-v0208 - temporary - temporary-rc - temporary-resourcet @@ -4178,8 +4930,8 @@ packages: - test-framework-hunit - test-framework-quickcheck2 - test-framework-smallcheck - - test-framework-th - - testing-feat + - test-framework-th < 0 # ghc 8.10 + - testing-feat < 0 # ghc 8.10 - testing-type-modifiers - text-builder - text-icu @@ -4192,26 +4944,45 @@ packages: - th-extras - th-lift-instances - th-utilities + - these + - these-lens < 1.0.1 || > 1.0.1 + - these-optics < 1.0.1 || > 1.0.1 - threads - thyme - time-locale-compat + - time-parsers - timeit - tls-session-manager - - token-bucket - - tonatona + - token-bucket < 0 # via base-4.13.0.0 + - tomland + - tonatona < 0 # via tonaparser - transformers-base + - tree-diff + - trivial-constraint < 0 # ghc 8.10.1 #5447/closed + - true-name < 0 # MonadFail - tuple-th - - type-fun + - type-errors-pretty + - type-fun < 0 # ghc 8.10.1 #5448/closed - type-hint + - typerep-map - uglymemo - unbounded-delays - - unix-compat + - universe + - universe-base + - universe-dependent-sum < 0 # via some + - universe-instances-base + - universe-instances-extended + - universe-instances-trans + - universe-reverse-instances + - universe-some - unix-time - url - utf8-light - utf8-string - uuid-types + - validation-selective - vault + - vec - vector - vector-algorithms - vector-binary-instances @@ -4223,7 +4994,6 @@ packages: - wai-app-static - wai-conduit - wai-eventsource - - wai-extra - wai-handler-launch - wai-logger - wai-session @@ -4243,8 +5013,8 @@ packages: - xml-hamlet - xml-types - xss-sanitize - - yeshql-core - - yeshql-hdbc + - yeshql-core < 0 # MonadFail + - yeshql-hdbc < 0 # via HDBC - yesod-core - yesod-form - yesod-persistent @@ -4256,6 +5026,8 @@ packages: # See https://github.com/fpco/stackage/issues/1056 "Abandoned packages": - curl + - Earley + - non-empty-sequence # Purescript - bower-json @@ -4268,18 +5040,14 @@ packages: # - language-lua2 # https://github.com/mitchellwrosen/language-lua2/issues/4 # GHC 8.2.1 - cassava - # https://github.com/commercialhaskell/stackage/issues/3967 - - text-format - - # Not sure how it got here but it seems to be fine - - hedgehog-fn - # Packages without maintainers that cause issues, # 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": - - stackage-types < 0 - doctest-discover-configurator < 0 + - haskell-tools-builtin-refactorings < 0 # bounds failure + - hpqtypes < 0 # bounds failure + - stackage-types < 0 # If you want to make sure a package is removed from stackage, # place it here with a `< 0` constraint and send a pull @@ -4287,224 +5055,1911 @@ packages: # affected. Packages will be kept in this list indefinitely so # that new packages depending on it will be flagged as well. "Removed packages": - - gi-webkit2 < 0 # https://github.com/fpco/stackage/issues/3415 - PSQueue < 0 # build failure with GHC 8.4 (nowhere to report, it's ancient just let it die) - - Chart < 0 # build failure with GHC 8.4 https://github.com/timbod7/haskell-chart/issues/181 - json-builder < 0 # build failure with GHC 8.4 https://github.com/lpsmith/json-builder/issues/2 - type-combinators < 0 # build failure with GHC 8.4 https://github.com/kylcarte/type-combinators/issues/8 - - HaXml < 0 # build failure with GHC 8.4 - - hsshellscript < 0 # build failure with GHC 8.4 - preprocessor-tools < 0 # build failure with GHC 8.4 - tinytemplate < 0 # build failure with GHC 8.4 - wai-route < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build - - wai-routing < 0 # DependencyFailed (PackageName "wai-route") - fingertree-psqueue < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build - cli < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build - prim-array < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build - xxhash < 0 # BuildFailureException Process exited with ExitFailure 1: ./Setup build - Unique < 0 # GHC 8.4 via base-4.11.0.0 - - ghc-compact < 0 # GHC 8.4 via base-4.11.1.0 - hastache < 0 # GHC 8.4 via base-4.11.0.0 - - attoparsec-time < 0 # GHC 8.4 via doctest-0.15.0 + - attoparsec-time < 0 # GHC 8.4 via doctest-0.150. - syb-with-class < 0 # GHC 8.4 via template-haskell-2.13.0.0 - - data-clist - - brick - lens-labels < 0 # deprecated https://github.com/commercialhaskell/stackage/pull/4358 - proto-lens-combinators < 0 # deprecated https://github.com/commercialhaskell/stackage/pull/4358 - - # Packages in the build plan that are blocked from inclusion due to - # compilation failure with ghc 8.6 - "Build failure with GHC 8.6": - # out of bounds - - SCalendar < 0 - - haskell-tools-builtin-refactorings < 0 - - hpqtypes < 0 - - primitive-extras < 0 - - ref-fd < 0 - - stm-hamt < 0 - - # failed to build - - Fin < 0 - - HPDF < 0 - - broadcast-chan < 0 - - df1 < 0 - - di-handle < 0 - - dimensional < 0 - - exinst < 0 - - extensible < 0 - - gtk2hs-buildtools < 0 - - hdevtools < 0 - - histogram-fill < 0 - - hprotoc < 0 - - jni < 0 - - large-hashable < 0 - - llvm-hs-pretty < 0 - - med-module < 0 - - monad-recorder < 0 - - multistate < 0 - - o-clock < 0 - - teardown < 0 - - typography-geometry < 0 - - universe-instances-extended < 0 - - # transitive dependencies of packages failing to build - - butcher < 0 - - capataz < 0 - - componentm < 0 - - componentm-devel < 0 - - di < 0 - - di-df1 < 0 - - geodetics < 0 - - jvm < 0 - - plot-light < 0 - - rdf < 0 - - universe < 0 - - - "Blocked per http-client-0.6": - - amazonka < 0 # via http-client-0.6.1 - - amazonka-core < 0 # via http-client-0.6.1 - - github < 0 # via http-client-0.6.1 - - hailgun < 0 # via http-client-0.6.1 - - language-puppet < 0 # via http-client-0.6.1 - - mbug < 0 # via http-client-0.6.1 - - - antiope-athena < 0 # via amazonka - - antiope-core < 0 # via amazonka - - antiope-dynamodb < 0 # via amazonka - - antiope-messages < 0 # via amazonka - - antiope-s3 < 0 # via amazonka - - antiope-sns < 0 # via amazonka - - antiope-sqs < 0 # via amazonka - - cachix-api < 0 # via amazonka - - confcrypt < 0 # via amazonka - - amazonka-apigateway < 0 # via amazonka-core - - amazonka-application-autoscaling < 0 # via amazonka-core - - amazonka-appstream < 0 # via amazonka-core - - amazonka-athena < 0 # via amazonka-core - - amazonka-autoscaling < 0 # via amazonka-core - - amazonka-budgets < 0 # via amazonka-core - - amazonka-certificatemanager < 0 # via amazonka-core - - amazonka-cloudformation < 0 # via amazonka-core - - amazonka-cloudfront < 0 # via amazonka-core - - amazonka-cloudhsm < 0 # via amazonka-core - - amazonka-cloudsearch < 0 # via amazonka-core - - amazonka-cloudsearch-domains < 0 # via amazonka-core - - amazonka-cloudtrail < 0 # via amazonka-core - - amazonka-cloudwatch < 0 # via amazonka-core - - amazonka-cloudwatch-events < 0 # via amazonka-core - - amazonka-cloudwatch-logs < 0 # via amazonka-core - - amazonka-codebuild < 0 # via amazonka-core - - amazonka-codecommit < 0 # via amazonka-core - - amazonka-codedeploy < 0 # via amazonka-core - - amazonka-codepipeline < 0 # via amazonka-core - - amazonka-cognito-identity < 0 # via amazonka-core - - amazonka-cognito-idp < 0 # via amazonka-core - - amazonka-cognito-sync < 0 # via amazonka-core - - amazonka-config < 0 # via amazonka-core - - amazonka-datapipeline < 0 # via amazonka-core - - amazonka-devicefarm < 0 # via amazonka-core - - amazonka-directconnect < 0 # via amazonka-core - - amazonka-discovery < 0 # via amazonka-core - - amazonka-dms < 0 # via amazonka-core - - amazonka-ds < 0 # via amazonka-core - - amazonka-dynamodb < 0 # via amazonka-core - - amazonka-dynamodb-streams < 0 # via amazonka-core - - amazonka-ec2 < 0 # via amazonka-core - - amazonka-ecr < 0 # via amazonka-core - - amazonka-ecs < 0 # via amazonka-core - - amazonka-efs < 0 # via amazonka-core - - amazonka-elasticache < 0 # via amazonka-core - - amazonka-elasticbeanstalk < 0 # via amazonka-core - - amazonka-elasticsearch < 0 # via amazonka-core - - amazonka-elastictranscoder < 0 # via amazonka-core - - amazonka-elb < 0 # via amazonka-core - - amazonka-elbv2 < 0 # via amazonka-core - - amazonka-emr < 0 # via amazonka-core - - amazonka-gamelift < 0 # via amazonka-core - - amazonka-glacier < 0 # via amazonka-core - - amazonka-health < 0 # via amazonka-core - - amazonka-iam < 0 # via amazonka-core - - amazonka-importexport < 0 # via amazonka-core - - amazonka-inspector < 0 # via amazonka-core - - amazonka-iot < 0 # via amazonka-core - - amazonka-iot-dataplane < 0 # via amazonka-core - - amazonka-kinesis < 0 # via amazonka-core - - amazonka-kinesis-analytics < 0 # via amazonka-core - - amazonka-kinesis-firehose < 0 # via amazonka-core - - amazonka-kms < 0 # via amazonka-core - - amazonka-lambda < 0 # via amazonka-core - - amazonka-lightsail < 0 # via amazonka-core - - amazonka-marketplace-analytics < 0 # via amazonka-core - - amazonka-marketplace-metering < 0 # via amazonka-core - - amazonka-ml < 0 # via amazonka-core - - amazonka-opsworks < 0 # via amazonka-core - - amazonka-opsworks-cm < 0 # via amazonka-core - - amazonka-pinpoint < 0 # via amazonka-core - - amazonka-polly < 0 # via amazonka-core - - amazonka-rds < 0 # via amazonka-core - - amazonka-redshift < 0 # via amazonka-core - - amazonka-rekognition < 0 # via amazonka-core - - amazonka-route53 < 0 # via amazonka-core - - amazonka-route53-domains < 0 # via amazonka-core - - amazonka-s3 < 0 # via amazonka-core - - amazonka-sdb < 0 # via amazonka-core - - amazonka-servicecatalog < 0 # via amazonka-core - - amazonka-ses < 0 # via amazonka-core - - amazonka-shield < 0 # via amazonka-core - - amazonka-sms < 0 # via amazonka-core - - amazonka-snowball < 0 # via amazonka-core - - amazonka-sns < 0 # via amazonka-core - - amazonka-sqs < 0 # via amazonka-core - - amazonka-ssm < 0 # via amazonka-core - - amazonka-stepfunctions < 0 # via amazonka-core - - amazonka-storagegateway < 0 # via amazonka-core - - amazonka-sts < 0 # via amazonka-core - - amazonka-support < 0 # via amazonka-core - - amazonka-swf < 0 # via amazonka-core - - amazonka-test < 0 # via amazonka-core - - amazonka-waf < 0 # via amazonka-core - - amazonka-workspaces < 0 # via amazonka-core - - amazonka-xray < 0 # via amazonka-core - - antiope-athena < 0 # via amazonka-core - - antiope-core < 0 # via amazonka-core - - antiope-dynamodb < 0 # via amazonka-core - - antiope-messages < 0 # via amazonka-core - - antiope-s3 < 0 # via amazonka-core - - antiope-sns < 0 # via amazonka-core - - antiope-sqs < 0 # via amazonka-core - - serverless-haskell < 0 # via amazonka-core - + - heart-core < 0 # deprecated "GHC upper bounds": # Need to always match the version shipped with GHC - Win32 == 2.6.1.0 + #"Broken with GHC 9.0.1": + # # Cabal-3.4.0.0 but upper bounded to <3.3 + # - Agda < 0 + # - cabal-rpm < 0 + # - entropy < 0 + # - fixed-vector-hetero < 0 + # - lens < 0 + # - packdeps < 0 + # - pantry < 0 + # - proto-lens-setup < 0 + # - servant-openapi3 < 0 + # - servant-swagger < 0 + # - singletons < 0 + ##### old + # - Agda < 0 + # - HTTP < 0 + # - HaXml < 0 + # - HsYAML < 0 + # - HsYAML-aeson < 0 + # - JuicyPixels-scale-dct < 0 + # - MapWith < 0 + # - MissingH < 0 + # - Rattus < 0 + # - aeson-diff < 0 + # - aeson-schemas < 0 + # - apply-refact < 0 + # - arithmoi < 0 + # - avers < 0 + # - aws-cloudfront-signed-cookies < 0 + # - bech32 < 0 + # - bech32-th < 0 + # - benchpress < 0 + # - binary-tagged < 0 + # - bits-extra < 0 + # - brick < 0 + # - broadcast-chan < 0 + # - bugzilla-redhat < 0 + # - butcher < 0 + # - bzlib < 0 + # - cabal-plan < 0 + # - cabal-rpm < 0 + # - cborg < 0 + # - cborg-json < 0 + # - circular < 0 + # - clash-ghc < 0 + # - clash-lib < 0 + # - clash-prelude < 0 + # - co-log < 0 + # - co-log-core < 0 + # - colourista < 0 + # - composite-aeson < 0 + # - composite-base < 0 + # - configurator-pg < 0 + # - country < 0 + # - crypto-enigma < 0 + # - cryptohash-md5 < 0 + # - cryptohash-sha1 < 0 + # - cryptohash-sha256 < 0 + # - cryptohash-sha512 < 0 + # - css-syntax < 0 + # - czipwith < 0 + # - d10 < 0 + # - data-accessor-template < 0 + # - data-compat < 0 + # - data-forest < 0 + # - dbus < 0 + # - deepseq-generics < 0 + # - deepseq-instances < 0 + # - dhall < 0 + # - dialogflow-fulfillment < 0 + # - dirichlet < 0 + # - doctest < 0 + # - doctest-driver-gen < 0 + # - earcut < 0 + # - ed25519 < 0 + # - egison < 0 + # - egison-pattern-src-th-mode < 0 + # - ekg < 0 + # - ekg-core < 0 + # - ekg-json < 0 + # - ekg-statsd < 0 + # - eliminators < 0 + # - email-validate < 0 + # - entropy < 0 + # - equational-reasoning < 0 + # - exception-hierarchy < 0 + # - exceptions < 0 + # - fclabels < 0 + # - feed < 0 + # - file-embed-lzma < 0 + # - first-class-families < 0 + # - fixed-vector-hetero < 0 + # - freer-simple < 0 + # - fusion-plugin < 0 + # - generic-aeson < 0 + # - generic-deriving < 0 + # - generic-functor < 0 + # - generic-monoid < 0 + # - geniplate-mirror < 0 + # - ghc-check < 0 + # - ghc-exactprint < 0 + # - ghc-lib < 0 + # - ghc-lib-parser < 0 + # - ghc-parser < 0 + # - ghc-source-gen < 0 + # - ghc-tcplugins-extra < 0 + # - ghc-typelits-extra < 0 + # - ghc-typelits-knownnat < 0 + # - ghc-typelits-natnormalise < 0 + # - ghc-typelits-presburger < 0 + # - github < 0 + # - greskell < 0 + # - greskell-core < 0 + # - greskell-websocket < 0 + # - hackage-security < 0 + # - haddock-library < 0 + # - hashable < 0 + # - haskell-import-graph < 0 + # - haskell-lsp < 0 + # - haskell-lsp-types < 0 + # - haxr < 0 + # - hedgehog < 0 + # - hgrev < 0 + # - hie-bios < 0 + # - hint < 0 + # - hledger < 0 + # - hledger-lib < 0 + # - hledger-ui < 0 + # - hledger-web < 0 + # - hmatrix < 0 + # - hmpfr < 0 + # - hslogger < 0 + # - hspec-expectations-json < 0 + # - hspec-tables < 0 + # - http-api-data < 0 + # - http-media < 0 + # - hw-dsv < 0 + # - hw-prim < 0 + # - hw-streams < 0 + # - hw-xml < 0 + # - hyper < 0 + # - ihaskell < 0 + # - ilist < 0 + # - influxdb < 0 + # - inspection-testing < 0 + # - invertible-grammar < 0 + # - io-streams-haproxy < 0 + # - ixset-typed < 0 + # - ki < 0 + # - kind-generics-th < 0 + # - lens < 0 + # - libjwt-typed < 0 + # - life-sync < 0 + # - loc < 0 + # - lzma < 0 + # - membrain < 0 + # - multistate < 0 + # - newtype < 0 + # - nri-env-parser < 0 + # - nri-observability < 0 + # - nri-prelude < 0 + # - o-clock < 0 + # - openapi3 < 0 + # - optics-extra < 0 + # - optics-th < 0 + # - packdeps < 0 + # - pantry < 0 + # - partial-semigroup < 0 + # - path-text-utf8 < 0 + # - pava < 0 + # - perfect-vector-shuffle < 0 + # - postgrest < 0 + # - pqueue < 0 + # - prairie < 0 + # - profunctors < 0 + # - proto-lens < 0 + # - proto-lens-optparse < 0 + # - proto-lens-protobuf-types < 0 + # - proto-lens-protoc < 0 + # - proto-lens-runtime < 0 + # - proto-lens-setup < 0 + # - protolude < 0 + # - publicsuffix < 0 + # - pusher-http-haskell < 0 + # - range-set-list < 0 + # - rank2classes < 0 + # - record-dot-preprocessor < 0 + # - records-sop < 0 + # - refined < 0 + # - regex-applicative-text < 0 + # - regex-pcre-builtin < 0 + # - relude < 0 + # - req < 0 + # - resolv < 0 + # - rethinkdb-client-driver < 0 + # - semialign < 0 + # - semialign-indexed < 0 + # - semialign-optics < 0 + # - serialise < 0 + # - servant < 0 + # - servant-client < 0 + # - servant-client-core < 0 + # - servant-docs < 0 + # - servant-errors < 0 + # - servant-foreign < 0 + # - servant-http-streams < 0 + # - servant-openapi3 < 0 + # - servant-server < 0 + # - servant-swagger < 0 + # - servant-swagger-ui < 0 + # - servant-swagger-ui-core < 0 + # - setlocale < 0 + # - shellmet < 0 + # - shortcut-links < 0 + # - singletons < 0 + # - singletons-presburger < 0 + # - slist < 0 + # - snap-server < 0 + # - splint < 0 + # - stackcollapse-ghc < 0 + # - strict-tuple < 0 + # - strict-tuple-lens < 0 + # - string-interpolate < 0 + # - stripe-concepts < 0 + # - structured < 0 + # - swagger2 < 0 + # - swish < 0 + # - tasty-hedgehog < 0 + # - tasty-hspec < 0 + # - tasty-wai < 0 + # - tdigest < 0 + # - termbox < 0 + # - text-ansi < 0 + # - text-format < 0 + # - text-show-instances < 0 + # - th-desugar < 0 + # - th-expand-syns < 0 + # - th-test-utils < 0 + # - these-skinny < 0 + # - threepenny-gui < 0 + # - through-text < 0 + # - timer-wheel < 0 + # - tomland < 0 + # - tonalude < 0 + # - ttc < 0 + # - type-errors-pretty < 0 + # - type-natural < 0 + # - typecheck-plugin-nat-simple < 0 + # - typerep-map < 0 + # - unicode-transforms < 0 + # - validation-selective < 0 + # - vector-binary-instances < 0 + # - vector-circular < 0 + # - weigh < 0 + # - wild-bind < 0 + # - wild-bind-x11 < 0 + # - with-utf8 < 0 + # - zydiskell < 0 + # # next set of packages broken by packages above this line + # - BNFC < 0 + # - Chart < 0 + # - ConfigFile < 0 + # - DAV < 0 + # - DBFunctor < 0 + # - ENIG < 0 + # - ForestStructures < 0 + # - HaTeX < 0 + # - HandsomeSoup < 0 + # - JuicyPixels-blurhash < 0 + # - LambdaHack < 0 + # - MusicBrainz < 0 + # - PyF < 0 + # - accuerr < 0 + # - ad < 0 + # - adjunctions < 0 + # - aeson < 0 + # - aeson-combinators < 0 + # - aeson-commit < 0 + # - aeson-compat < 0 + # - aeson-lens < 0 + # - aeson-optics < 0 + # - aeson-picker < 0 + # - aeson-with < 0 + # - amazonka-core < 0 + # - amazonka-s3 < 0 + # - ap-normalize < 0 + # - api-field-json-th < 0 + # - api-maker < 0 + # - approximate < 0 + # - arbor-lru-cache < 0 + # - arbor-postgres < 0 + # - ascii-case < 0 + # - ascii-char < 0 + # - ascii-group < 0 + # - ascii-superset < 0 + # - asciidiagram < 0 + # - asif < 0 + # - async < 0 + # - aur < 0 + # - aura < 0 + # - auto < 0 + # - avro < 0 + # - backprop < 0 + # - base16-lens < 0 + # - base32-lens < 0 + # - base64-bytestring-type < 0 + # - base64-lens < 0 + # - basic-prelude < 0 + # - bcp47 < 0 + # - bcp47-orphans < 0 + # - bcrypt < 0 + # - bimaps < 0 + # - bin < 0 + # - binary-instances < 0 + # - bins < 0 + # - boltzmann-samplers < 0 + # - bound < 0 + # - boundingboxes < 0 + # - bsb-http-chunked < 0 + # - bson < 0 + # - bugsnag-hs < 0 + # - bv-little < 0 + # - bytes < 0 + # - cabal-debian < 0 + # - cabal-file < 0 + # - cabal-flatpak < 0 + # - cabal2nix < 0 + # - cache < 0 + # - cacophony < 0 + # - casa-types < 0 + # - case-insensitive < 0 + # - cassava < 0 + # - cayley-client < 0 + # - character-cases < 0 + # - chiphunk < 0 + # - chronos < 0 + # - classy-prelude < 0 + # - clientsession < 0 + # - closed < 0 + # - co-log-concurrent < 0 + # - compdata < 0 + # - compensated < 0 + # - composable-associations < 0 + # - composable-associations-aeson < 0 + # - composite-aeson-path < 0 + # - composite-aeson-refined < 0 + # - composite-binary < 0 + # - composite-ekg < 0 + # - composite-hashable < 0 + # - composite-tuple < 0 + # - composite-xstep < 0 + # - concise < 0 + # - concurrent-supply < 0 + # - conduit-algorithms < 0 + # - configurator < 0 + # - constraints < 0 + # - construct < 0 + # - control-dsl < 0 + # - core-data < 0 + # - core-program < 0 + # - core-text < 0 + # - credential-store < 0 + # - crypto-api < 0 + # - crypto-random-api < 0 + # - cryptocompare < 0 + # - ctrie < 0 + # - cubicspline < 0 + # - cuckoo-filter < 0 + # - currency < 0 + # - cursor-brick < 0 + # - cyclotomic < 0 + # - data-ascii < 0 + # - data-dword < 0 + # - data-fix < 0 + # - data-interval < 0 + # - data-msgpack < 0 + # - data-msgpack-types < 0 + # - data-reify < 0 + # - datadog < 0 + # - dbus-hslogger < 0 + # - debian < 0 + # - declarative < 0 + # - deferred-folds < 0 + # - dejafu < 0 + # - dense-linear-algebra < 0 + # - deque < 0 + # - derive-topdown < 0 + # - dhall-bash < 0 + # - dhall-json < 0 + # - dhall-lsp-server < 0 + # - dhall-yaml < 0 + # - dimensional < 0 + # - distribution-nixpkgs < 0 + # - distribution-opensuse < 0 + # - dns < 0 + # - doctemplates < 0 + # - doctest-discover < 0 + # - download < 0 + # - duration < 0 + # - dynamic-state < 0 + # - either < 0 + # - elm2nix < 0 + # - elynx-markov < 0 + # - elynx-tools < 0 + # - envelope < 0 + # - ersatz < 0 + # - eve < 0 + # - eventful-core < 0 + # - eventstore < 0 + # - experimenter < 0 + # - expiring-cache-map < 0 + # - extended-reals < 0 + # - fakedata < 0 + # - fedora-haskell-tools < 0 + # - file-modules < 0 + # - fin < 0 + # - fixed-vector < 0 + # - flat < 0 + # - fmt < 0 + # - focuslist < 0 + # - foldl < 0 + # - folds < 0 + # - free < 0 + # - from-sum < 0 + # - ftp-client < 0 + # - functor-classes-compat < 0 + # - fuzzy-dates < 0 + # - generic-data < 0 + # - generic-data-surgery < 0 + # - generic-lens < 0 + # - generic-optics < 0 + # - generic-random < 0 + # - generics-sop-lens < 0 + # - genvalidity-hspec-hashable < 0 + # - genvalidity-property < 0 + # - genvalidity-sydtest-hashable < 0 + # - genvalidity-unordered-containers < 0 + # - geojson < 0 + # - ghc-syntax-highlighter < 0 + # - ghci-hexcalc < 0 + # - github-webhooks < 0 + # - gothic < 0 + # - graph-core < 0 + # - graphite < 0 + # - graphql-client < 0 + # - gravatar < 0 + # - gtk-sni-tray < 0 + # - hOpenPGP < 0 + # - hadolint < 0 + # - hakyll-convert < 0 + # - hall-symbols < 0 + # - happstack-server < 0 + # - hashable-time < 0 + # - hashmap < 0 + # - hashtables < 0 + # - haskell-gi < 0 + # - haskey-btree < 0 + # - hasql < 0 + # - hasql-queue < 0 + # - hasty-hamiltonian < 0 + # - headroom < 0 + # - hedgehog-fakedata < 0 + # - hedgehog-fn < 0 + # - hedgehog-quickcheck < 0 + # - hedis < 0 + # - hedn < 0 + # - heterocephalus < 0 + # - hexml-lens < 0 + # - hidapi < 0 + # - highlighting-kate < 0 + # - hledger-iadd < 0 + # - hledger-interest < 0 + # - hledger-stockquotes < 0 + # - hlint < 0 + # - hmatrix-backprop < 0 + # - hmatrix-gsl < 0 + # - hmatrix-gsl-stats < 0 + # - hmatrix-morpheus < 0 + # - hmatrix-vector-sized < 0 + # - hoauth2 < 0 + # - hocon < 0 + # - hoogle < 0 + # - hopenpgp-tools < 0 + # - hpack-dhall < 0 + # - hsc2hs < 0 + # - hslua-aeson < 0 + # - hspec-hedgehog < 0 + # - htoml < 0 + # - http-date < 0 + # - http-link-header < 0 + # - http-types < 0 + # - http2 < 0 + # - human-readable-duration < 0 + # - hw-balancedparens < 0 + # - hw-bits < 0 + # - hw-conduit < 0 + # - hw-diagnostics < 0 + # - hw-eliasfano < 0 + # - hw-excess < 0 + # - hw-fingertree < 0 + # - hw-fingertree-strict < 0 + # - hw-hedgehog < 0 + # - hw-hspec-hedgehog < 0 + # - hw-ip < 0 + # - hw-json < 0 + # - hw-json-simd < 0 + # - hw-json-simple-cursor < 0 + # - hw-json-standard-cursor < 0 + # - hw-mquery < 0 + # - hw-packed-vector < 0 + # - hw-parser < 0 + # - hw-rankselect < 0 + # - hw-rankselect-base < 0 + # - hw-simd < 0 + # - hw-succinct < 0 + # - hxt-http < 0 + # - hyperloglog < 0 + # - incremental-parser < 0 + # - inline-c < 0 + # - inline-r < 0 + # - insert-ordered-containers < 0 + # - intern < 0 + # - interpolator < 0 + # - intro < 0 + # - invariant < 0 + # - invertible < 0 + # - iproute < 0 + # - ipynb < 0 + # - irc-client < 0 + # - irc-conduit < 0 + # - ixset-typed-binary-instance < 0 + # - ixset-typed-conversions < 0 + # - ixset-typed-hashable-instance < 0 + # - jose < 0 + # - json-rpc < 0 + # - jwt < 0 + # - kan-extensions < 0 + # - kanji < 0 + # - kazura-queue < 0 + # - kdt < 0 + # - keys < 0 + # - krank < 0 + # - language-nix < 0 + # - lapack < 0 + # - lattices < 0 + # - learn-physics < 0 + # - lens-action < 0 + # - lens-aeson < 0 + # - lens-csv < 0 + # - lens-datetime < 0 + # - lens-misc < 0 + # - lens-process < 0 + # - lens-properties < 0 + # - lens-regex < 0 + # - lens-regex-pcre < 0 + # - lift-generics < 0 + # - line < 0 + # - linear < 0 + # - liquid-fixpoint < 0 + # - little-logger < 0 + # - load-env < 0 + # - log-domain < 0 + # - lrucaching < 0 + # - lsp-test < 0 + # - lucid < 0 + # - lzma-conduit < 0 + # - machines < 0 + # - main-tester < 0 + # - massiv < 0 + # - massiv-io < 0 + # - massiv-persist < 0 + # - massiv-serialise < 0 + # - math-extras < 0 + # - matrix-as-xyz < 0 + # - matrix-static < 0 + # - mcmc < 0 + # - medea < 0 + # - mercury-api < 0 + # - metrics < 0 + # - mfsolve < 0 + # - microlens-aeson < 0 + # - microlens-platform < 0 + # - microlens-process < 0 + # - min-max-pqueue < 0 + # - mini-egison < 0 + # - minio-hs < 0 + # - mltool < 0 + # - mmark < 0 + # - model < 0 + # - modern-uri < 0 + # - modular < 0 + # - monad-metrics < 0 + # - mono-traversable < 0 + # - mono-traversable-keys < 0 + # - morpheus-graphql < 0 + # - morpheus-graphql-client < 0 + # - morpheus-graphql-core < 0 + # - morpheus-graphql-subscriptions < 0 + # - multiset < 0 + # - mustache < 0 + # - netwire < 0 + # - network < 0 + # - network-byte-order < 0 + # - network-ip < 0 + # - network-transport < 0 + # - nonce < 0 + # - nonempty-containers < 0 + # - nonempty-vector < 0 + # - not-gloss < 0 + # - nqe < 0 + # - numhask < 0 + # - nvim-hs < 0 + # - odbc < 0 + # - oeis2 < 0 + # - once < 0 + # - one-liner < 0 + # - opaleye < 0 + # - opentelemetry < 0 + # - opentelemetry-extra < 0 + # - optics < 0 + # - optics-vl < 0 + # - ormolu < 0 + # - pagure-cli < 0 + # - pandoc < 0 + # - pandoc-plot < 0 + # - password < 0 + # - password-instances < 0 + # - path < 0 + # - pcg-random < 0 + # - pcre-heavy < 0 + # - pcre-utils < 0 + # - pcre2 < 0 + # - perfect-hash-generator < 0 + # - persistent < 0 + # - persistent-template < 0 + # - persistent-typed-db < 0 + # - pg-harness-client < 0 + # - pgp-wordlist < 0 + # - pinboard < 0 + # - pipes-extras < 0 + # - pipes-group < 0 + # - pointed < 0 + # - poly < 0 + # - posix-paths < 0 + # - postgres-options < 0 + # - postgresql-simple < 0 + # - pptable < 0 + # - pretty-simple < 0 + # - prettyprinter < 0 + # - prettyprinter-ansi-terminal < 0 + # - prettyprinter-convert-ansi-wl-pprint < 0 + # - primitive-extras < 0 + # - process-extras < 0 + # - product-profunctors < 0 + # - profiterole < 0 + # - prometheus-client < 0 + # - prospect < 0 + # - proto3-wire < 0 + # - psqueues < 0 + # - purescript-bridge < 0 + # - pushbullet-types < 0 + # - qchas < 0 + # - quadratic-irrational < 0 + # - quickcheck-arbitrary-adt < 0 + # - quickcheck-instances < 0 + # - radius < 0 + # - rainbow < 0 + # - rainbox < 0 + # - ral < 0 + # - random-bytestring < 0 + # - random-tree < 0 + # - ranged-list < 0 + # - rasterific-svg < 0 + # - rattle < 0 + # - read-env-var < 0 + # - rebase < 0 + # - reducers < 0 + # - regex < 0 + # - regex-with-pcre < 0 + # - registry < 0 + # - relapse < 0 + # - renderable < 0 + # - req-conduit < 0 + # - resource-pool < 0 + # - retry < 0 + # - rhbzquery < 0 + # - rio < 0 + # - safe-decimal < 0 + # - safe-json < 0 + # - safe-money < 0 + # - safe-tensor < 0 + # - safecopy < 0 + # - salak < 0 + # - saltine < 0 + # - sbp < 0 + # - scheduler < 0 + # - scientific < 0 + # - scotty < 0 + # - scrypt < 0 + # - sdl2 < 0 + # - search-algorithms < 0 + # - secp256k1-haskell < 0 + # - semigroupoid-extras < 0 + # - semigroupoids < 0 + # - semirings < 0 + # - semver < 0 + # - servant-blaze < 0 + # - servant-conduit < 0 + # - servant-exceptions < 0 + # - servant-exceptions-server < 0 + # - servant-github-webhook < 0 + # - servant-machines < 0 + # - servant-multipart < 0 + # - servant-pipes < 0 + # - servant-rawm < 0 + # - serverless-haskell < 0 + # - serversession < 0 + # - sexp-grammar < 0 + # - shake < 0 + # - shake-language-c < 0 + # - shake-plus-extended < 0 + # - singleton-nats < 0 + # - sized < 0 + # - slack-api < 0 + # - slack-progressbar < 0 + # - slynx < 0 + # - smash < 0 + # - smash-lens < 0 + # - snap-core < 0 + # - sparse-tensor < 0 + # - spatial-math < 0 + # - speedy-slice < 0 + # - squeal-postgresql < 0 + # - squeather < 0 + # - stack < 0 + # - statistics < 0 + # - status-notifier-item < 0 + # - stm-containers < 0 + # - stm-hamt < 0 + # - store < 0 + # - stratosphere < 0 + # - strict < 0 + # - strict-list < 0 + # - subcategories < 0 + # - svg-tree < 0 + # - sweet-egison < 0 + # - sydtest-servant < 0 + # - symmetry-operations-symbols < 0 + # - taffybar < 0 + # - tar-conduit < 0 + # - tasty-ant-xml < 0 + # - tasty-discover < 0 + # - text-latin1 < 0 + # - text-region < 0 + # - text-short < 0 + # - text-show < 0 + # - th-reify-many < 0 + # - these < 0 + # - these-lens < 0 + # - throwable-exceptions < 0 + # - thyme < 0 + # - tidal < 0 + # - timelens < 0 + # - tmapchan < 0 + # - tmapmvar < 0 + # - tmp-postgres < 0 + # - transaction < 0 + # - tree-diff < 0 + # - trifecta < 0 + # - triplesec < 0 + # - ttl-hashtables < 0 + # - ttrie < 0 + # - turtle < 0 + # - type-errors < 0 + # - type-level-kv-list < 0 + # - typed-uuid < 0 + # - ulid < 0 + # - uniplate < 0 + # - unique < 0 + # - universum < 0 + # - unix-time < 0 + # - unordered-containers < 0 + # - uri-bytestring < 0 + # - uuid < 0 + # - uuid-types < 0 + # - validation < 0 + # - validity-unordered-containers < 0 + # - validity-vector < 0 + # - vault < 0 + # - vec < 0 + # - vector-instances < 0 + # - vector-sized < 0 + # - verbosity < 0 + # - versions < 0 + # - vty < 0 + # - wai-logger < 0 + # - wai-middleware-auth < 0 + # - wai-middleware-clacks < 0 + # - wai-rate-limit-redis < 0 + # - wai-session < 0 + # - wakame < 0 + # - warp < 0 + # - wcwidth < 0 + # - webby < 0 + # - webgear-server < 0 + # - websockets < 0 + # - websockets-snap < 0 + # - witherable-class < 0 + # - within < 0 + # - world-peace < 0 + # - wreq < 0 + # - xlsx < 0 + # - xlsx-tabular < 0 + # - xml-conduit < 0 + # - xml-html-qq < 0 + # - xml-indexed-cursor < 0 + # - xml-lens < 0 + # - xml-to-json < 0 + # - xmonad < 0 + # - xmonad-extras < 0 + # - yesod-auth < 0 + # - yesod-form < 0 + # - yesod-paginator < 0 + # - yesod-static < 0 + # - yjsvg < 0 + # - zim-parser < 0 + # - zippers < 0 + # - zlib-lens < 0 + # # next set of packages broken by packages above this line + # - Allure < 0 + # - ChannelT < 0 + # - Earley < 0 + # - H < 0 + # - HTF < 0 + # - HsOpenSSL < 0 + # - IPv6Addr < 0 + # - RSA < 0 + # - Rasterific < 0 + # - RefSerialize < 0 + # - ShellCheck < 0 + # - TCache < 0 + # - Taxonomy < 0 + # - aeson-attoparsec < 0 + # - aeson-better-errors < 0 + # - aeson-casing < 0 + # - aeson-default < 0 + # - aeson-generic-compat < 0 + # - aeson-pretty < 0 + # - aeson-qq < 0 + # - aeson-yak < 0 + # - aeson-yaml < 0 + # - alarmclock < 0 + # - amazonka-apigateway < 0 + # - amazonka-application-autoscaling < 0 + # - amazonka-appstream < 0 + # - amazonka-athena < 0 + # - amazonka-autoscaling < 0 + # - amazonka-budgets < 0 + # - amazonka-certificatemanager < 0 + # - amazonka-cloudformation < 0 + # - amazonka-cloudfront < 0 + # - amazonka-cloudhsm < 0 + # - amazonka-cloudsearch < 0 + # - amazonka-cloudsearch-domains < 0 + # - amazonka-cloudtrail < 0 + # - amazonka-cloudwatch < 0 + # - amazonka-cloudwatch-events < 0 + # - amazonka-cloudwatch-logs < 0 + # - amazonka-codebuild < 0 + # - amazonka-codecommit < 0 + # - amazonka-codedeploy < 0 + # - amazonka-codepipeline < 0 + # - amazonka-cognito-identity < 0 + # - amazonka-cognito-idp < 0 + # - amazonka-cognito-sync < 0 + # - amazonka-config < 0 + # - amazonka-datapipeline < 0 + # - amazonka-devicefarm < 0 + # - amazonka-directconnect < 0 + # - amazonka-discovery < 0 + # - amazonka-dms < 0 + # - amazonka-ds < 0 + # - amazonka-dynamodb < 0 + # - amazonka-dynamodb-streams < 0 + # - amazonka-ecr < 0 + # - amazonka-ecs < 0 + # - amazonka-efs < 0 + # - amazonka-elasticache < 0 + # - amazonka-elasticbeanstalk < 0 + # - amazonka-elasticsearch < 0 + # - amazonka-elastictranscoder < 0 + # - amazonka-elb < 0 + # - amazonka-elbv2 < 0 + # - amazonka-emr < 0 + # - amazonka-gamelift < 0 + # - amazonka-glacier < 0 + # - amazonka-glue < 0 + # - amazonka-health < 0 + # - amazonka-iam < 0 + # - amazonka-importexport < 0 + # - amazonka-inspector < 0 + # - amazonka-iot < 0 + # - amazonka-iot-dataplane < 0 + # - amazonka-kinesis < 0 + # - amazonka-kinesis-analytics < 0 + # - amazonka-kinesis-firehose < 0 + # - amazonka-kms < 0 + # - amazonka-lambda < 0 + # - amazonka-lightsail < 0 + # - amazonka-marketplace-analytics < 0 + # - amazonka-marketplace-metering < 0 + # - amazonka-ml < 0 + # - amazonka-opsworks < 0 + # - amazonka-opsworks-cm < 0 + # - amazonka-pinpoint < 0 + # - amazonka-polly < 0 + # - amazonka-rds < 0 + # - amazonka-redshift < 0 + # - amazonka-rekognition < 0 + # - amazonka-route53 < 0 + # - amazonka-route53-domains < 0 + # - amazonka-sdb < 0 + # - amazonka-servicecatalog < 0 + # - amazonka-ses < 0 + # - amazonka-shield < 0 + # - amazonka-sms < 0 + # - amazonka-snowball < 0 + # - amazonka-sns < 0 + # - amazonka-sqs < 0 + # - amazonka-ssm < 0 + # - amazonka-stepfunctions < 0 + # - amazonka-storagegateway < 0 + # - amazonka-sts < 0 + # - amazonka-support < 0 + # - amazonka-swf < 0 + # - amazonka-test < 0 + # - amazonka-waf < 0 + # - amazonka-workspaces < 0 + # - amazonka-xray < 0 + # - amqp < 0 + # - amqp-utils < 0 + # - apecs < 0 + # - apecs-gloss < 0 + # - apecs-physics < 0 + # - ascii < 0 + # - ascii-predicates < 0 + # - ascii-progress < 0 + # - ascii-th < 0 + # - async-extra < 0 + # - async-pool < 0 + # - atom-basic < 0 + # - attoparsec < 0 + # - attoparsec-path < 0 + # - authenticate < 0 + # - authenticate-oauth < 0 + # - auto-update < 0 + # - backtracking < 0 + # - base16 < 0 + # - base32 < 0 + # - base32string < 0 + # - base58-bytestring < 0 + # - base58string < 0 + # - base64 < 0 + # - bench < 0 + # - bimap-server < 0 + # - binary-ext < 0 + # - binary-parsers < 0 + # - bits < 0 + # - bitwise-enum < 0 + # - blanks < 0 + # - boring < 0 + # - bower-json < 0 + # - buffer-builder < 0 + # - bugsnag-haskell < 0 + # - bytestring-conversion < 0 + # - ca-province-codes < 0 + # - cardano-coin-selection < 0 + # - casa-client < 0 + # - cassava-conduit < 0 + # - cassava-megaparsec < 0 + # - cfenv < 0 + # - chan < 0 + # - charset < 0 + # - cheapskate < 0 + # - cheapskate-highlight < 0 + # - cheapskate-lucid < 0 + # - checkers < 0 + # - chimera < 0 + # - chronologique < 0 + # - chronos-bench < 0 + # - citeproc < 0 + # - classy-prelude-conduit < 0 + # - cmark-lucid < 0 + # - codec-rpm < 0 + # - commutative < 0 + # - comonad-extras < 0 + # - concurrent-output < 0 + # - conduit < 0 + # - conduit-extra < 0 + # - conferer-aeson < 0 + # - conferer-warp < 0 + # - config-ini < 0 + # - configurator-export < 0 + # - connection < 0 + # - connection-pool < 0 + # - criterion < 0 + # - criterion-measurement < 0 + # - cryptohash-cryptoapi < 0 + # - data-textual < 0 + # - depq < 0 + # - deriveJsonNoPrefix < 0 + # - deriving-aeson < 0 + # - distributed-closure < 0 + # - dl-fedora < 0 + # - dlist-nonempty < 0 + # - dublincore-xml-conduit < 0 + # - ecstasy < 0 + # - edit-distance-vector < 0 + # - egison-pattern-src < 0 + # - elm-bridge < 0 + # - elm-export < 0 + # - elynx < 0 + # - elynx-seq < 0 + # - elynx-tree < 0 + # - enclosed-exceptions < 0 + # - envy < 0 + # - eq < 0 + # - esqueleto < 0 + # - essence-of-live-coding < 0 + # - essence-of-live-coding-quickcheck < 0 + # - etc < 0 + # - eventful-test-helpers < 0 + # - every < 0 + # - exp-pairs < 0 + # - extra < 0 + # - faktory < 0 + # - fast-logger < 0 + # - fb < 0 + # - filelock < 0 + # - flags-applicative < 0 + # - flush-queue < 0 + # - fn < 0 + # - follow-file < 0 + # - forma < 0 + # - formatting < 0 + # - fsnotify < 0 + # - ftp-client-conduit < 0 + # - fuzzyset < 0 + # - genvalidity-aeson < 0 + # - genvalidity-containers < 0 + # - genvalidity-hspec < 0 + # - genvalidity-hspec-aeson < 0 + # - genvalidity-hspec-binary < 0 + # - genvalidity-hspec-cereal < 0 + # - genvalidity-hspec-optics < 0 + # - genvalidity-hspec-persistent < 0 + # - genvalidity-mergeful < 0 + # - genvalidity-mergeless < 0 + # - genvalidity-path < 0 + # - genvalidity-persistent < 0 + # - genvalidity-scientific < 0 + # - genvalidity-sydtest-aeson < 0 + # - genvalidity-sydtest-persistent < 0 + # - genvalidity-typed-uuid < 0 + # - genvalidity-uuid < 0 + # - genvalidity-vector < 0 + # - ghc-lib-parser-ex < 0 + # - ghc-prof < 0 + # - gi-atk < 0 + # - gi-cairo < 0 + # - gi-dbusmenu < 0 + # - gi-dbusmenugtk3 < 0 + # - gi-gdk < 0 + # - gi-gdkpixbuf < 0 + # - gi-gdkx11 < 0 + # - gi-gio < 0 + # - gi-glib < 0 + # - gi-gobject < 0 + # - gi-graphene < 0 + # - gi-gtk < 0 + # - gi-harfbuzz < 0 + # - gi-pango < 0 + # - gi-xlib < 0 + # - ginger < 0 + # - gingersnap < 0 + # - github-release < 0 + # - github-rest < 0 + # - github-types < 0 + # - gitlab-haskell < 0 + # - glabrous < 0 + # - gluturtle < 0 + # - google-isbn < 0 + # - hackage-db < 0 + # - hamtsolo < 0 + # - hapistrano < 0 + # - hasbolt < 0 + # - haskell-gi-base < 0 + # - haskell-names < 0 + # - haskell-src-exts-util < 0 + # - hasql-notifications < 0 + # - hasql-optparse-applicative < 0 + # - hasql-pool < 0 + # - hasql-transaction < 0 + # - hexstring < 0 + # - hi-file-parser < 0 + # - hinfo < 0 + # - hinotify < 0 + # - hkd-default < 0 + # - hmm-lapack < 0 + # - hosc < 0 + # - hourglass-orphans < 0 + # - hpack < 0 + # - hpc-lcov < 0 + # - hruby < 0 + # - hsdns < 0 + # - hsebaysdk < 0 + # - hslua < 0 + # - hspec-expectations-pretty-diff < 0 + # - hspec-golden-aeson < 0 + # - hspec-wai < 0 + # - hspec-wai-json < 0 + # - html-conduit < 0 + # - html-entities < 0 + # - html-entity-map < 0 + # - http-client < 0 + # - http-client-openssl < 0 + # - http-client-overrides < 0 + # - http-client-tls < 0 + # - http-common < 0 + # - http-conduit < 0 + # - http-directory < 0 + # - http-download < 0 + # - http-query < 0 + # - http-reverse-proxy < 0 + # - http-streams < 0 + # - httpd-shed < 0 + # - hunit-dejafu < 0 + # - hvega < 0 + # - hyphenation < 0 + # - immortal-queue < 0 + # - inbox < 0 + # - inflections < 0 + # - ini < 0 + # - inline-c-cpp < 0 + # - inliterate < 0 + # - interpolate < 0 + # - intset-imperative < 0 + # - io-memoize < 0 + # - io-streams < 0 + # - ipython-kernel < 0 + # - islink < 0 + # - it-has < 0 + # - jose-jwt < 0 + # - json-feed < 0 + # - json-rpc-generic < 0 + # - jsonpath < 0 + # - junit-xml < 0 + # - katip < 0 + # - katip-logstash < 0 + # - kawhi < 0 + # - koofr-client < 0 + # - kubernetes-webhook-haskell < 0 + # - language-avro < 0 + # - language-bash < 0 + # - language-docker < 0 + # - language-thrift < 0 + # - lapack-ffi-tools < 0 + # - leveldb-haskell < 0 + # - libmpd < 0 + # - liboath-hs < 0 + # - lifted-async < 0 + # - linear-circuit < 0 + # - list-t < 0 + # - llvm-hs-pure < 0 + # - logict < 0 + # - logstash < 0 + # - lucid-cdn < 0 + # - lucid-extras < 0 + # - lukko < 0 + # - lz4-frame-conduit < 0 + # - magico < 0 + # - markdown < 0 + # - massiv-test < 0 + # - matplotlib < 0 + # - matrix-market-attoparsec < 0 + # - megaparsec < 0 + # - megaparsec-tests < 0 + # - mergeful < 0 + # - mergeless < 0 + # - microstache < 0 + # - mighty-metropolis < 0 + # - mime-mail-ses < 0 + # - mmark-cli < 0 + # - mmark-ext < 0 + # - mod < 0 + # - monad-chronicle < 0 + # - monad-logger-json < 0 + # - monad-logger-logstash < 0 + # - monad-products < 0 + # - monad-unlift < 0 + # - monad-unlift-ref < 0 + # - mongoDB < 0 + # - mono-traversable-instances < 0 + # - monoid-subclasses < 0 + # - moss < 0 + # - mutable-containers < 0 + # - mx-state-codes < 0 + # - natural-transformation < 0 + # - ndjson-conduit < 0 + # - netpbm < 0 + # - netwire-input < 0 + # - netwire-input-glfw < 0 + # - network-bsd < 0 + # - network-conduit-tls < 0 + # - network-messagepack-rpc < 0 + # - network-messagepack-rpc-websocket < 0 + # - network-simple < 0 + # - network-simple-tls < 0 + # - network-transport-composed < 0 + # - nonemptymap < 0 + # - nsis < 0 + # - nuxeo < 0 + # - nvim-hs-contrib < 0 + # - nvim-hs-ghcid < 0 + # - oauthenticated < 0 + # - one-liner-instances < 0 + # - opensource < 0 + # - openssl-streams < 0 + # - opentelemetry-lightstep < 0 + # - opentelemetry-wai < 0 + # - pandoc-types < 0 + # - parsers < 0 + # - path-binary-instance < 0 + # - path-extensions < 0 + # - path-extra < 0 + # - path-io < 0 + # - path-like < 0 + # - pdfinfo < 0 + # - peregrin < 0 + # - persistent-documentation < 0 + # - persistent-mtl < 0 + # - persistent-mysql < 0 + # - persistent-pagination < 0 + # - persistent-postgresql < 0 + # - persistent-qq < 0 + # - persistent-sqlite < 0 + # - persistent-test < 0 + # - pg-transact < 0 + # - pipes-aeson < 0 + # - pipes-bytestring < 0 + # - pipes-concurrency < 0 + # - pipes-csv < 0 + # - pipes-network < 0 + # - pipes-network-tls < 0 + # - pipes-ordered-zip < 0 + # - pipes-wai < 0 + # - pkgtreediff < 0 + # - plaid < 0 + # - plotlyhs < 0 + # - poly-arity < 0 + # - port-utils < 0 + # - postgresql-binary < 0 + # - postgresql-libpq-notify < 0 + # - postgresql-orm < 0 + # - postgresql-typed < 0 + # - prettyprinter-compat-annotated-wl-pprint < 0 + # - prettyprinter-compat-ansi-wl-pprint < 0 + # - prettyprinter-compat-wl-pprint < 0 + # - primitive-unlifted < 0 + # - prometheus < 0 + # - prometheus-wai-middleware < 0 + # - protobuf < 0 + # - protobuf-simple < 0 + # - protocol-buffers < 0 + # - pureMD5 < 0 + # - pvar < 0 + # - qrcode-core < 0 + # - quickcheck-classes < 0 + # - range < 0 + # - ratel < 0 + # - ratel-wai < 0 + # - recursion-schemes < 0 + # - reform-happstack < 0 + # - rerebase < 0 + # - resistor-cube < 0 + # - resourcet-pool < 0 + # - result < 0 + # - rhine < 0 + # - rigel-viz < 0 + # - rio-orphans < 0 + # - rio-prettyprint < 0 + # - roc-id < 0 + # - rpmbuild-order < 0 + # - salak-yaml < 0 + # - sampling < 0 + # - scalpel < 0 + # - sdl2-gfx < 0 + # - sdl2-image < 0 + # - sdl2-mixer < 0 + # - sdl2-ttf < 0 + # - selda < 0 + # - selda-json < 0 + # - selda-postgresql < 0 + # - selda-sqlite < 0 + # - sendfile < 0 + # - sequence-formats < 0 + # - sequenceTools < 0 + # - serversession-frontend-wai < 0 + # - set-cover < 0 + # - shake-plus < 0 + # - shakespeare < 0 + # - shell-conduit < 0 + # - shelly < 0 + # - shikensu < 0 + # - simple-log < 0 + # - simple-sendfile < 0 + # - simple-templates < 0 + # - skein < 0 + # - skews < 0 + # - skylighting-core < 0 + # - smash-aeson < 0 + # - smash-microlens < 0 + # - smoothie < 0 + # - smtp-mail < 0 + # - snap-blaze < 0 + # - soap < 0 + # - soap-openssl < 0 + # - soap-tls < 0 + # - socks < 0 + # - sourcemap < 0 + # - sparse-linear-algebra < 0 + # - special-values < 0 + # - splice < 0 + # - stache < 0 + # - stm-conduit < 0 + # - store-streaming < 0 + # - streaming-commons < 0 + # - streams < 0 + # - string-conversions < 0 + # - string-random < 0 + # - stripe-core < 0 + # - stripe-http-client < 0 + # - stripe-tests < 0 + # - strive < 0 + # - swagger < 0 + # - sydtest < 0 + # - sydtest-discover < 0 + # - sydtest-persistent-sqlite < 0 + # - sydtest-wai < 0 + # - sydtest-yesod < 0 + # - systemd < 0 + # - tagged-transformer < 0 + # - tasty < 0 + # - tasty-dejafu < 0 + # - tasty-golden < 0 + # - tasty-silver < 0 + # - text-builder < 0 + # - text-printer < 0 + # - textlocal < 0 + # - th-orphans < 0 + # - th-printf < 0 + # - these-optics < 0 + # - throttle-io-stream < 0 + # - tinylog < 0 + # - tls < 0 + # - tls-debug < 0 + # - tls-session-manager < 0 + # - tlynx < 0 + # - tostring < 0 + # - tracing < 0 + # - tracing-control < 0 + # - typed-process < 0 + # - ua-parser < 0 + # - unagi-chan < 0 + # - unboxed-ref < 0 + # - unboxing-vector < 0 + # - uncertain < 0 + # - uniq-deep < 0 + # - unit-constraint < 0 + # - universe-instances-extended < 0 + # - unliftio < 0 + # - unliftio-pool < 0 + # - uri-bytestring-aeson < 0 + # - users < 0 + # - utf8-conversions < 0 + # - validity-aeson < 0 + # - validity-path < 0 + # - validity-persistent < 0 + # - validity-scientific < 0 + # - validity-uuid < 0 + # - vector-bytes-instances < 0 + # - vformat-aeson < 0 + # - wai < 0 + # - wai-app-static < 0 + # - wai-conduit < 0 + # - wai-cors < 0 + # - wai-enforce-https < 0 + # - wai-extra < 0 + # - wai-feature-flags < 0 + # - wai-handler-launch < 0 + # - wai-middleware-caching < 0 + # - wai-middleware-static < 0 + # - wai-rate-limit < 0 + # - wai-saml2 < 0 + # - wai-slack-middleware < 0 + # - wai-websockets < 0 + # - warp-tls < 0 + # - warp-tls-uid < 0 + # - webdriver < 0 + # - webex-teams-api < 0 + # - webex-teams-conduit < 0 + # - webex-teams-pipes < 0 + # - wss-client < 0 + # - wuss < 0 + # - xdg-desktop-entry < 0 + # - xml-conduit-writer < 0 + # - xml-hamlet < 0 + # - xmonad-contrib < 0 + # - yaml < 0 + # - yamlparse-applicative < 0 + # - yesod < 0 + # - yesod-auth-hashdb < 0 + # - yesod-auth-oauth2 < 0 + # - yesod-bin < 0 + # - yesod-core < 0 + # - yesod-fb < 0 + # - yesod-gitrev < 0 + # - yesod-markdown < 0 + # - yesod-newsfeed < 0 + # - yesod-page-cursor < 0 + # - yesod-persistent < 0 + # - yesod-sitemap < 0 + # - yesod-test < 0 + # - yesod-websockets < 0 + # - yi-rope < 0 + # - zeromq4-haskell < 0 + # - zeromq4-patterns < 0 + # - zip < 0 + # - ztail < 0 + # # next set of packages broken by packages above this line + # - Color < 0 + # - HsOpenSSL-x509-system < 0 + # - JuicyPixels-extra < 0 + # - QuasiText < 0 + # - Spintax < 0 + # - ace < 0 + # - async-refresh < 0 + # - async-refresh-tokens < 0 + # - attoparsec-base64 < 0 + # - attoparsec-binary < 0 + # - attoparsec-expr < 0 + # - attoparsec-iso8601 < 0 + # - base64-bytestring < 0 + # - binary-conduit < 0 + # - bitvec < 0 + # - board-games < 0 + # - boolean-like < 0 + # - byte-count-reader < 0 + # - bz2 < 0 + # - bzlib-conduit < 0 + # - cases < 0 + # - cereal-conduit < 0 + # - cmark-gfm < 0 + # - commonmark < 0 + # - commonmark-extensions < 0 + # - commonmark-pandoc < 0 + # - conduit-concurrent-map < 0 + # - conduit-parse < 0 + # - conduit-zstd < 0 + # - cpio-conduit < 0 + # - cpuinfo < 0 + # - cron < 0 + # - crypto-numbers < 0 + # - crypto-pubkey < 0 + # - cryptohash < 0 + # - cryptonite-conduit < 0 + # - css-text < 0 + # - cue-sheet < 0 + # - cursor-fuzzy-time < 0 + # - cursor-gen < 0 + # - data-serializer < 0 + # - dataurl < 0 + # - doclayout < 0 + # - dotenv < 0 + # - editor-open < 0 + # - elynx-nexus < 0 + # - errors-ext < 0 + # - essence-of-live-coding-gloss < 0 + # - essence-of-live-coding-pulse < 0 + # - fakedata-parser < 0 + # - filepattern < 0 + # - flat-mcmc < 0 + # - fold-debounce-conduit < 0 + # - frontmatter < 0 + # - fsnotify-conduit < 0 + # - fuzzy < 0 + # - fuzzy-time < 0 + # - generics-sop < 0 + # - genvalidity-bytestring < 0 + # - genvalidity-criterion < 0 + # - genvalidity-sydtest < 0 + # - genvalidity-sydtest-lens < 0 + # - genvalidity-text < 0 + # - genvalidity-time < 0 + # - ghcid < 0 + # - gi-cairo-connector < 0 + # - gi-cairo-render < 0 + # - gi-gtk-hs < 0 + # - gtk-strut < 0 + # - hadoop-streaming < 0 + # - haskell-src-meta < 0 + # - hexml < 0 + # - higher-leveldb < 0 + # - hjsmin < 0 + # - hkgr < 0 + # - hostname-validate < 0 + # - hp2pretty < 0 + # - hprotoc < 0 + # - hslua-module-doclayout < 0 + # - hslua-module-system < 0 + # - hslua-module-text < 0 + # - hspec-attoparsec < 0 + # - hspec-checkers < 0 + # - hspec-megaparsec < 0 + # - hw-conduit-merges < 0 + # - hweblib < 0 + # - imagesize-conduit < 0 + # - input-parsers < 0 + # - ip6addr < 0 + # - irc < 0 + # - language-protobuf < 0 + # - libyaml < 0 + # - llvm-hs < 0 + # - logging < 0 + # - makefile < 0 + # - mock-time < 0 + # - monad-logger < 0 + # - mysql-simple < 0 + # - neat-interpolation < 0 + # - network-uri < 0 + # - nix-derivation < 0 + # - openpgp-asciiarmor < 0 + # - pager < 0 + # - parser-combinators-tests < 0 + # - pipes-attoparsec < 0 + # - pipes-binary < 0 + # - pipes-fastx < 0 + # - pipes-http < 0 + # - pretty-relative-time < 0 + # - project-template < 0 + # - protocol-buffers-descriptor < 0 + # - qrcode-juicypixels < 0 + # - quickcheck-special < 0 + # - rampart < 0 + # - rcu < 0 + # - rdf < 0 + # - reform-hamlet < 0 + # - replace-attoparsec < 0 + # - replace-megaparsec < 0 + # - rhine-gloss < 0 + # - rocksdb-haskell-jprupp < 0 + # - rocksdb-query < 0 + # - safeio < 0 + # - seqid-streams < 0 + # - serf < 0 + # - ses-html < 0 + # - simple-cmd < 0 + # - simple-vec3 < 0 + # - skylighting < 0 + # - smallcheck < 0 + # - sqlite-simple < 0 + # - streaming-attoparsec < 0 + # - stripe-haskell < 0 + # - tagged-binary < 0 + # - tasty-bench < 0 + # - tasty-expected-failure < 0 + # - tasty-focus < 0 + # - tasty-hunit < 0 + # - tasty-hunit-compat < 0 + # - tasty-kat < 0 + # - tasty-leancheck < 0 + # - tasty-lua < 0 + # - tasty-program < 0 + # - tasty-quickcheck < 0 + # - tasty-rerun < 0 + # - tasty-smallcheck < 0 + # - tasty-test-reporter < 0 + # - tasty-th < 0 + # - tensors < 0 + # - terminal-progress-bar < 0 + # - texmath < 0 + # - text-ldap < 0 + # - text-regex-replace < 0 + # - th-utilities < 0 + # - thread-local-storage < 0 + # - thread-supervisor < 0 + # - time-manager < 0 + # - time-parsers < 0 + # - timerep < 0 + # - tldr < 0 + # - uniprot-kb < 0 + # - universe < 0 + # - unliftio-streams < 0 + # - urbit-hob < 0 + # - wai-eventsource < 0 + # - wikicfp-scraper < 0 + # - word-wrap < 0 + # - xeno < 0 + # - xss-sanitize < 0 + # - zenacy-html < 0 + # - zip-stream < 0 + # - zipper-extra < 0 + # - zstd < 0 + # # next set of packages broken by packages above this line + # - cgi < 0 + # - dotenv < 0 + # - frontmatter < 0 + # - getopt-generics < 0 + # - here < 0 + # - hspec-smallcheck < 0 + # - hxt < 0 + # - interpolatedstring-perl6 < 0 + # - language-c-quote < 0 + # - mixed-types-num < 0 + # - monad-logger-prefix < 0 + # - pretty-sop < 0 + # - qm-interpolated-string < 0 + # - sqlcli < 0 + # - sqlcli-odbc < 0 + # - test-framework-smallcheck < 0 + # - tuple-sop < 0 + # - uri-encode < 0 + # # next set of packages broken by packages above this line + # - epub-metadata < 0 + # - hxt-css < 0 + # - hxt-curl < 0 + # - hxt-expat < 0 + # - hxt-tagsoup < 0 + # - mime-mail < 0 + # - text-conversions < 0 + # # Following pass the constraint checks but fail at compile time + # - Decimal < 0 + # - HStringTemplate < 0 + # - barbies < 0 + # - basement < 0 + # - btrfs < 0 + # - bytestring-strict-builder < 0 + # - data-lens-light < 0 + # - drinkery < 0 + # - enum-subset-generate < 0 + # - generic-lens-core < 0 + # - hpc-codecov < 0 + # - hs-functors < 0 + # - lens-family < 0 + # - operational < 0 + # - partial-isomorphisms < 0 + # - rawfilepath < 0 + # - selective < 0 + # - th-data-compat < 0 + # - th-extras < 0 + # - traverse-with-class < 0 + # - vinyl < 0 + # - word24 < 0 + # # Blocked by packages in the above set + # - cryptonite < 0 + # - cryptonite-openssl < 0 + # - flexible-defaults < 0 + # - foundation < 0 + # - gauge < 0 + # - lenz < 0 + # - memory < 0 + # - operational-class < 0 + # - pem < 0 + # - persistable-record < 0 + # - product-isomorphic < 0 + # - random-source < 0 + # - relational-query-HDBC < 0 + # - time-lens < 0 + # # Blocked by packages in the above set + # - asn1-types < 0 + # - eap < 0 + # - hashing < 0 + # - locators < 0 + # - persistable-types-HDBC-pg < 0 + # - pkcs10 < 0 + # - protocol-radius < 0 + # - random-fu < 0 + # - relational-query < 0 + # - relational-record < 0 + # - rvar < 0 + # - securemem < 0 + # - x509 < 0 + # - x509-store < 0 + # - x509-system < 0 + # - x509-validation < 0 + # # Blocked by packages in the above set + # - asn1-encoding < 0 + # - asn1-parse < 0 + # - cipher-aes < 0 + # - cipher-camellia < 0 + # - cipher-des < 0 + # - crypto-cipher-types < 0 + # - crypto-pubkey-types < 0 + # - crypto-random < 0 + # - nettle < 0 + # - protocol-radius-test < 0 + # - relational-schemas < 0 + # # Blocked by packages in the above set + # - asn1-encoding < 0 + # - asn1-parse < 0 + # - cipher-aes < 0 + # - cipher-camellia < 0 + # - cipher-des < 0 + # - cipher-rc4 < 0 + # - cprng-aes < 0 + # - crypto-cipher-types < 0 + # - crypto-pubkey-types < 0 + # - crypto-random < 0 + # - nettle < 0 + # - protocol-radius-test < 0 + # - relational-schemas < 0 + "Stackage upper bounds": - # https://github.com/commercialhaskell/stackage/issues/4427 - - network < 3.0.0.0 - - hsdev < 0.3.3.0 - - network-bsd < 2.8.1.0 - # https://github.com/commercialhaskell/stackage/issues/4373 - - dejafu < 2.0.0.0 - - hunit-dejafu < 2.0.0.0 - - tasty-dejafu < 2.0.0.0 + # https://github.com/commercialhaskell/stackage/issues/5587 + - network < 3.1.2.0 + - dbus < 1.2.18 - # https://github.com/simonmichael/hledger/issues/983 - - easytest < 0.3 + # https://github.com/commercialhaskell/stackage/issues/5349 + - typed-uuid < 0.1.0.0 + # https://github.com/commercialhaskell/path/issues/161 + - path < 0.7.1 + + # https://github.com/commercialhaskell/stackage/issues/5474 + # When closing this, we may need to set flags.QuickCheck.old-random = false unless we've updated to QuickCheck 2.14.1 + - random < 1.2.0 + - random-fu < 0.2.7.6 + - random-source < 0.3.0.10 + - numhask < 0.7.0.0 + + # https://github.com/commercialhaskell/stackage/issues/5524 + - dlist < 1.0 + - rebase < 1.7 + - rerebase < 1.7 + + # https://github.com/commercialhaskell/stackage/issues/5598 + - base64-bytestring < 1.2 + + # https://github.com/commercialhaskell/stackage/issues/5633 + - language-c < 0.9 + + # https://github.com/commercialhaskell/stackage/issues/5666 + - generic-deriving < 1.14 + + # https://github.com/commercialhaskell/stackage/issues/5667 + - profunctors < 5.6 + - free < 5.1.6 + + # https://github.com/commercialhaskell/stackage/issues/5676 + - haskell-lsp < 0.23 + - haskell-lsp-types < 0.23 + - lsp-test < 0.11.0.6 + + # https://github.com/commercialhaskell/stackage/issues/5686 + - formatting < 7 + + # https://github.com/commercialhaskell/stackage/issues/5747 + - http-client < 0.7 + - http-client-openssl < 0.3.3 + + # https://github.com/commercialhaskell/stackage/issues/5836 + - clock < 0.8.2 + + # https://github.com/commercialhaskell/stackage/issues/5864 + - parser-combinators < 1.3.0 + - parser-combinators-tests < 1.3.0 + + # https://github.com/commercialhaskell/stackage/issues/5867 + - chronos < 1.1.2 + + # https://github.com/commercialhaskell/stackage/issues/5911 + - lens < 5 + + # https://github.com/commercialhaskell/stackage/issues/5878 + - hashable < 1.3.1.0 + - mmark < 0.0.7.3 + - tomland < 1.3.3 + - hspec-golden-aeson < 0.9.0.0 + + # https://github.com/commercialhaskell/stackage/issues/5881 + - optics < 0.4 + - optics-core < 0.4 + - optics-extra < 0.4 + - optics-th < 0.4 + + # https://github.com/commercialhaskell/stackage/issues/5922 + - eliminators < 0.8 + + # https://github.com/commercialhaskell/stackage/issues/5923 + - singleton-nats < 0.4.6 + - singletons-base < 0 + - singletons-th < 0 + + # https://github.com/commercialhaskell/stackage/issues/5924 + - singletons < 3 + + # https://github.com/commercialhaskell/stackage/issues/5925 + - th-desugar < 1.12 + + # https://github.com/commercialhaskell/stackage/issues/5926 + - clash-prelude < 1.4 + - clash-ghc < 1.4 + - clash-lib < 1.4 + + # https://github.com/commercialhaskell/stackage/issues/5937 + - dyre < 0.9.0 + + # https://github.com/commercialhaskell/stackage/issues/5941 + - http-api-data < 0.4.3 + + # https://github.com/commercialhaskell/stackage/issues/5959 + - attoparsec < 0.14.1 + + # https://github.com/commercialhaskell/stackage/issues/5962 + - haskell-gi-base < 0.25 + - haskell-gi < 0.25 + - gi-atk < 2.0.23 + - gi-cairo < 1.0.25 + - gi-dbusmenu < 0.4.9 + - gi-dbusmenugtk3 < 0.4.10 + - gi-gdk < 3.0.24 + - gi-gdkpixbuf < 2.0.25 + - gi-gdkx11 < 3.0.11 + - gi-gio < 2.0.28 + - gi-glib < 2.0.25 + - gi-gobject < 2.0.26 + - gi-graphene < 1.0.3 + - gi-gtk < 3.0.37 + - gi-gtk-hs < 0.3.10 + - gi-harfbuzz < 0.0.4 + - gi-pango < 1.0.24 + - gi-xlib <2.0.10 + + # https://github.com/commercialhaskell/stackage/issues/5968 + - persistent < 2.12 + - persistent-sqlite < 2.12.0.0 + - persistent-template < 2.12.0.0 + + - esqueleto < 3.4.2.0 + - persistent-mysql < 2.12.0.0 + - persistent-postgresql < 2.12.0.0 + - persistent-qq < 2.12.0.0 + - persistent-test < 2.12.0.0 + - persistent-typed-db < 0.1.0.3 + + # https://github.com/commercialhaskell/stackage/issues/5969 + - crackNum < 3 + + # https://github.com/commercialhaskell/stackage/issues/5975 + - singleton-bool < 0.1.6 + + # https://github.com/commercialhaskell/stackage/issues/5982 + - versions < 5.0 + + # https://github.com/commercialhaskell/stackage/issues/5983 + - yesod-form < 1.7 # end of packages # Package flags are applied to individual packages, and override the values of # global-flags package-flags: + QuickCheck: + old-random: true pathtype: old-time: false brick: demos: true + bz2: + with-bzlib: false # Exclude bzlib from benchmarks to avoid unnecessary dependencies. + mersenne-random-pure64: small_base: false @@ -4522,9 +6977,6 @@ package-flags: idris: ffi: true - minio-hs: - live-test: false - hxt: network-uri: true hxt-http: @@ -4587,10 +7039,6 @@ package-flags: # https://github.com/haskell/cabal/issues/4883 native-dns: false - # https://github.com/commercialhaskell/stackage/issues/3666 - safe-money: - serialise: false - # https://github.com/fpco/stackage/issues/3619 transformers-compat: five-three: true @@ -4604,6 +7052,13 @@ package-flags: hsdev: docs: false + bson: + _old-network: false + + mongoDB: + _old-network: false + + # end of package-flags # Special configure options for individual packages @@ -4630,127 +7085,272 @@ skipped-builds: # or if Setup fails because of missing foreign libraries. # Otherwise place them in expected-test-failures. skipped-tests: + # Outdated dependencies # These can periodically be checked for updates; - # just remove these lines and run `stackage-curator check' to verify. + # just remove these lines and run `./check' to verify. + - time-compat # base-compat 0.11 + - http-media # base-4.13 + - simple-vec3 # ghc 8.10 + - static-text # ghc 8.10 + - monad-par # ghc 8.10 + - avers # via base16-bytestring https://github.com/commercialhaskell/stackage/issues/5649 + - binary-instances # tasty 1.4 + - ftp-client # tasty 1.4 + - ginger # tasty 1.4 + - hakyll # tasty 1.4 + - pandoc # tasty 1.4 + - primitive # tasty 1.4 + - proto3-wire # tasty 1.4 + - http-link-header # QuickCheck 2.14.2 + + # test-framework per ghc 8.8 + - extensible-effects # via test-framework + - stm-conduit # via test-framework + - conduit-zstd # via test-framework + - conduit-algorithms # via test-framework + - statistics # via test-framework + - Decimal # via test-framework + - Diff # via test-framework + - ENIG # via test-framework + - Glob # via test-framework + - SHA # via test-framework + - abstract-deque-tests # via test-framework + - astro # via test-framework + - async # via test-framework + - base64-bytestring # via test-framework + - binary-bits # via test-framework + - bindings-GLFW # via test-framework + - blaze-builder # via test-framework + - blaze-textual # via test-framework + - c2hs # via test-framework + - cereal # via test-framework + - chaselev-deque # via test-framework + - cipher-aes # via test-framework + - cipher-blowfish # via test-framework + - cipher-camellia # via test-framework + - cipher-des # via test-framework + - cipher-rc4 # via test-framework + - concurrent-extra # via test-framework + - conduit-iconv # via test-framework + - configurator # via test-framework + - crypto-api-tests # via test-framework + - crypto-cipher-tests # via test-framework + - ctrie # via test-framework + - deepseq-generics # via test-framework + - doldol # via test-framework + - double-conversion # via test-framework + - enummapset # via test-framework + - exception-transformers # via test-framework + - fingertree # via test-framework + - hashable # via test-framework + - haskey-btree # via test-framework + - hmatrix-morpheus # via test-framework + - irc # via test-framework + - language-c-quote # via test-framework + - largeword # via test-framework + - lifted-base # via test-framework + - lockfree-queue # via test-framework + - lzma-conduit # via test-framework + - messagepack # via test-framework + - minimorph # via test-framework + - miniutter # via test-framework + - mltool # via test-framework + - monad-memo # via test-framework + - monad-peel # via test-framework + - murmur3 # via test-framework + - nettle # via test-framework + - network-uri # via test-framework + - numbers # via test-framework + - parsec # via test-framework + - pem # via test-framework + - perfect-hash-generator # via test-framework + - pipes # via test-framework + - pipes-extras # via test-framework + - prefix-units # via test-framework + - pureMD5 # via test-framework + - range # via test-framework + - safeio # via test-framework + - saltine # via test-framework + - scrypt # via test-framework + - siphash # via test-framework + - spatial-math # via test-framework + - terminal-progress-bar # via test-framework + - text-icu # via test-framework + - text-printer # via test-framework + - threads # via test-framework + - throttle-io-stream # via test-framework + - ttrie # via test-framework + - type-map # via test-framework + - tzdata # via test-framework + - unicode-show # via test-framework + - word24 # via test-framework + - zeromq4-patterns # via test-framework + - zstd # via test-framework + - ENIG # via test-framework-th + - doldol # via test-framework-th + - messagepack # via test-framework-th + - safeio # via test-framework-th + - tzdata # via test-framework-th + + ## GHC 9.0.1 (mostly tasty or related) + #- STMonadTrans + #- asn1-encoding + #- barbies + #- blaze-markup + #- bounded-queue + #- cabal2spec + #- casing + #- compiler-warnings + #- cookie + #- countable + #- cryptonite + #- cryptonite-openssl + #- csp + #- cubicbezier + #- data-bword + #- di-core + #- diagrams-solve + #- dunai + #- either-both + #- fast-digits + #- free-vl + #- githash + #- haskell-src-exts + #- hourglass + #- hpc-codecov + #- hsini + #- immortal + #- jira-wiki-markup + #- language-java + #- math-functions + #- matrices + #- matrix + #- monad-loops + #- nondeterminism + #- paripari + #- parsec-numeric + #- pkcs10 + #- pretty-diff + #- primitive + #- quickcheck-higherorder + #- quote-quot + #- regex-applicative + #- rope-utf16-splay + #- say + #- selective + #- sitemap-gen + #- streaming-bytestring + #- string-transform + #- structs + #- syb + #- temporary + #- test-fun + #- text-manipulate + #- titlecase + #- traverse-with-class + #- vector-rotcev + #- vector-split + #- wl-pprint-annotated + #- x509 + #- x509-store + #- x509-validation + #- xml-picklers + #- xmlgen + ## These fail to compile, despite passing bounds checks + #- do-notation + #- record-wrangler + + # other dep issues - Cabal # GHC 8.4 via base-orphans-0.7, base-orphans-0.7 + - DBFunctor # missing file test_options.csv + - MissingH # testpack, quickcheck - RSA # DRBG-0.5.5 via cipher-aes128-0.7.0.3 via Cabal-2.4 - aeson # QuickCheck-2.11.3, base-orphans-0.7, hashable-time + - antiope-s3 # via hspec-2.6.0 - atom-conduit - attoparsec # QuickCheck-2.11.3 - barrier # tasty 0.12 and tasty-hunit 0.10 - binary-parser # tasty-1.0.1.1, tasty-quickcheck-0.10, tasty-hunit-0.10.0.1 - - blaze-markup # tasty 1.1 - cabal-install # tasty 1.1 + - cayley-client # via hspec-2.6.0 + - cborg # via tasty-1.2 + - circular # QuickCHeck-2.14 + - clay # via hspec-discover-2.6.0 + - codec-rpm # via hspec-2.6.0 - colour # QuickCheck-2.11.3 + - dhall-json # tasty-silver https://github.com/commercialhaskell/stackage/issues/5795 - drawille # hspec 2.4 - ed25519 # QuickCheck, hlint and more + - elynx-tree # QuickCheck-2.14 - exact-pi # QuickCHeck 2.12, tasty-1.2 + - focuslist # via genvalidity, see https://github.com/commercialhaskell/stackage/pull/4436#issuecomment-475110614 + - ghc-prof # via tasty-1.2 + - ghc-source-gen # via QuickCheck-2.14 - github # hspec-2.6.0, hspec-discover-2.6.0 - hackage-security # QuickCheck - haddock-library # base-compat-0.10.1, hspec-2.5.1 + - haskell-names # via tasty-1.2 - http-streams # via snap-server-1.1.0.0 + - hw-balancedparens # via QuickCheck-2.12.6.1, via hspec-2.6.0 + - hw-bits # via QuickCheck-2.12.6.1 + - hw-excess # via QuickCheck-2.12.6.1, via hspec-2.6.0 + - hw-json # via hspec-2.6.0 + - hw-prim # via QuickCheck-2.12.6.1, via hspec-2.6.0 + - hw-rankselect # via QuickCheck-2.12.6.1, via hspec-2.6.0 + - hw-rankselect-base # via QuickCheck-2.12.6.1, via hspec-2.6.0 + - hw-streams # via hspec-2.6.0 - indents # tasty 0.12 and tasty-hunit 0.10 + - insert-ordered-containers # via tasty-1.2 + - int-cast # QuickCheck 2.12 - ip # hspec 2.5 https://github.com/andrewthad/haskell-ip/issues/33 - language-ecmascript # testing-feat 1.1.0.0 + - lattices # via tasty-1.2 + - netrc # via tasty-1.2 - makefile # GHC 8.2 + - mmtf # via hspec-2.7.0 - next-ref # hspec 2.3 - partial-order # HUnit 1.6 - - serialise - - stb-image-redux # hspec 2.5 - - superbuffer # QuickCheck-2.11.3 - - tar # QuickCheck-2.11.3, tasty-quickcheck, base-4.11.1 - - test-framework # QuickCheck 2.10 - - text # QuickCheck-2.11.3 - - text-short # tasty 1.1 - - tree-diff # trifecta 2 - - validation # hedgehog 0.6 - - vector # QuickCheck-2.11.3 - - zlib # tasty-quickcheck, tasty-hunit, tasty - - MissingH # testpack, quickcheck - - DBFunctor # missing file test_options.csv - # A new swath of tests per QuickCheck 2.12, hspec-2.6 - - hw-balancedparens # via QuickCheck-2.12.6.1 - - hw-bits # via QuickCheck-2.12.6.1 - - hw-excess # via QuickCheck-2.12.6.1 - - hw-prim # via QuickCheck-2.12.6.1 - - hw-rankselect # via QuickCheck-2.12.6.1 - - hw-rankselect-base # via QuickCheck-2.12.6.1 + - protobuf # hex-0.1.2 - psqueues # via QuickCheck-2.12.6.1 - pure-zlib # via QuickCheck-2.12.6.1 - - antiope-s3 # via hspec-2.6.0 - - cayley-client # via hspec-2.6.0 - - clay # via hspec-2.6.0 - - codec-rpm # via hspec-2.6.0 - - hw-balancedparens # via hspec-2.6.0 - - hw-excess # via hspec-2.6.0 - - hw-ip # via hspec-2.6.0 - - hw-json # via hspec-2.6.0 - - hw-prim # via hspec-2.6.0 - - hw-rankselect # via hspec-2.6.0 - - hw-rankselect-base # via hspec-2.6.0 - - hw-streams # via hspec-2.6.0 - - clay # via hspec-discover-2.6.0 - # another batch per removal of hedgehog - - axel # via hedgehog - - bsb-http-chunked # via hedgehog - - focuslist # via hedgehog - - hmatrix-backprop # via hedgehog - - hmatrix-vector-sized # via hedgehog - - hyraxAbif # via hedgehog - - loc # via hedgehog - - nonempty-containers # via hedgehog - - partial-semigroup # via hedgehog - - registry # via hedgehog - - relude # via hedgehog - - retry # via hedgehog - - rng-utils # via hedgehog - - summoner # via hedgehog - - tasty-discover # via hedgehog - - typerep-map # via hedgehog - - wide-word # via hedgehog - - nonempty-containers # via hedgehog-fn - - axel # via tasty-hedgehog - - bsb-http-chunked # via tasty-hedgehog - - focuslist # via tasty-hedgehog - - nonempty-containers # via tasty-hedgehog - - registry # via tasty-hedgehog - - relude # via tasty-hedgehog - - retry # via tasty-hedgehog - - rng-utils # via tasty-hedgehog - - tasty-discover # via tasty-hedgehog - - typerep-map # via tasty-hedgehog - # another batch for tasty 0.12 - - cborg # via tasty-1.2 - - ghc-prof # via tasty-1.2 - - haskell-names # via tasty-1.2 - - insert-ordered-containers # via tasty-1.2 - - lattices # via tasty-1.2 - - pandoc # via tasty-1.2 - - servant-docs # via tasty-1.2 - - sized-grid # via tasty-1.2 - - tdigest # via tasty-1.2 - - temporary-resourcet # via tasty-1.2 - - these # via tasty-1.2 - - mmtf # via hspec-2.7.0 - records-sop # via hspec-2.7.0 - - servant # via hspec-2.7.0 + - resolv # via tasty-1.2 + - serialise - servant-client # via hspec-2.7.0 - servant-client-core # via hspec-2.7.0 + - servant-docs # via tasty-1.2 - servant-foreign # via hspec-2.7.0 + - servant-http-streams # via QuickCheck-2.14 - servant-js # via hspec-2.7.0 - servant-server # via hspec-2.7.0 - servant-swagger # via hspec-2.7.0 + - sized-grid # via tasty-1.2 + - stb-image-redux # hspec 2.5 - streaming-cassava # via hspec-2.7.0 + - superbuffer # QuickCheck-2.11.3 + - tar # QuickCheck-2.11.3, tasty-quickcheck, base-4.11.1 + - tdigest # via tasty-1.2 + - temporary-resourcet # via tasty-1.2 + - test-framework # QuickCheck 2.10 + - text # QuickCheck-2.11.3 + - text-short # tasty 1.1 + - these # via tasty-1.2 + - tree-diff # trifecta 2 + - uniprot-kb # QuickCheck-2.14 + - vector # QuickCheck-2.11.3 - vinyl # via hspec-2.7.0 - - arbor-lru-cache # via hw-hspec-hedgehog via hspec-2.7.0 - - asif # via hw-hspec-hedgehog via hspec-2.7.0 - - bits-extra # via hw-hspec-hedgehog via hspec-2.7.0 - - hw-dsv # via hw-hspec-hedgehog via hspec-2.7.0 - - hw-fingertree-strict # via hw-hspec-hedgehog via hspec-2.7.0 - - hw-mquery # via hw-hspec-hedgehog via hspec-2.7.0 - - hw-simd # via hw-hspec-hedgehog via hspec-2.7.0 - + - wide-word # via semirings + - zlib # tasty-quickcheck, tasty-hunit, tasty + - comfort-array # ChasingBottoms + - hw-int + - integer-roots # smallcheck, https://github.com/commercialhaskell/stackage/issues/5424 + - registry # #5302/closed + - hashtables + - persistent-mysql # https://github.com/commercialhaskell/stackage/issues/5641 + - persistent-postgresql # https://github.com/commercialhaskell/stackage/issues/5641 + - persistent-sqlite # https://github.com/commercialhaskell/stackage/issues/5641 + - vector-circular # (verified requires missing hedgehog-classes) https://github.com/commercialhaskell/stackage/pull/5853#issuecomment-770394206 # Blocked due to tests failing to compile for GHC 8.6 - async-refresh @@ -4767,8 +7367,6 @@ skipped-tests: - distributed-closure - dotenv - enum-subset-generate - - folds - - gc - generic-lens - geojson - github-types @@ -4781,29 +7379,21 @@ skipped-tests: - kanji - megaparsec - mighty-metropolis - - monad-par - multiarg - - mustache - opml-conduit - pipes-csv - postgresql-simple - quickcheck-state-machine - rakuten - rank1dynamic - - rcu - rss-conduit + - servant-auth-server - servant-blaze - servant-cassava - - servant-auth-server - siggy-chardust - - simple-vec3 - - skews - skylighting-core - speedy-slice - - static-text - - structs - - universum - - unordered-containers + - thyme - unordered-intmap - vector-builder - wai-cors @@ -4812,25 +7402,43 @@ skipped-tests: - xml-conduit-parse - yesod-test + - sydtest-servant # https://github.com/commercialhaskell/stackage/issues/5901 + - sydtest-persistent-sqlite # https://github.com/commercialhaskell/stackage/issues/5902 + - sydtest-yesod # https://github.com/commercialhaskell/stackage/issues/5906 + - genvalidity-persistent # https://github.com/commercialhaskell/stackage/issues/5903 + + ## Fails to build with GHC 9.0.1 + #- Color # https://github.com/commercialhaskell/stackage/issues/5904 + # Transitive outdated dependencies # These can also be checked for updates periodically. - - o-clock # tasty 0.12 via tasty-hedgehog - options # ansi-terminal-0.8 via chell - path # via genvalidity genvalidity-property - system-fileio # ansi-terminal-0.8 via chell - system-filepath # ansi-terminal-0.8 via chell - buffer-builder # per HTF per cpphs per polyparse (ghc 8.6 failure) + - hasql-transaction # via rerebase # Blocked by stackage upper bounds. These can be re-enabled once # the relevant stackage upper bound is lifted. + # QuickCheck failures https://github.com/commercialhaskell/stackage/issues/4444 + - boolean-normal-forms + - cassava-conduit + - dlist-nonempty + - msgpack + - optparse-applicative + - typerep-map + - ucam-webauth + - unicode-transforms + - websockets + # via ChasingBottoms, via QuickCheck https://github.com/commercialhaskell/stackage/issues/4444 + - lapack # Compilation failures - snappy # https://github.com/bos/snappy/issues/1 - - thyme # https://github.com/commercialhaskell/stackage/issues/4003 - - genvalidity-time # https://github.com/NorfairKing/validity/issues/51 - - uri-bytestring # Could not deduce (SOP.All (SOP.All Arbitrary) xs) arising from a use of ‘SOP.hcpure’ - 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 + - dhall # https://github.com/dhall-lang/dhall-haskell/issues/1985 # Runtime issues - blank-canvas # Never finishes https://github.com/ku-fpg/blank-canvas/issues/73 @@ -4838,6 +7446,9 @@ skipped-tests: - cpio-conduit # Test file not in tarball https://github.com/da-x/cpio-conduit/issues/1 - jsaddle # Never finishes without framebuffer https://github.com/ghcjs/jsaddle/issues/9 - binary-parsers # https://github.com/winterland1989/binary-parsers/issues/3 + - simple-affine-space # https://github.com/commercialhaskell/stackage/issues/5110 + - hw-kafka-client # https://github.com/commercialhaskell/stackage/pull/5542 + - hpc-codecov # timeouts? https://github.com/commercialhaskell/stackage/issues/5976 # Missing foreign library - symengine # symengine @@ -4852,6 +7463,7 @@ skipped-tests: - cryptohash-sha1 - cryptohash-sha256 - cryptohash-sha512 + - HsYAML - lzma - resolv - token-bucket @@ -4892,11 +7504,9 @@ skipped-tests: - range-set-list - time-parsers - time-parsers + - universe-base - vec - # test build is failing - - avro - # Uses Cabal's "library internal" stanza feature - s3-signer @@ -4914,12 +7524,43 @@ skipped-tests: - clock - js-flot - js-jquery + - splitmix + - base-orphans # via hspec + - distributive # via hspec + - bifunctors # via hspec + - doctest # via hspec + - tasty-expected-failure # via tasty-hedgehog # Requires filesystem access - - json-autotype # https://github.com/commercialhaskell/stackage/issues/4185 + - json-autotype # Requires running pg-harness-server - peregrin + + # Test errors with modules not being visible + - servant-ruby # https://github.com/commercialhaskell/stackage/issues/4650 + - password-instances # https://github.com/commercialhaskell/stackage/issues/4653 + - password # https://github.com/cdepillabout/password/issues/2 + - 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 + + # executable not found + - egison # https://github.com/egison/egison/issues/250 + - http2 # https://github.com/kazu-yamamoto/http2/issues/22 + + # TODO + - rpmbuild-order + + # https://github.com/commercialhaskell/stackage/issues/5746 + - parameterized + + # via vector-0.12.2 https://github.com/commercialhaskell/stackage/issues/5851 + - lens + + # was in expected test failures, but seems we may have to skip entirely for unknown reasons, previously: https://github.com/clash-lang/clash-compiler/issues/1622 + - clash-prelude + # end of skipped-tests # Tests listed in expected-test-failures configure correctly but may fail to run @@ -4927,36 +7568,31 @@ skipped-tests: # or test run failure for these packages. # (Testsuites which can't configure should be placed under skipped-tests.) expected-test-failures: - - # GHC 8.4 - - doctest # https://github.com/sol/doctest/issues/198 - # Intermittent failures or unreliable. These tests may pass when # re-enabled, but will eventually fail again. Only remove these # from expected-failures if we know a fix has been released. - aeson-lens # https://github.com/tanakh/aeson-lens/issues/10 + - base64 # https://github.com/emilypi/base64/issues/31 + - binary-instances # https://github.com/haskellari/binary-instances/issues/7 - cabal-debian # https://github.com/ddssff/cabal-debian/issues/50 - capataz # https://github.com/roman/Haskell-capataz/issues/6 - - concurrent-extra # https://github.com/commercialhaskell/stackage/issues/3717 + - concurrent-extra # https://github.com/basvandijk/concurrent-extra/issues/12 - crypto-numbers - css-text # 0.1.2.2 https://github.com/yesodweb/css-text/issues/10 - distributed-process - distributed-process-execution # https://github.com/haskell-distributed/distributed-process-execution/issues/2 - distributed-process-task - - dns # https://github.com/kazu-yamamoto/dns/issues/29 - foldl-statistics # https://github.com/data61/foldl-statistics/issues/2 + - 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 - - libmpd # https://github.com/vimus/libmpd-haskell/issues/104 - math-functions # https://github.com/bos/math-functions/issues/25 - matplotlib # https://github.com/fpco/stackage/issues/2365 - mltool # https://github.com/Alexander-Ignatyev/mltool/issues/1 - network # Unfortunately network failures seem to happen haphazardly - nsis # Intermittent on non-Windows systems - - pandoc # https://github.com/commercialhaskell/stackage/issues/3719 - - pandoc-citeproc # https://github.com/jgm/pandoc-citeproc/issues/172 - statistics # https://github.com/bos/statistics/issues/42 # Timeouts @@ -4965,22 +7601,21 @@ expected-test-failures: # expected-tests unless we know a fix has been released. - accelerate-fourier - cabal-helper - - generic-random - graphviz - network-attoparsec - punycode - unagi-chan - zeromq4-patterns - - zip + - port-utils - # Requires running servers, accounts, or a specific - # environment. These shouldn't be re-enabled unless we know a fix - # has been released. + # Requires running servers, accounts, or a specific environment. + # These shouldn't be re-enabled unless we know a fix has been released. - GLFW-b # X - HTF # Requires shell script and are incompatible with sandboxed package databases - - HaRe # # Needs ~/.ghc-mod/cabal-helper https://github.com/fpco/stackage/pull/906 + - HaRe # Needs ~/.ghc-mod/cabal-helper https://github.com/fpco/stackage/pull/906 - IPv6DB - accelerate-bignum # CUDA GPU + - alex - amqp - aws # AWS Credentials - beam-postgres # requires Postgress instance @@ -5015,8 +7650,11 @@ expected-test-failures: - haskell-tools-cli # https://github.com/haskell-tools/haskell-tools/issues/230 - haskell-tools-refactor # https://github.com/haskell-tools/haskell-tools/issues/231 - hasql # PostgreSQL + - hasql-notifications # PostgreSQL + - hasql-queue - hasql-transaction # PostgreSQL - hedis + - hie-bios # cabal, stack, ghc; see https://github.com/commercialhaskell/stackage/issues/5025 - hocilib # oracle - hworker - influxdb @@ -5028,22 +7666,26 @@ 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 - network-anonymous-i2p - odbc # "Need ODBC_TEST_CONNECTION_STRING environment variable" - opaleye # PostgreSQL - - pandoc-pyplot # requires DISPLAY for tcltk + - pandoc-plot # requires matlab, etc and DISPLAY for tcltk + - pantry # https://github.com/commercialhaskell/stackage/issues/4628 - persistent-redis # redis - https://github.com/fpco/stackage/pull/1581 - pipes-mongodb + - postgresql-libpq-notify - postgresql-query # PostgreSQL - postgresql-simple # PostgreSQL - 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 - rethinkdb - rethinkdb-client-driver @@ -5052,60 +7694,66 @@ 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 + - slack-api # needs api key https://github.com/commercialhaskell/stackage/pull/5345 - stripe-http-streams # https://github.com/fpco/stackage/issues/2945, needs Stripe account - users-persistent # sqlite - users-postgresql-simple # PostgreSQL - wai-cors # PhantomJS - wai-session-postgresql # PostgreSQL + - wai-rate-limit-redis # Redis + - wai-session-redis # https://github.com/commercialhaskell/stackage/pull/5980 - web3 # requires running server - webdriver-angular # webdriver server - websockets - - # Deprecated - # Eventually we'll have to disable these packages completely. - - system-filepath # https://github.com/jmillikin/haskell-filesystem/issues/3 + - hnix # #5469/closed + - http-client # httpbin issues, https://github.com/snoyberg/http-client/issues/439 + - http-directory # httpbin issues, https://github.com/juhp/http-directory/issues/1 + - faktory # connection refused, https://github.com/commercialhaskell/stackage/issues/5905 + - sendgrid-v3 # Requires sendgrid API key in env #5951/closed # Missing test files in sdist # Hopefully gets fixed in the next release... - crypto-pubkey # https://github.com/vincenthz/hs-crypto-pubkey/issues/23 - doctest-discover # 0.1.0.9 https://github.com/karun012/doctest-discover/issues/22 - - graylog # 0.1.0.1 https://github.com/fpco/stackage/pull/1254 - - summoner # https://github.com/kowainik/summoner/issues/270 - - tomland # https://github.com/kowainik/tomland/issues/141 + - doctest + - haskell-awk # https://github.com/gelisam/hawk/issues/257 + - reanimate-svg # https://github.com/commercialhaskell/stackage/issues/5688 + - ghc-events # https://github.com/haskell/ghc-events/issues/70 # Assertion failures, these can be real bugs or just limitations # in the test cases. - - DRBG # https://github.com/TomMD/DRBG/issues/7 - - bitx-bitcoin # https://github.com/tebello-thejane/bitx.hs/issues/4 - - courier # https://github.com/hargettp/courier/issues/19 - download # https://github.com/fpco/stackage/issues/2811 - - haskell-tools-demo # https://github.com/haskell-tools/haskell-tools/issues/624 - - http-client # https://github.com/snoyberg/http-client/issues/360 - - http-client-tls # https://github.com/snoyberg/http-client/issues/360 - - http-link-header # https://github.com/myfreeweb/http-link-header/issues/7 - - mmark # https://github.com/commercialhaskell/stackage/issues/3906#issuecomment-413061849 - rando # https://github.com/commercialhaskell/stackage/issues/4249 - - systemd # https://github.com/erebe/systemd/issues/3 - - unicode-show # https://github.com/nushio3/unicode-show/issues/2 - - wreq - xml-picklers # https://github.com/Philonous/xml-picklers/issues/5 - - iproute # https://github.com/commercialhaskell/stackage/issues/4210 - hakyll # https://github.com/jaspervdj/hakyll/issues/682 - hpack-dhall # https://github.com/BlockScope/hpack-dhall/issues/25 + - bv-little # https://github.com/commercialhaskell/stackage/issues/4544 + - hpack # https://github.com/commercialhaskell/stackage/issues/4512 + - kawhi # https://github.com/commercialhaskell/stackage/issues/4512 + - 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 + - simple-vec3 # https://github.com/commercialhaskell/stackage/pull/5410 + - bech32-th # https://github.com/commercialhaskell/stackage/issues/5432 + - haskeline # https://github.com/commercialhaskell/stackage/issues/5439 + - character-cases # https://github.com/aiya000/hs-character-cases/issues/3 + - lz4-frame-conduit # https://github.com/nh2/lz4-frame-conduit/issues/3 + - dhall-yaml # https://github.com/commercialhaskell/stackage/issues/5640 + - dl-fedora # https://github.com/commercialhaskell/stackage/issues/5977 + + # Assertion failures due to module name ambiguity + # (These _should_ be fixed by using the `hide` section of this file) + - reanimate # https://github.com/commercialhaskell/stackage/issues/5626 # Compilation failures - - ListLike # No issue tracker, e-mail sent to maintainer - amazonka-core # https://github.com/brendanhay/amazonka/issues/397 - 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 - haddock - haskell-tools-builtin-refactorings - - hoopl # https://github.com/haskell/hoopl/issues/50 - - hspec-expectations-pretty-diff # GHC 8 issue not reported upstream since issue tracker disabled - 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 @@ -5114,7 +7762,7 @@ expected-test-failures: - squeal-postgresql # https://github.com/fpco/stackage/issues/3180 - text-icu # https://github.com/bos/text-icu/issues/32 - text-ldap # https://github.com/khibino/haskell-text-ldap/issues/1 - - tls # https://github.com/vincenthz/hs-tls/issues/247 + - type-of-html-static # https://github.com/commercialhaskell/stackage/issues/5728 - unicode-transforms # https://github.com/harendra-kumar/unicode-transforms/issues/15 - vector-algorithms # http://hub.darcs.net/dolio/vector-algorithms/issue/9 - vivid-supercollider # https://github.com/commercialhaskell/stackage/issues/4250 @@ -5123,13 +7771,24 @@ expected-test-failures: - yeshql-core # https://github.com/tdammers/yeshql/issues/6 - yeshql-hdbc # https://github.com/tdammers/yeshql/issues/6 - yesod-gitrev # https://github.com/DanBurton/yesod-gitrev/issues/5 - - # Stackage upper bounds, re-enable these when their upper bound is removed + - chronos # #5443/closed + - massiv + - hgeometry # https://github.com/commercialhaskell/stackage/issues/5777 + - string-random # https://github.com/hiratara/hs-string-random/issues/16 + - email-validate # https://github.com/Porges/email-validate-hs/issues/55 + - heterocephalus # doctest requires hidden shakespeare and blaze-markup + - iproute # doctest with hidden containers and other errors + - http-conduit # https://github.com/commercialhaskell/stackage/issues/5948 + - hw-dsv # https://github.com/commercialhaskell/stackage/issues/5948 + - relapse # https://github.com/commercialhaskell/stackage/issues/5948 + - liquid-fixpoint # https://github.com/commercialhaskell/stackage/issues/5948 + - secp256k1-haskell # https://github.com/commercialhaskell/stackage/issues/5948 + - base16 # https://github.com/commercialhaskell/stackage/issues/5948 + - prometheus-client # https://github.com/commercialhaskell/stackage/issues/5948 # Recursive deps https://github.com/fpco/stackage/issues/1818 - options - text # 1.2.2.1 - - wai-logger # Missing build dep because of this https://github.com/kazu-yamamoto/logger/issues/42 # Problem on the stackage build server, we need to dig deeper into # these if we want them fixed @@ -5140,26 +7799,15 @@ expected-test-failures: # Doctests require hidden Glob package - makefile - # Doctest failures - - bugsnag-haskell # https://github.com/pbrisbin/bugsnag-haskell/issues/42 - # Misc. - - HTTP # e.g. "ERROR: Network.Socket.connect: : unsupported operation (Cannot assign requested address)", I'm not sure if this is a build server issue... - - dbus - - genvalidity-hspec # https://github.com/NorfairKing/validity/issues/55 - - genvalidity-hspec-hashable # https://github.com/NorfairKing/validity/issues/55 - ghcid # Weird conflicts with sandboxingistributed/distributed-process-supervisor/issues/1 - pg-transact # https://github.com/jfischoff/pg-transact/issues/2 - postgresql-simple-queue # same issue as before, see also https://github.com/fpco/stackage/issues/2592 as that will fix both - rattletrap # OOM? https://github.com/fpco/stackage/issues/2232 + - relude # doctest fails due to GHC bugs, will be fixed in the next `relude` release - stm-delay # https://github.com/joeyadams/haskell-stm-delay/issues/5 - - tcp-streams # https://github.com/didi-FP/tcp-streams/issues/5 - tmp-postgres # https://github.com/jfischoff/tmp-postgres/issues/1 - - zstd # ghc 8.2.2 bug? https://github.com/fpco/stackage/issues/3219 - - # Linting failures (these may break every time HLint gets updated so keep them disabled) - # https://www.snoyman.com/blog/2017/11/future-proofing-test-suites - - folds + - invertible # https://github.com/dylex/invertible/issues/4 # https://github.com/pruvisto/heap/issues/11 - heap @@ -5167,18 +7815,12 @@ expected-test-failures: # https://github.com/commercialhaskell/stackage/issues/4289 - Diff - # https://github.com/commercialhaskell/stackage/issues/4294 - - asif - # to get fixed in version after 0.3.2 https://github.com/snoyberg/tar-conduit/issues/28 - tar-conduit # https://github.com/cchalmers/pcg-random/pull/7 - pcg-random - # https://github.com/snoyberg/conduit/issues/385 - - conduit-extra - # Stack builds test and benchmarks in one pass so benchmark could prevent tests from getting built - cryptohash @@ -5188,30 +7830,84 @@ expected-test-failures: # https://github.com/alphaHeavy/lzma-conduit/issues/19 - lzma-conduit - # https://github.com/blamario/monoid-subclasses/issues/18 - - monoid-subclasses - # https://github.com/Bodigrim/exp-pairs/issues/16 - exp-pairs - # doctests for the following packages fail because of ambiguous module - # names, to be fixed in https://github.com/sol/doctest/pull/218 - - blaze-colonnade - - co-log-core - - colonnade - - control-dsl - - dhall - - greskell-core - - jose-jwt - - jwt - - language-nix - - lens-regex - - pcre-heavy - - servant-checked-exceptions-core - - servant-rawm - - vinyl - - world-peace + # https://github.com/jgm/pandoc/issues/5582 + - pandoc + # Cannot reproduce locally, looks like it may be a bug in Stack or curator + - shake-language-c + + # https://github.com/commercialhaskell/stackage/issues/4722 + - tasty-discover + + # https://github.com/commercialhaskell/stackage/issues/4764 + - persistent-mysql + # https://github.com/commercialhaskell/stackage/issues/4763 + - persistent-postgresql + + # https://github.com/commercialhaskell/stackage/issues/4784 + - raaz + + # Requires a running server + - persistent-mongoDB + + # https://github.com/alanz/ghc-exactprint/issues/82 + - ghc-exactprint + + # Test-runner expects a cabal-style 'dist-newstyle' directory + - hjsmin + + # 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 + + # https://github.com/commercialhaskell/stackage/issues/5407 + - language-docker + + # https://github.com/takenobu-hs/ghci-hexcalc/issues/2 + - ghci-hexcalc + + # https://github.com/kazu-yamamoto/dns/issues/153 + - dns + + # https://github.com/cdornan/fmt/issues/30 + - fmt + + # https://github.com/yesodweb/yesod/issues/1711 + - yesod-core + + # https://github.com/input-output-hk/bech32/issues/31 + - bech32 + + # doctest + - headroom + - xml-indexed-cursor + - yesod-paginator + + # https://github.com/commercialhaskell/stackage/issues/5587 + - dbus + + # https://github.com/unrelentingtech/hspec-expectations-pretty-diff/issues/7 + - hspec-expectations-pretty-diff + + # https://github.com/commercialhaskell/stackage/issues/5878 + # ordering because of hashable + - mmark + - mmark-ext + + # https://github.com/kcsongor/generic-lens/issues/133 + - generic-optics + + # https://github.com/haskell-servant/servant-elm/issues/62 + - servant-elm + # end of expected-test-failures # Benchmarks which are known not to build. Note that, currently we do not run @@ -5219,16 +7915,19 @@ expected-test-failures: expected-benchmark-failures: # Recursive deps https://github.com/fpco/stackage/issues/1818 - hashable - - unordered-containers # 0.2.7.1 unordered-containers:bench -> criterion:lib -> aeson:lib -> unordered-containers:lib # Missing files in sdist # Compilation failures - cmark-gfm # https://github.com/kivikakk/cmark-gfm-hs/issues/5 - cryptohash # https://github.com/vincenthz/hs-cryptohash/pull/43 + - egison # https://github.com/egison/egison/issues/249 - http2 - lz4 # https://github.com/fpco/stackage/issues/3510 + - raaz # https://github.com/commercialhaskell/stackage/issues/4766 + - thyme - xmlgen # https://github.com/skogsbaer/xmlgen/issues/6 + - genvalidity-persistent # https://github.com/commercialhaskell/stackage/issues/5903 # end of expected-benchmark-failures @@ -5248,23 +7947,40 @@ expected-haddock-failures: # Problem on the stackage build server, we need to dig deeper into # these if we want them fixed + # internal error when calculating transitive package dependencies + - hw-balancedparens + - hw-rankselect + # "Compilation" errors - MemoTrie # https://github.com/conal/MemoTrie/issues/10 - classy-prelude-yesod - - haddock-library # https://github.com/fpco/stackage/issues/3236 - - ghc-lib # https://github.com/commercialhaskell/stackage/issues/4377 # Modules use compiler plugins # https://github.com/haskell/haddock/issues/900 - bins - emd - hmatrix-backprop + + # https://github.com/haskell/haddock/issues/1091 + - vault + + # https://github.com/commercialhaskell/stackage/issues/5681 + - hw-json + + # https://github.com/egison/egison/issues/251 + - egison + + # https://github.com/koalaman/shellcheck/issues/2216 + - ShellCheck + # end of expected-haddock-failures # For packages with haddock issues skipped-haddocks: - modular # https://github.com/haskell/haddock/issues/900 - sparkle # Java function failures tweag/sparkle#144 +- polysemy-zoo # Needs polysemy-plugin GHC plugin +- hw-ip # https://github.com/commercialhaskell/stackage/issues/5014 # end of skipped-haddocks # Benchmarks which should not be built. Note that Stackage builds benchmarks but does not run them. @@ -5274,6 +7990,8 @@ skipped-haddocks: # Otherwise place them in expected-benchmark-failures. skipped-benchmarks: + - tls # tasty-quickcheck + # Outdated dependencies # These can periodically be checked for updates; # just remove these lines and run `stackage-curator check' @@ -5281,11 +7999,12 @@ skipped-benchmarks: - binary-parsers # criterion 1.5 - buffer-builder # ghc 8.4 via json-builder build failure - cryptohash-sha512 # criterion 1.5 + - dimensional # base < 4.7, https://github.com/bjornbm/dimensional/issues/207 - ed25519 # Criterion + - extensible-effects # via test-framework - hw-balancedparens # criterion 1.5, https://github.com/commercialhaskell/stackage/issues/3880 - hw-rankselect-base # criterion 1.5, https://github.com/commercialhaskell/stackage/issues/3880 - identicon # via criterion-1.5.0.0 - - pandoc-types # via criterion-1.5.0.0 - pipes # optparse-applicative 0.13 - psqueues # ghc 8.4 via PSQueue build failure - serialise @@ -5295,20 +8014,17 @@ skipped-benchmarks: - ttrie # criterion-plus and th-pprint - tz # criterion 1.5 - unicode-transforms # path-io - - unordered-containers # criterion 1.5 - xxhash-ffi # ghc 8.4 via xxhash build failure - - hslua # criterion 1.5.1 + - typerep-map # via https://github.com/commercialhaskell/stackage/issues/4541 # Blocked due to benchmarks failing to compile for GHC 8.6 - binary-tagged - Earley - IntervalMap - - ad - attoparsec - binary-list - binary-tagged - bit-stream - - bits-extra - bitset-word8 - blake2 - broadcast-chan @@ -5327,7 +8043,6 @@ skipped-benchmarks: - data-diverse - data-has - data-msgpack - - dbus - discrimination - do-list - edit-distance @@ -5336,7 +8051,6 @@ skipped-benchmarks: - fclabels - foldl - generic-lens - - genvalidity-path - hashable - histogram-fill - hmatrix-morpheus @@ -5346,11 +8060,6 @@ skipped-benchmarks: - http-link-header - http2 - human-readable-duration - - hw-conduit - - hw-dsv - - hw-prim - - hw-rankselect - - hw-simd - hweblib - hxt-regex-xmlschema - ilist @@ -5363,11 +8072,9 @@ skipped-benchmarks: - kanji - kazura-queue - kdt - - lens - lifted-async - lifted-base - loop - - machines - matrices - matrix - megaparsec @@ -5376,15 +8083,11 @@ skipped-benchmarks: - monad-logger-prefix - monad-memo - netpbm - - newtype-generics - openpgp-asciiarmor - phantom-state - pretty-simple - - prettyprinter - prometheus-client - ramus - - rcu - - rdf - reinterpret-cast - rng-utils - sampling @@ -5396,14 +8099,11 @@ skipped-benchmarks: - sorted-list - sourcemap - stache - - stm-hamt - - sv - tar - tar-conduit - text-builder - text-manipulate - text-metrics - - thread-local-storage - tinylog - turtle - type-of-html @@ -5420,8 +8120,14 @@ skipped-benchmarks: - xlsx - xmlgen - yi-rope - - zippers - - zstd + + ## GHC 9.0.1 + #- ghc-trace-events + #- hourglass + #- math-functions + #- newtype-generics + #- quote-quot + #- say # Transitive outdated dependencies # These packages @@ -5437,7 +8143,7 @@ skipped-benchmarks: - cipher-rc4 # https://github.com/vincenthz/hs-crypto-cipher/issues/46 - extensible # via freer-effects https://github.com/fumieval/extensible/issues/12 - hw-bits # https://github.com/haskell-works/hw-bits/issues/8 - - thyme # https://github.com/commercialhaskell/stackage/issues/4003 + - persistent-template # https://github.com/commercialhaskell/stackage/issues/4760 # Cyclic dependencies - cassava @@ -5482,15 +8188,12 @@ skipped-benchmarks: - graphviz - graphviz - wl-pprint-text - # @lexi-lambda https://github.com/fpco/stackage/pull/3080 - - freer-simple # @phadej - dlist-nonempty # criterion-1.3 - splitmix # criterion-1.3 - - # Benchmark dependencies with multiple libraries per package - # See: https://github.com/fpco/stackage-curator/issues/68 - - tomland + # @sjakobi + - prettyprinter + - prettyprinter-ansi-terminal # https://github.com/commercialhaskell/stackage/issues/5560 # Due to cycles, which are actually just limitations in Stack right now. - criterion @@ -5501,6 +8204,10 @@ skipped-benchmarks: - nanospec - scientific - vector-binary-instances + - clock + + # https://github.com/commercialhaskell/stackage/issues/5541 + - regex-applicative # end of skipped-benchmarks @@ -5553,7 +8260,6 @@ github-users: clckwrks: - stepcut stackbuilders: - - javcasas - jsl - sestrella - juanpaucar @@ -5565,9 +8271,6 @@ github-users: - RyanGlScott haskell-compat: - RyanGlScott - haskell-servant: - - phadej - - jkarni vivid: - vivid-synth midair: @@ -5581,20 +8284,19 @@ github-users: arithmoi: - Bodigrim - cartazio - - phadej IxpertaSolutions: - Siprj - liskin - trskop - xkollar - futurice: - - phadej ekmett: - RyanGlScott onrock-eng: - donkeybonks tweag: - bazel-runfiles + network-multicast: + - audreyt # end of github-users @@ -5625,11 +8327,6 @@ build-tool-overrides: # - bindings-GLFW-3.1.2.1 # Comment saying what should be done when the new version is releasedskipped test-suite tell-me-when-its-released: - cpio-conduit-0.7.0 # remove from skipped-tests, https://github.com/da-x/cpio-conduit/issues/1 -- freer-effects-0.3.0.1 # re-enable extensible benchmarks -- hoopl-3.10.2.2 # reenable tests, https://github.com/haskell/hoopl/issues/50 -- point-octree-0.5.5.3 # re-enable test and then we can resolve https://github.com/fpco/lts-haskell/issues/27 -- yarr-1.4.0.2 # Re-enable package https://github.com/fpco/stackage/issues/1876 -- exp-pairs-0.2.0.0 # remove from expected-test-failures, https://github.com/Bodigrim/exp-pairs/issues/16 # Packages which should be hidden after registering, to avoid module name # conflicts. This is intended for at least two use cases: @@ -5663,7 +8360,6 @@ hide: - nanospec # conflicts with Test.Hspec in hspec - HTF # conflicts with Test.Framework in test-framework - courier # conflicts with Network.Transport in network-transport -- newtype-generics # conflicts with Control.Newtype in newtype - objective # conflicts with Control.Object in natural-transformation - binary-ieee754 # conflicts with data-binary-ieee754 - rerebase # conflicts with base @@ -5672,12 +8368,13 @@ hide: - prettyclass # conflicts with pretty and pretty-class - lenz # conflicts with lens, see https://github.com/fpco/stackage/issues/3600 - base-compat # conflicts with base-compat-batteries, see https://github.com/fpco/stackage/issues/3607 -- hs-functors # conflicts with profunctors, see https://github.com/fpco/stackage/issues/3609 +- hs-functors # conflicts with profunctors, see #3609/closed - constraint # conflicts with constraints - summoner # conflicts with Prelude in base - temporary-rc # conflicts with temporary - temporary-resourcet # conflicts with temporary - ghc-lib # per its own recommendation. conflicts with template-haskell +- ghc-lib-parser # also conflicts with template-haskell # Cryptonite deprecations - cipher-aes @@ -5711,12 +8408,15 @@ no-revisions: - foundation - gauge - stack +- http-download +- pantry +- rio-prettyprint +- hi-file-parser # https://github.com/commercialhaskell/stackage/issues/3706: - hledger - hledger-lib - hledger-ui - hledger-web -- hledger-api # Do not build these packages in parallel with others. Useful for high memory diff --git a/check b/check index 9ed2b812..6ae134e0 100755 --- a/check +++ b/check @@ -1,6 +1,14 @@ -#!/bin/sh +#!/bin/bash # Convenience script for checking constraints locally cd `dirname $0` -exec stack exec --resolver ghc-8.6.4 stackage-curator check + +export GHCVER=$(sed -n "s/^ghc-version: \"\(.*\)\"/\1/p" "build-constraints.yaml") + +NIGHTLY="nightly-$(date +%Y-%m-%d)" +curator update && + curator constraints --target=$NIGHTLY && + curator snapshot-incomplete --target=$NIGHTLY && + curator snapshot && + stack --resolver ghc-$GHCVER exec curator check-snapshot diff --git a/debian-bootstrap.sh b/debian-bootstrap.sh index bdd8f27d..6a0c76d1 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 \ @@ -77,10 +90,12 @@ apt-get install -y \ libimlib2-dev \ libjack-jackd2-dev \ libjavascriptcoregtk-4.0-dev \ + libjansson-dev \ libjudy-dev \ liblapack-dev \ libleveldb-dev \ liblmdb-dev \ + liblz4-tool \ liblzma-dev \ libmagic-dev \ libmagickcore-dev \ @@ -89,15 +104,16 @@ 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 \ libpq-dev \ libprotobuf-dev \ libre2-dev \ @@ -130,7 +146,9 @@ apt-get install -y \ libzip-dev \ libzstd-dev \ libzmq3-dev \ - llvm-6.0 \ + llvm-7 \ + llvm-8 \ + llvm-9 \ locales \ m4 \ minisat \ @@ -145,6 +163,7 @@ apt-get install -y \ python3-scipy \ r-base \ r-base-dev \ + rpm \ ruby-dev \ software-properties-common \ sudo \ @@ -152,7 +171,6 @@ apt-get install -y \ unixodbc-dev \ wget \ xclip \ - z3 \ zip \ zlib1g-dev \ zsh @@ -163,13 +181,13 @@ curl https://packages.microsoft.com/config/debian/9/prod.list > /etc/apt/sources apt-get update ACCEPT_EULA=Y apt-get install msodbcsql17 -y -locale-gen en_US.UTF-8 +# llvm for llvm-hs +curl https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - +add-apt-repository "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-9 main" +apt-get update +apt-get install llvm-9-dev -y -# llvm-7.0 for llvm-hs (separate since it needs wget) -wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - \ - && add-apt-repository "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-7 main" \ - && apt-get update \ - && apt-get install -y llvm-7 +locale-gen en_US.UTF-8 # Buggy versions of ld.bfd fail to link some Haskell packages: # https://sourceware.org/bugzilla/show_bug.cgi?id=17689. Gold is @@ -181,9 +199,9 @@ update-alternatives --install "/usr/bin/ld" "ld" "/usr/bin/ld.bfd" 10 # This version is tracked here: # https://ghc.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/LLVM/Installing # -# GHC 8.6 requires LLVM 6.0 tools (specifically, llc-6.0 and opt-6.0). -update-alternatives --install "/usr/bin/llc" "llc" "/usr/bin/llc-6.0" 50 -update-alternatives --install "/usr/bin/opt" "opt" "/usr/bin/opt-6.0" 50 +# GHC 8.10 requires LLVM 9 tools (?) (specifically, llc-9 and opt-9). +update-alternatives --install "/usr/bin/llc" "llc" "/usr/bin/llc-9" 50 +update-alternatives --install "/usr/bin/opt" "opt" "/usr/bin/opt-9" 50 # nodejs 10 (nodejs8 in bionic needs conflicting libssl10-dev) curl -sL https://deb.nodesource.com/setup_10.x | bash - @@ -217,10 +235,9 @@ echo "/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server/" > /etc/ld.so.conf && ldconfig # Install erlang/otp platform and its dependencies -ERLANG_VERSION="20.2.2" -ERLANG_DEB_FILE="esl-erlang_21.2-1~ubuntu~bionic_amd64.deb" +ERLANG_DEB_FILE="esl-erlang_21.1-1~ubuntu~bionic_amd64.deb" pushd /tmp \ - && wget http://packages.erlang-solutions.com/site/esl/esl-erlang/FLAVOUR_1_general/${ERLANG_DEB_FILE} \ + && wget https://packages.erlang-solutions.com/erlang/debian/pool/${ERLANG_DEB_FILE} \ && (dpkg -i ${ERLANG_DEB_FILE}; apt-get install -yf) \ && rm ${ERLANG_DEB_FILE} \ && popd @@ -256,8 +273,8 @@ apt-add-repository multiverse \ && apt-get update \ && apt-get install -y nvidia-cuda-dev -export CLANG_PURE_LLVM_LIB_DIR=/usr/lib/llvm-6.0/lib; -export CLANG_PURE_LLVM_INCLUDE_DIR=/usr/lib/llvm-6.0/include; +export CLANG_PURE_LLVM_LIB_DIR=/usr/lib/llvm-9/lib; +export CLANG_PURE_LLVM_INCLUDE_DIR=/usr/lib/llvm-9/include; # protoc, for proto-lens-combinators test suite # Instructions from: https://google.github.io/proto-lens/installing-protoc.html @@ -275,6 +292,49 @@ echo /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/server > /etc/ld.so.conf.d/ echo /usr/lib/llvm-3.7/lib > /etc/ld.so.conf.d/llvm.conf ldconfig + +# Install librdkafka (Apache Kafka C/C++ library) +wget -qO - https://packages.confluent.io/deb/5.2/archive.key | apt-key add - +add-apt-repository "deb https://packages.confluent.io/deb/5.2 stable main" +apt-get update && apt install -y librdkafka-dev + +# Install binaryen +curl -L https://github.com/WebAssembly/binaryen/archive/version_94.tar.gz | tar xz -C /tmp +pushd /tmp/binaryen-version_94 +mkdir build +cd build +cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -G "Unix Makefiles" \ + .. +sudo make install +popd + +Z3_VER=4.8.8 +( + cd /usr/local/ \ + && wget https://github.com/Z3Prover/z3/releases/download/z3-${Z3_VER}/z3-${Z3_VER}-x64-ubuntu-16.04.zip \ + && unzip z3-${Z3_VER}-x64-ubuntu-16.04.zip \ + && rm z3-${Z3_VER}-x64-ubuntu-16.04.zip \ + && ln -s /usr/local/z3-${Z3_VER}-x64-ubuntu-16.04/bin/z3 /usr/bin/z3 +) + +LIBJWT_VER=1.12.1 +( +pushd /tmp \ + && wget https://github.com/benmcollins/libjwt/archive/v${LIBJWT_VER}.zip \ + && unzip v${LIBJWT_VER}.zip \ + && pushd libjwt-${LIBJWT_VER} \ + && autoreconf -fiv \ + && ./configure --disable-valgrind --disable-doxygen-doc --prefix /usr \ + && make \ + && sudo make install \ + && popd \ + && popd +) + + # EOF: don't build anything below this line # Cleanup diff --git a/etc/check.sh b/etc/check.sh new file mode 100755 index 00000000..3db7243f --- /dev/null +++ b/etc/check.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash + +set -euxo pipefail + +ETC=$(cd $(dirname $0) ; pwd) +export GHCVER=$(sed -n "s/^ghc-version: \"\(.*\)\"/\1/p" "$ETC/../build-constraints.yaml") + +# 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 new Stackage curator +curl -L "https://github.com/commercialhaskell/curator/releases/download/commit-a79aadca0f6497ec6accc927df5be7c49f5de86a/curator.bz2" | bunzip2 > curator +chmod +x curator + +# Install GHC +stack setup $GHCVER + +# curator's constraint command has target as a required parameter +# because of a different constraints handling in minor LTS version bumps +NIGHTLY="nightly-$(date +%Y-%m-%d)" +# New curator check +./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 c70f2b32..00000000 --- a/etc/ci-script.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash - -set -euxo pipefail - -export GHCVER=8.6.4 - -# 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 diff --git a/etc/curator-2-check.sh b/etc/curator-2-check.sh deleted file mode 100755 index 82a8facc..00000000 --- a/etc/curator-2-check.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/usr/bin/env bash - -set -euxo pipefail - -mkdir -p ~/.local/bin -export PATH=$HOME/.local/bin:$PATH - -# Get new Stackage curator -CURATOR2=stackage-curator-2-90cf65bfddea4e8abb5bc68fe83d59a7f8766757 -wget "https://s3.amazonaws.com/www.snoyman.com/stackage-curator-2/$CURATOR2.bz2" -bunzip2 "$CURATOR2.bz2" -chmod +x $CURATOR2 -mv $CURATOR2 ~/.local/bin/stackage-curator-2 - -# New curator check -stackage-curator-2 update && - stackage-curator-2 constraints && - stackage-curator-2 snapshotincomplete && - stackage-curator-2 snapshot && - stackage-curator-2 checksnapshot diff --git a/etc/curator-exes/.gitignore b/etc/curator-exes/.gitignore new file mode 100644 index 00000000..ae3c1726 --- /dev/null +++ b/etc/curator-exes/.gitignore @@ -0,0 +1 @@ +/bin/ diff --git a/etc/curator-exes/Dockerfile b/etc/curator-exes/Dockerfile new file mode 100644 index 00000000..81f4dbd9 --- /dev/null +++ b/etc/curator-exes/Dockerfile @@ -0,0 +1,13 @@ +FROM fpco/stack-build:lts-14 + +# Prime the snapshot so rebuilds are faster +RUN mkdir -p /artifacts +RUN stack update +RUN stack build --no-install-ghc --resolver lts-13.28 --only-dependencies stack amazonka-s3 + +RUN git clone --depth 1 https://github.com/commercialhaskell/stack && \ + git clone --depth 1 https://github.com/commercialhaskell/curator + +COPY stack.yaml . + +RUN stack --no-install-ghc install --local-bin-path /artifacts diff --git a/etc/curator-exes/README.md b/etc/curator-exes/README.md new file mode 100644 index 00000000..150f7bda --- /dev/null +++ b/etc/curator-exes/README.md @@ -0,0 +1,5 @@ +Scripts to create and upload the curator-exes.tar.bz2 files. Make sure to +update the hash in automated/build-next.sh. + +NOTE: Depending on what's exactly on the master branches when running the +`./run.sh` script, the `stack.yaml` file may need some tweaks. diff --git a/etc/curator-exes/run.sh b/etc/curator-exes/run.sh new file mode 100755 index 00000000..de90f644 --- /dev/null +++ b/etc/curator-exes/run.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +set -eux + +rm -rf bin +mkdir -p bin + +docker build . --tag curator-exes + +docker run --rm -v $(pwd)/bin:/output curator-exes cp /artifacts/* output +aws s3 cp curators-exes/* s3://download.fpcomplete.com/curator-exes/ diff --git a/etc/curator-exes/stack.yaml b/etc/curator-exes/stack.yaml new file mode 100644 index 00000000..08ac4d9e --- /dev/null +++ b/etc/curator-exes/stack.yaml @@ -0,0 +1,22 @@ +resolver: lts-13.28 + +packages: +- stack +- curator + +extra-deps: +- hi-file-parser-0.1.0.0@sha256:3fc95852035c8e0fa6d5f9d22e5108067c8f4816ac84675bddc971b20144a9ae,2317 +- http-download-0.1.0.0@sha256:b02d76d28364b74fb90d3ec3c46fd81f9d77bcf71fa40c1d341a7251a0fc40e8,2023 +- pantry-0.1.1.2@sha256:6f06556f8e934afd517559d6f3dae947db91ef3801ee4e5cee9916c83a0c4d52,4628 +- rio-prettyprint-0.1.0.0@sha256:764e1a357275c3c62d57c494d038feae01cf745788e7d0e97367ba793c9670c3,1359 +- ansi-terminal-0.9.1@sha256:48f53532d0f365ffa568c8cf0adc84c66f800a7d80d3329e4f04fa75392f4af1,3225 +- rio-0.1.12.0@sha256:a0b42682a455ffde6a4d894b135117e379aea7ed1810c2cfed471b8f5879968c,3633 +- unliftio-0.2.12@sha256:b089fbc2ff2628a963c2c4b12143f2020874e3e5144ffd6c62b25639a0ca1483,3325 + +- github: fpco/casa + commit: a0cd05c1a9ce33acbb1bdfb9324370f884916e88 + # sha256: 812e05de8f9abdbd1101fc94895dcfd5c35962c4d67a43cc20cbc06eb59ea1f0 + # size: 9508 + subdirs: + - casa-client + - casa-types diff --git a/etc/diskspace/clean-old-stack-libs.sh b/etc/diskspace/clean-old-stack-libs.sh new file mode 100755 index 00000000..2a3554f4 --- /dev/null +++ b/etc/diskspace/clean-old-stack-libs.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +set -e + +if [ $# != 1 ]; then + echo "Usage: $0 [nightly|lts-xx]" + exit 1 +fi + +cd ~/stackage/automated/work/$1/unpack-dir/.stack-work/install/x86_64-linux/*/*/lib/x86_64-linux-ghc-* +pwd + +stack --resolver nightly-2020-07-04 script ~/stackage/etc/diskspace/remove-old-stack-work-libs.hs diff --git a/etc/diskspace/remove-old-stack-work-libs.hs b/etc/diskspace/remove-old-stack-work-libs.hs new file mode 100644 index 00000000..d26fcd06 --- /dev/null +++ b/etc/diskspace/remove-old-stack-work-libs.hs @@ -0,0 +1,57 @@ +#!/usr/bin/env stack +-- stack --resolver nightly script + +-- Utility to remove old libs installed under .stack-work/ to save diskspace + +-- Should be run in: +-- work/*/unpack-dir/.stack-work/install/x86_64-linux/*/*/lib/x86_64-linux-ghc-* + +import Data.List +import System.Directory +import System.FilePath +import Text.Regex.TDFA + +-- keep 2 latest builds +keepBuilds :: Int +keepBuilds = 2 + +main = do + files <- sort <$> listDirectory "." + let (dynlibs,libdirs) = partition (".so" `isExtensionOf`) files + pkglibdirs = groupBy samePkgLibDir libdirs + pkgdynlibs = groupBy samePkgDynLib dynlibs + mapM_ (removeOlder removeDirectoryRecursive) pkglibdirs + mapM_ (removeOlder removeFile) pkgdynlibs + where + samePkgLibDir l1 l2 = pkgDirName l1 == pkgDirName l2 + where + pkgDirName p = + if length p < 25 + then error $ p ++ " too short to be in correct name-version-hash format" + else extractNameInternal p + + extractNameInternal :: String -> String + extractNameInternal p = + let (name,match,internal) = p =~ "-[0-9.]+-[0-9A-Za-z]{19,22}" :: (String, String, String) + in if null match || null name then error $ p ++ " not in correct name-version-hash format" + else name ++ internal + + samePkgDynLib d1 d2 = pkgDynName d1 == pkgDynName d2 + where + pkgDynName p = + if length p < 42 + then error $ p ++ " too short to be libHSname-version-hash-ghc*.so format" + else (extractNameInternal . removeDashSegment) p + + removeDashSegment = dropWhileEnd (/= '-') + + removeOlder remover files = do + oldfiles <- drop keepBuilds . reverse <$> sortByAge files + mapM_ remover oldfiles + + sortByAge files = do + timestamps <- mapM getModificationTime files + let fileTimes = zip files timestamps + return $ map fst $ sortBy compareSnd fileTimes + + compareSnd (_,t1) (_,t2) = compare t1 t2 diff --git a/verify-package b/verify-package new file mode 100755 index 00000000..f559cec0 --- /dev/null +++ b/verify-package @@ -0,0 +1,47 @@ +#!/usr/bin/env bash + +# Script to verify a package to build successfully +# Provide pacakge name by the first argument +# +# Example: +# ./verify-package mtl +# or +# ./verify-package mtl-2.2.2 + +set -eu + +die() { + >&2 echo "$1" + exit 1 +} + +package="${1:-}" +if [[ -z $package ]]; then + die "Package name is not given" +fi + + +here="$(cd "$(dirname "$0")" > /dev/null; pwd)" +dir="$(mktemp -d tmp.XXXX)" + +exit() { + cd "$here" + rm -rf "$dir" +} +trap exit EXIT + +# When updating these commands, make sure to update .github/PULL_REQUEST_TEMPLATE.md as well. +cd "$dir" +stack unpack "$package" +cd "$(ls | head -n 1)" +rm -f stack.yaml +stack init --resolver nightly --ignore-subdirs +stack build --resolver nightly --haddock --test --bench --no-run-benchmarks + + +cat <