diff --git a/.travis.yml b/.travis.yml index 6df6863c..e4d02f22 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,7 +11,7 @@ addons: - libgmp-dev env: -- GHCVER=8.0.1 +- GHCVER=8.0.2 install: # Download and unpack the stack executable diff --git a/CURATORS.md b/CURATORS.md index 6579ee8b..4548b988 100644 --- a/CURATORS.md +++ b/CURATORS.md @@ -337,3 +337,24 @@ errors for builds, tests and benchmarks. 1. Add public ssh key to `~/.ssh/authorized_keys` on build server 2. Add to fpco/stackage project. + +## Dealing with a new GHC release + +As mentioned in the [GHC upgrade note], the major impact of a new GHC release +is on the packages that are causing upper bounds to be put in place. In order +to minimise out-of-date breakage and allow maintainers to have a solid chance +of getting their packages into the newest LTS, we try to do the following: + +Make an early announcement (in the form of a blog post, typically) of the new +GHC release on the nightly build and the planned deadline for the new LTS release. +Make it clear, that in the time coming up to this, we hope package maintainers +will upgrade their packages to allow for the new GHC release. + +We prefer to prune packages causing upper bounds constraints **after** the LTS +release to allow the maximum amount of packages to get into the newest LTS. + +After the first LTS release, the package pruning process may begin in the +nightly build in order to move forward with getting the latest versions of +packages compatible with the new GHC release. + +[GHC upgrade note]: https://github.com/fpco/stackage/blob/master/MAINTAINERS.md#upgrading-to-a-new-ghc-version diff --git a/Dockerfile b/Dockerfile index e29818c3..ad96d66b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM fpco/pid1:16.04 ENV HOME /home/stackage ENV LANG en_US.UTF-8 -ENV PATH /opt/ghc/8.0.1/bin:/usr/sbin:/usr/bin:/sbin:/bin +ENV PATH /opt/ghc/8.0.2/bin:/usr/sbin:/usr/bin:/sbin:/bin ADD debian-bootstrap.sh /tmp/debian-bootstrap.sh RUN /tmp/debian-bootstrap.sh && rm /tmp/debian-bootstrap.sh diff --git a/MAINTAINERS.md b/MAINTAINERS.md index d358ed12..60c03d63 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -24,7 +24,7 @@ After doing that, send a pull request (with a commit message like "add foo-bar") If you want to make sure that the package builds against the newest versions of all dependecies you can do this: ``` $ cabal update -$ ghc --version # Should give v8.0.1 +$ ghc --version # Should give v8.0.2 $ cabal get PACKAGE-VERSION # e.g. aeson-0.11.2.1 $ cd PACKAGE-VERSION $ cabal sandbox init # Should give "Creating a new sandbox" and not "Using an existing sandbox". diff --git a/README.md b/README.md index 7fc1b93a..f0cfbef1 100644 --- a/README.md +++ b/README.md @@ -84,3 +84,42 @@ The following describes at a high level the series of steps for processing 1. Load up most recent build plan 2. Convert build plan into constraints for next build 3. Continue from step (3) above + +Frequently Asked Questions +-------------------------- + +__Why does Stackage have an older version of a package than Hackage?__ + +There are a number of answers to this question: + +* Simplest reason: how old of a Stackage snapshot are you using? Once a + snapshot is created, it's frozen for all time. So if you use + nightly-2016-01-01, by the time you get to 2018, it will be pretty dated. +* If you're using an LTS snapshot: we lock down major versions when + first creating an LTS run, so subsequent minor versions will not get + new versions necessary. For example, if LTS 6.0 has `foo` version + 1.2.3, and the author immediately thereafter releases a version + 1.3.0 and never releases another 1.2.\* version, you'll never get + another update in the LTS 6 line +* Sometimes we have upper bounds in place because other packages have + problems with newer versions of dependencies. Open up the + [build-constraints file](https://github.com/fpco/stackage/blob/master/build-constraints.yaml) + and search for "Stackage upper bounds" +* Wired-in packages - those that ship with GHC and cannot be upgraded, + 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) + +__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), +and hasn't changed since then. + +That said, we do maintain the capability to keep multiple LTS runs +operational in parallel, and with LTS 6 and 7 in fact did so. We +aren't changing our guarantees yet on longevity of a release, but are +trying to push out the bounds a bit farther. diff --git a/automated/build.sh b/automated/build.sh index 75ac1ea5..c5e78640 100755 --- a/automated/build.sh +++ b/automated/build.sh @@ -121,7 +121,7 @@ docker run $ARGS_PREBUILD $IMAGE /bin/bash -c "stackage-curator check --plan-fil # 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 && exec sudo -E -u $USER env \"HOME=$HOME\" \"PATH=\$PATH\" stackage-curator make-bundle --plan-file $PLAN_FILE --docmap-file $DOCMAP_FILE --bundle-file $BUNDLE_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\" stackage-curator make-bundle --jobs 4 --plan-file $PLAN_FILE --docmap-file $DOCMAP_FILE --bundle-file $BUNDLE_FILE --target $TARGET" # 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 diff --git a/build-constraints.yaml b/build-constraints.yaml index 954f2987..2f536558 100644 --- a/build-constraints.yaml +++ b/build-constraints.yaml @@ -7,7 +7,6 @@ packages: "Li-yao Xia @Lysxia": - generic-random - - postgresql-orm < 0 "Tobias Dammers @tdammers": - ginger @@ -70,7 +69,8 @@ packages: "alpheccar @alpheccar": - HPDF - - hbayes + # https://github.com/alpheccar/hbayes/issues/3 + # - hbayes "Dmitry Bogatov ": - once @@ -92,7 +92,7 @@ packages: "Michael Snoyman michael@snoyman.com @snoyberg": - bzlib-conduit - cabal-install - - cabal-src + - mega-sdist - case-insensitive - classy-prelude-yesod - conduit-combinators @@ -202,7 +202,6 @@ packages: - extra - bake - ghcid - - pugixml - hexml "Alan Zimmerman @alanz": @@ -308,7 +307,7 @@ packages: - path - intero - weigh - - haskell-docs + # - haskell-docs # BLOCKED haddock-api GHC 8.0.2 # - structured-haskell-mode # bounds: haskell-src-exts # via: applicative-quoters "Alberto G. Corona @agocorona": @@ -385,7 +384,7 @@ packages: - zippers - fixed - half - - gl + # - gl BLOCKED directory 1.3 - lens-aeson - zlib-lens # - hyperloglog # bounds: approximate, binary, comonad @@ -416,7 +415,7 @@ packages: - BlogLiterately-diagrams - diagrams - diagrams-builder - - diagrams-haddock + # - diagrams-haddock # BLOCKED directory 1.3 via cautious-file - diagrams-cairo - diagrams-contrib - diagrams-core @@ -447,7 +446,6 @@ packages: "Felipe Lessa @meteficha": # - country-codes # bounds: tagsoup - # - esqueleto # bounds: persistent # - fb # bounds: aeson, http-conduit-2.2, hspec # - fb-persistent # bounds: persistent # via: fb # - mangopay # compilation failure against aeson @@ -476,10 +474,11 @@ packages: - accelerate "Liam O'Connor @liamoc": + [] # - patches-vector # bounds: QuickCheck, edit-distance-vector, hspec # - composition-tree # bounds: QuickCheck # - dixi # bounds: aeson, lens, time, [...] - - latex-formulae-image + # - latex-formulae-image # BLOCKED directory 1.3 # - latex-formulae-pandoc # bounds: pandoc-types # - latex-formulae-hakyll # bounds: ghc, base # - agda-snippets # bounds: ghc, base @@ -527,10 +526,11 @@ packages: "Andrew Thaddeus Martin @andrewthad": - yesod-table - "Chris Allen bitemyapp": + "Chris Allen @bitemyapp": - machines-directory - machines-io - bloodhound + - esqueleto # bounds: persistent "Adam Bergmark @bergmark": - HUnit @@ -542,7 +542,7 @@ packages: - fay-text - fay-uri - feed - - snaplet-fay + # - snaplet-fay # BLOCKED directory 1.3 via heist and snap - time-compat - through-text @@ -579,7 +579,7 @@ packages: - FenwickTree - hPDB - hPDB-examples - - homplexity + # - homplexity # BLOCKED directory 1.3 - wordpass # - json-autotype # bounds: aeson 1.0, lens - posix-realtime @@ -737,7 +737,7 @@ packages: # - al # FIXME temporary, figure out why it's not working with stackage-build - event - hid - - luminance + # - luminance # BLOCKED directory 1.3 # - luminance-samples # bounds: base - monad-journal # - msi-kb-backlit # bounds: ghc, base @@ -753,9 +753,9 @@ packages: - io-choice # - system-canonicalpath # bounds: ghc, base # https://github.com/d12frosted/CanonicalPath/issues/5 - # "Daniel Gröber @DanielG": - # - ghc-mod # bounds: cabal-helper, extra, haskell-src-exts, optparse-applicative, pipes - # - cabal-helper # bounds: extra 1.5 + "Daniel Gröber @DanielG": + - ghc-mod + - cabal-helper "Yann Esposito yogsototh @yogsototh": - human-readable-duration @@ -811,7 +811,7 @@ packages: - data-accessor-mtl # - file-location # bounds: transformers - fuzzcheck - - haddock-api + # - haddock-api BLOCKED GHC 8.0.2 - here - hlibgit2 - gitlib-libgit2 @@ -922,9 +922,9 @@ packages: - servant-cassava "Alexandr Ruchkin @mvoidex": - - hdocs + # - hdocs # BLOCKED haddock-api GHC 8.0.2 - hformat - - hsdev + # - hsdev # BLOCKED haddock-api GHC 8.0.2 - simple-log - text-region @@ -952,7 +952,7 @@ packages: "Jens Petersen @juhp": - cabal-rpm - - cabal-sort + # - cabal-sort # BLOCKED directory 1.3 - hslua # - idris # bounds: safe @@ -1421,8 +1421,11 @@ packages: "William Casarin @jb55": - bson-lens - cased + - elm-export + - elm-export-persistent - pipes-csv - pipes-mongodb + - servant-elm - skeletons - streaming-wai @@ -1446,6 +1449,7 @@ packages: - aeson-better-errors "Mitchell Rosen @mitchellwrosen": + - safe-exceptions-checked - tasty-hspec "Christiaan Baaij @christiaanb": @@ -1458,7 +1462,7 @@ packages: - clash-vhdl - clash-verilog - clash-systemverilog - # - clash-ghc # bounds: ghc + - clash-ghc "Athan Clark @athanclark": - commutative @@ -1509,7 +1513,7 @@ packages: - lens-family - streaming - streaming-bytestring - + - streaming-utils "Justin Le @mstksg": - auto @@ -1538,8 +1542,8 @@ packages: - uri-bytestring # - phash # Can't build on stackage server https://github.com/MichaelXavier/phash/issues/5 - cron - # - tasty-tap # bounds: ghc, base - # - tasty-fail-fast # via: tasty-tap + - tasty-tap + - tasty-fail-fast - drifter - drifter-postgresql @@ -1730,6 +1734,7 @@ packages: - proxied - text-show - text-show-instances + - thread-local-storage "Kirill Zaborsky @qrilka": - xlsx @@ -1877,10 +1882,12 @@ packages: - yi-snippet "Tobias Bexelius @tobbebex": - - GPipe + [] + # - GPipe # BLOCKED directory 1.3 via gl "Patrick Redmond @plredmond": - - GPipe-GLFW + [] + # - GPipe-GLFW # BLOCKED directory 1.3 via GPipe and gl # "Csaba Hruska @csabahruska": # - lambdacube-ir # bounds: aeson @@ -1938,11 +1945,13 @@ packages: - titlecase "Mark Fine @markfine": - - postgresql-schema + [] + # - postgresql-schema # BLOCKED shelly GHC 8.0.2 # - sbp # build failure "Jinjing Wang @nfjinjing": - - moesocks + [] + # - moesocks # https://github.com/nfjinjing/moesocks/issues/1 "Gregory W. Schwartz @GregorySchwartz": # - fasta # via pipes-attoparsec @@ -2110,7 +2119,7 @@ packages: - tagstream-conduit # "Johannes Hilden @johanneshilden": - # Missing test files https://github.com/fpco/stackage/issues/1001 - hashids + # - hashids # Missing test files https://github.com/fpco/stackage/issues/1001 # "Joe Hermaszewski @expipiplus1": # - exact-real # bounds: ghc, base @@ -2165,7 +2174,7 @@ packages: - clckwrks-plugin-page - clckwrks-plugin-media - clckwrks-theme-bootstrap - - hackage-whatsnew + # - hackage-whatsnew # bounds: directory 1.3 - happstack-authenticate - happstack-clientsession - happstack-hsp @@ -2278,7 +2287,8 @@ packages: - cmark - texmath - highlighting-kate - - pandoc-types + - skylighting + - pandoc-types < 1.19 # Accidental upload, see: https://github.com/fpco/stackage/issues/2223 - zip-archive - doctemplates - pandoc @@ -2364,7 +2374,7 @@ packages: - jose # "Yutaka Nishimura @ynishi": - # - atndapi # https://github.com/ynishi/atndapi/issues/1 + # - atndapi # compilation failure https://github.com/ynishi/atndapi/issues/1 "Yoshikuni Jujo @YoshikuniJujo": - zot @@ -2397,13 +2407,13 @@ packages: # - yesod-job-queue # build failure https://github.com/nakaji-dayo/yesod-job-queue/issues/10 # "Braden Walters @meoblast001": - # - hakyll-sass # bounds: aeson-pretty + # - hakyll-sass # compilation failure "Patrick Thomson @helium": - postgresql-transactional "Tom Murphy @amindfv": - # - vivid # 0.2.0.5 compilation failure + - vivid # - midair # bounds: ghc, base - nano-erl @@ -2481,7 +2491,7 @@ packages: "Cliff Harvey @BlackBrane": - ansigraph - - quantum-random + # - quantum-random # BLOCKED directory 1.3 "Tebello Thejane @tebello-thejane": - bitx-bitcoin @@ -2525,15 +2535,11 @@ packages: "Christopher Wells @ExcalburZero": - pixelated-avatar-generator - "Allele Dev @queertypes": - - freer - - wai-request-spec - "Dominic Orchard @dorchard": - array-memoize - camfort - codo-notation - - fortran-src + # - fortran-src # OOM https://github.com/fpco/stackage/issues/2232 # - ixmonad # 0.57 Compilation failure https://github.com/fpco/stackage/pull/1710#issuecomment-235067168 - language-fortran @@ -2569,11 +2575,16 @@ packages: - quickcheck-special - writer-cps-mtl - writer-cps-transformers + - writer-cps-morph + - writer-cps-lens + - writer-cps-full - wl-pprint-annotated - wl-pprint-console - console-style - unlit - intro + - tasty-auto + - colorful-monoids "Taras Serduke @tserduke": - do-list @@ -2685,15 +2696,37 @@ packages: - haskell-tools-backend-ghc - haskell-tools-rewrite - haskell-tools-prettyprint - #- haskell-tools-refactor + - haskell-tools-refactor - haskell-tools-demo - #- haskell-tools-cli + - haskell-tools-cli - haskell-tools-daemon - - haskell-tools-debug + # - haskell-tools-debug # https://github.com/haskell-tools/haskell-tools/issues/257 "David Fisher @ddfisher": - socket-activation + "aiya000 @aiya000": + - stack-type + + "Mitsutoshi Aoe @maoe": + - viewprof + + "Dylan Simon @dylex": + - postgresql-typed + # - invertible # BLOCKED broken test case https://github.com/dylex/invertible/issues/1 + - ztail + + "Louis Pan @louispan": + - alternators + - glaze + - glazier + - glazier-pipes + - l10n + - pipes-category + - pipes-fluid + - pipes-misc + - stm-extras + # If you stop maintaining a package you can move it here. # It will then be disabled if it starts causing problems. # See https://github.com/fpco/stackage/issues/1056 @@ -2725,12 +2758,6 @@ packages: # https://github.com/fpco/stackage/issues/2037 - haskell-src-exts < 1.19 - # https://github.com/fpco/stackage/issues/2042 - - network-multicast < 0.2 - - # https://github.com/haskell/vector/issues/142 - - primitive < 0.6.2.0 - # https://github.com/fpco/stackage/issues/2127 - leapseconds-announced < 2017.0.0.1 @@ -2746,15 +2773,21 @@ packages: # https://github.com/fpco/stackage/issues/2180 - MonadRandom < 0.5 - # https://github.com/fpco/stackage/issues/2184 - # https://github.com/ekmett/hashable-extras/pull/3 - - hashable < 1.2.5.0 - # https://github.com/fpco/stackage/issues/2194 - vector < 0.12.0.0 + - primitive < 0.6.2.0 - # https://github.com/fpco/stackage/issues/2197 - - brick < 0.16 + # https://github.com/fpco/stackage/issues/2206 + - pretty-simple < 1.0.0.5 + + # https://github.com/fpco/stackage/issues/2207 + - xlsx-tabular < 0.2.1.1 + + # https://github.com/fpco/stackage/issues/2229 + - hspec < 2.4 + - hspec-core < 2.4 + - hspec-discover < 2.4 + - hspec-smallcheck < 0.4.2 # end of packages @@ -2829,6 +2862,12 @@ package-flags: ghc_7_7: false ghc_8_0: true + invertible: + TypeCompose: false + arrows: false + hlist: false + piso: false + # end of package-flags # Special configure options for individual packages @@ -2948,6 +2987,12 @@ skipped-tests: - optparse-applicative # https://github.com/pcapriotti/optparse-applicative/issues/228 + # BLOCKED shelly GHC 8.0.2 + - c2hs + + # directory 1.3 + - machines + - xmlhtml # end of skipped-tests @@ -2965,6 +3010,7 @@ expected-test-failures: - distributed-process - distributed-process-execution # https://github.com/haskell-distributed/distributed-process-execution/issues/2 - distributed-process-task + - foldl-statistics # https://github.com/data61/foldl-statistics/issues/2 - fsnotify # Often runs out of inotify handles - idris # https://github.com/fpco/stackage/issues/1382 - ihaskell # https://github.com/gibiansky/IHaskell/issues/551 @@ -2974,8 +3020,6 @@ expected-test-failures: - pandoc-citeproc # https://github.com/jgm/pandoc-citeproc/issues/172 - spdx # https://github.com/phadej/spdx/issues/8 - statistics # https://github.com/bos/statistics/issues/42 - - haskell-tools-refactor # https://github.com/haskell-tools/haskell-tools/issues/231 - - foldl-statistics # https://github.com/data61/foldl-statistics/issues/2 # Timeouts # These tests sometimes take too long and hit the stackage build @@ -3015,6 +3059,8 @@ expected-test-failures: - gitson # 0.5.2 error with git executable https://github.com/myfreeweb/gitson/issues/1 - gitson # https://github.com/myfreeweb/gitson/issues/1 - happy # Needs mtl in the user package DB + - haskell-tools-cli # https://github.com/haskell-tools/haskell-tools/issues/230 + - haskell-tools-refactor # https://github.com/haskell-tools/haskell-tools/issues/231 - haskell-neo4j-client # neo4j with auth disabled - hasql # PostgreSQL - hasql-transaction # PostgreSQL @@ -3031,6 +3077,7 @@ expected-test-failures: - mysql-simple # MySQL - network-anonymous-i2p - opaleye # PostgreSQL + - postgresql-typed # PostgreSQL - persistent-redis # redis - https://github.com/fpco/stackage/pull/1581 - pipes-mongodb - postgresql-query # PostgreSQL @@ -3075,7 +3122,6 @@ expected-test-failures: # in the test cases. - DRBG # https://github.com/TomMD/DRBG/issues/7 - cayley-client # https://github.com/MichelBoucey/cayley-client/issues/2 - - clash-prelude # 0.10.14 Runtime errors https://github.com/clash-lang/clash-prelude/issues/57 - direct-sqlite # 2.3.17 https://github.com/IreneKnapp/direct-sqlite/issues/63 - ed25519 # 0.0.5.0 https://github.com/thoughtpolice/hs-ed25519/issues/15 - nettle # https://github.com/stbuehler/haskell-nettle/issues/8 @@ -3129,6 +3175,22 @@ expected-test-failures: - yesod-auth-basic # https://github.com/creichert/yesod-auth-basic/issues/1 - folds # https://github.com/ekmett/folds/issues/12 + + - stm-delay # https://github.com/joeyadams/haskell-stm-delay/issues/5 + + - vector-algorithms # http://hub.darcs.net/dolio/vector-algorithms/issue/9 + + - relational-query # https://github.com/khibino/haskell-relational-record/issues/51 + + - unicode-show # https://github.com/nushio3/unicode-show/issues/2 + + - ghc-exactprint # https://github.com/alanz/ghc-exactprint/issues/47 + + # Doctests require hidden Glob package + - multiset + - makefile + + - rattletrap # https://github.com/fpco/stackage/issues/2232 # end of expected-test-failures # Benchmarks which are known not to build. Note that, currently we do not run @@ -3186,6 +3248,10 @@ expected-haddock-failures: - classy-prelude-yesod - hledger-web + # Runs out of memory + - stratosphere + - store + # end of expected-haddock-failures # Benchmarks which should not be built. Note that Stackage builds benchmarks but does not run them. @@ -3376,6 +3442,7 @@ hide: - 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 # Cryptonite deprecations - cipher-aes diff --git a/check b/check index c25c3c4a..bf7f91f6 100755 --- a/check +++ b/check @@ -3,4 +3,4 @@ # Convenience script for checking constraints locally cd `dirname $0` -exec stack exec --resolver ghc-8.0.1 stackage-curator check +exec stack exec --resolver ghc-8.0.2 stackage-curator check diff --git a/debian-bootstrap.sh b/debian-bootstrap.sh index abcdeddf..52c265bb 100755 --- a/debian-bootstrap.sh +++ b/debian-bootstrap.sh @@ -25,7 +25,7 @@ add-apt-repository -y ppa:marutter/rrutter #add-apt-repository -y ppa:openstack-ubuntu-testing/icehouse # Set the GHC version -GHCVER=8.0.1 +GHCVER=8.0.2 # Get Stack apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 575159689BEFB442