diff --git a/CURATORS.md b/CURATORS.md index b27f0503..874fcc76 100644 --- a/CURATORS.md +++ b/CURATORS.md @@ -1,7 +1,7 @@ This is a collection of instructions covering the processes that the Stackage curators - the guys who maintain the Stackage project itself - should be doing on a regular basis. Originally this was handled largely by Michael Snoyman, -but now we are a team of 4 people handling requests weekly in rotation. +but now we are a team of 5 people handling requests weekly in rotation. Curation activities are mostly automated, and do not take up a significant amount of time. ## Workflow overview @@ -275,8 +275,9 @@ develop this advice over time. For now: if you're not sure, ask for guidance. __`NOPLAN=1`__ If you wish to rerun a build without recalculating a build plan, you can set the environment variable `NOPLAN=1`. This is useful for such cases as an intermittent test failure, out of memory -condition, or manually tweaking the plan file. This is the default for -LTS builds. +condition, or manually tweaking the plan file. + +Note LTS builds inherit the current Hackage data (stack updated for Nigthly) to avoid excess extra rebuilding. ### Timing diff --git a/MAINTAINERS.md b/MAINTAINERS.md index 4ad692a9..b5f2ea64 100644 --- a/MAINTAINERS.md +++ b/MAINTAINERS.md @@ -2,7 +2,7 @@ This project is built around the concept of maintainers taking responsibility fo The idea behind Stackage is that, if all packages work with the newest versions of dependencies, we avoid dependency hell. Specifically, we aim for: -* All packages are buildable and testable from Hackage. We recommend [the Stack Travis script](http://docs.haskellstack.org/en/stable/GUIDE.html#travis-with-caching), which ensures a package is not accidentally incomplete. +* 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)). @@ -21,6 +21,8 @@ To add a set of packages, you would add: - package2 - package3 +Note that the `master` branch is used for Stackage Nightly (not the `nightly` branch, which is used for the nightly docker builder imagine). + After doing that, send a pull request (with a commit message like "add foo-bar"). We do not require new submissions to be tested against the rest of Stackage before the pull request (though it is a good idea to do so if you can with `stack --resolver nightly exec stackage-curator check` and `stack --resolver nightly build`), provided you meet the dependency version requirements above. If your library depends on a C library, add a note to your pull request with the Ubuntu library name, or even better edit the `debian-bootstrap.sh` script directly If you want to make sure that the package builds against the newest versions of all dependecies you can do this: @@ -103,10 +105,11 @@ 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-3.21` is out, you would want your package to appear in -`lts-3.22`), please do the following in addition to the steps above: +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: * Open up a new issue on the [lts-haskell repo](https://github.com/fpco/lts-haskell/issues/new) -* Specify the LTS major version you would like your package to go into (e.g., lts-3) +* Specify the LTS major version you would like your package to go into (e.g., lts-8) * Provide a list of packages you would like added, and if relevant, any upper bounds on those packages -* Be patient! The LTS releases are by their nature more conservative than nightly, and therefore adding new packages is a more manual process. The Stackage curators will try to get to your issue quickly, but there may be some delay. +* Be patient! The LTS releases are less frequent than Nightly and by their nature more conservative, and therefore adding new packages is a more manual process. The Stackage curators will try to get to your issue as soon as possible, but it may take some time. +* To add a package to more than one LTS version please file separate tickets for each major LTS release, since they will typically be built and added at different times. diff --git a/README.md b/README.md index f0cfbef1..a3d768b4 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Add your package We welcome all packages, provided: * The package author/maintainer agrees to the [maintainers agreement](https://github.com/fpco/stackage/blob/master/MAINTAINERS.md). -* The package is buildable and testable from Hackage. We recommend [the Stack Travis script](http://docs.haskellstack.org/en/stable/GUIDE.html#travis-with-caching), which ensures a package is not accidentally incomplete. +* 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)). @@ -123,3 +123,7 @@ 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. + +__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. diff --git a/automated/build.sh b/automated/build.sh index c5e78640..9e2a6566 100755 --- a/automated/build.sh +++ b/automated/build.sh @@ -138,4 +138,5 @@ docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "exec stackage-curator check-target- # * Register as a new Hackage distro docker run $ARGS_UPLOAD $IMAGE /bin/bash -c "stackage-curator upload-docs --target $TARGET --bundle-file $BUNDLE_FILE && 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" +echo -n "Completed at " date diff --git a/become-a-curator.md b/become-a-curator.md new file mode 100644 index 00000000..77bd9310 --- /dev/null +++ b/become-a-curator.md @@ -0,0 +1,42 @@ +We are looking to expand the stackage curator team! + +As a stackage curator you will help the community by curating and +publishing the widely used nightly and LTS snapshots: Collections of +packages that are guaranteed to play well together. All curators are +volunteers. + +This is a great opportunity to contribute to the haskell community and get +familiar with the tools of the trade! You will also be in regular +contact with experienced community members. + +We don't have any prerequisites, but familiarity with any of Haskell, +Cabal, Stack, Linux, Git, and Docker is a plus. + +We work in shifts of one week, which means you will be on duty every +6th week. Our suggestion is to pair you up with another curator to +help out in the beginning. + +The workload is usually about 30 minutes per day, whenever you have +time. The work consists of keeping the builds running on the build +server, filing issues for packages needing updates when new releases +occur, and closing resolved issues. The LTS snapshots are prepared +once a week. All communication with package maintainers happen on +github. + +We also have a curator slack channel where we help each other out. + +The current curator team consists of: +* Adam Bergmark +* Dan Burton +* Jens Petersen +* Luke Murphy +* Michael Snoyman + +We onboarded Luke as the newest member a few months ago and this +helped us iron out and document the process further. + +You can read the curator documentation here: https://github.com/fpco/stackage/blob/master/CURATORS.md + +To apply, please fill in this form: https://goo.gl/forms/eD6lTLtuyyHAIcfC2 + +If you applied last time, we encourage you to do so again! diff --git a/build-constraints.yaml b/build-constraints.yaml index 9844b34b..652d5ee7 100644 --- a/build-constraints.yaml +++ b/build-constraints.yaml @@ -1,6 +1,19 @@ ghc-major-version: "8.0" # Constraints for brand new builds packages: + "Jose Iborra @pepeiborra": + - clr-marshal + - clr-host + - clr-inline + + "Joshua Koike @jano017": + - discord-hs + + "Roman Gonzalez @rcook": + - hidden-char "Vanessa McHale @vmchale": - tibetan-utils @@ -13,7 +26,7 @@ packages: - apportionment - audacity - bibtex - # - board-games # https://github.com/fpco/stackage/pull/2390 + - board-games - buffer-pipe - calendar-recycling - comfort-graph @@ -92,7 +105,7 @@ packages: "Joe M @joe9": - logger-thread - # - text-generic-pretty # # via ixset-typed: via safecopy: bounds: vector + - text-generic-pretty "Li-yao Xia @Lysxia": - boltzmann-samplers @@ -246,7 +259,7 @@ packages: - indents - language-c - lhs2tex - # - persistent-mongoDB # bounds: http-api-data + - persistent-mongoDB - pretty-class - th-expand-syns - th-lift @@ -282,7 +295,7 @@ packages: - timelens - non-empty-sequence - "Neil Mitchell @ndmitchell": + "Neil Mitchell @ndmitchell": - hlint - hoogle - shake @@ -297,6 +310,7 @@ packages: - bake - ghcid - hexml + - weeder "Alan Zimmerman @alanz": - hjsmin @@ -327,6 +341,11 @@ packages: - textlocal - shell-conduit - tldr + - fb + - yesod-fb + - yesod-auth-fb + - hourglass-orphans + - wai-slack-middleware "haskell-openal": - OpenAL @@ -415,7 +434,7 @@ packages: - MFlow - transient - transient-universe - # - ghcjs-hplay # https://github.com/transient-haskell/axiom/issues/16 + - axiom "Edward Kmett @ekmett": - ad @@ -905,6 +924,8 @@ packages: - netwire - netwire-input - netwire-input-glfw + - yoga + - freetype2 "Emanuel Borsboom @borsboom": - BoundedChan @@ -1033,9 +1054,9 @@ packages: - servant-cassava "Alexandr Ruchkin @mvoidex": - # - hdocs # BLOCKED haddock-api GHC 8.0.2 + - hdocs - hformat - # - hsdev # BLOCKED haddock-api GHC 8.0.2 + # - hsdev # bounds: text-region-0.2.0.0 - simple-log - text-region @@ -1064,7 +1085,8 @@ packages: "Jens Petersen @juhp": - cabal-rpm # - cabal-sort # BLOCKED directory 1.3 - # - idris # bounds: safe + - idris # bounds: safe + - libffi - xmonad-contrib - shelly @@ -1588,21 +1610,25 @@ packages: - markup # - nested-routes # via: HList - path-extra - # - poly-arity # via HList (sent e-mail to HList maintainer) + - poly-arity - urlpath - wai-transformers - wai-middleware-content-type - wai-middleware-verbs + - websockets-rpc - webpage - composition-extra - rose-trees - sets - timemap - - triesn + - tries - path-extra - # - pred-trie # via poly-arity + - pred-trie - pred-set - HSet + - unit-constraint + - unfoldable-restricted + - quickcheck-combinators "Fumiaki Kinoshita @fumieval": - boundingboxes @@ -1685,9 +1711,6 @@ packages: - fn # - fn-extra # via: digestive-functors - "Chris Wong @lfairy": - - nationstates - "Mathieu Boespflug @mboes": # - ihaskell-inline-r # via: ihaskell, ihaskell-blaze - cassette @@ -1740,6 +1763,7 @@ packages: - Spintax - glabrous - google-oauth2-jwt + - IPv6DB "koral koral@mailoo.org @k0ral": - atom-conduit @@ -1786,7 +1810,7 @@ packages: - type-spec - pretty-types - mediabus - - mediabus-fdk-aac + #- mediabus-fdk-aac # needs non-free libfdk-aac-dev - mediabus-rtp # "Will Thompson @wjt": @@ -1828,6 +1852,7 @@ packages: # - socket-io # bounds: aeson, via: engine-io - tasty-rerun - logging-effect + - reactive-banana "Antoni Silvestre @asilvestre": # Test suite needs a running neo4j server with auth disabled @@ -1845,7 +1870,12 @@ packages: - type-level-numbers "Ryan Scott @RyanGlScott": + - abstract-deque + - abstract-deque-tests + - abstract-par + - atomic-primops - base-orphans + - chaselev-deque - code-page - deriving-compat - echo @@ -1855,6 +1885,8 @@ packages: - keycode - lift-generics - mintty + - monad-par + - monad-par-extras - mtl-compat - proxied - text-show @@ -1977,6 +2009,7 @@ packages: - opaleye-trans - pretty-simple - read-env-var + - servant-static-th - xml-html-qq - xml-indexed-cursor - yahoo-finance-api @@ -2013,12 +2046,10 @@ packages: - yi-snippet "Tobias Bexelius @tobbebex": - [] - # - GPipe # BLOCKED directory 1.3 via gl + - GPipe "Patrick Redmond @plredmond": - [] - # - GPipe-GLFW # BLOCKED directory 1.3 via GPipe and gl + - GPipe-GLFW # "Csaba Hruska @csabahruska": # - lambdacube-ir # bounds: aeson @@ -2093,6 +2124,7 @@ packages: # - find-clumpiness # build failure against optparse-applicative https://github.com/GregorySchwartz/find-clumpiness/issues/1 - blosum # - convert-annotation # via cassava: bounds: vector + - rank-product "Simon Marechal @bartavelle": - compactmap @@ -2129,6 +2161,7 @@ packages: - flac-picture - lame - path + - forma # "Thomas Bereknyei ": # - multiplate # bounds: transformers @@ -2434,6 +2467,8 @@ packages: "Elie Genard @eliegenard": - turtle-options + - mushu + - hakyll-favicon # "Ruey-Lin Hsu @petercommand": # - MASMGen # bounds: ghc, base @@ -2712,6 +2747,7 @@ packages: - llvm-hs-pure "Thierry Bourrillon @tbourrillon": + - heatshrink - hocilib # "Matthias Herrmann @2chilled": @@ -2732,6 +2768,7 @@ packages: - tasty-auto - tasty-stats - colorful-monoids + - ihs "Taras Serduke @tserduke": - do-list @@ -2765,7 +2802,7 @@ packages: - pqueue "Ryan Mulligan @ryantm": - - hdbc-mysql + - HDBC-mysql "Tony Day @tonyday567": [] @@ -2832,7 +2869,8 @@ packages: - printcess "Alexey Kuleshevich @lehins": - - wai-middleware-auth + [] + # - wai-middleware-auth # https://github.com/fpco/wai-middleware-auth/issues/3 # - hip # via repa: bounds: vector "Hans-Peter Deifel @hpdeifel": @@ -2906,7 +2944,7 @@ packages: - tsv2csv "Thomas Sutton @thsutton": - # - aeson-diff + - aeson-diff - edit-distance-vector "Kyle Van Berendonck @kvanberendonck": @@ -2946,6 +2984,7 @@ packages: "Hardy Jones @joneshf": - servant-ruby + - wai-middleware-rollbar "Andrey Mokhov @snowleopard": - algebraic-graphs @@ -2966,6 +3005,23 @@ packages: "Christof Schramm ": - mnist-idx + "Naushadh @naushadh": + - persistent-mysql-haskell + + "Moritz Schulte @mtesseract": + - async-refresh + - async-refresh-tokens + - type-level-integers + + "Simon Hafner @reactormonk": + - uri-bytestring-aeson + + "Sebastian Witte @saep": + [] + # - nvim-hs # build failure https://github.com/fpco/stackage/pull/2457 + # - nvim-hs-contrib # per nvim-hs + # - nvim-hs-ghcid # per nvim-hs + # 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 @@ -3023,24 +3079,57 @@ packages: # https://github.com/fpco/stackage/issues/2345 - syb < 0.7 - # https://github.com/fpco/stackage/issues/2354 - - mainland-pretty < 0.5.0.0 - # https://github.com/fpco/stackage/issues/2365 - - matplotlib < 0.4.1 + - matplotlib < 0.4.1 # still an issue with 0.4.3 # https://github.com/fpco/stackage/issues/2378 - errors < 2.2.0 - # https://github.com/fpco/stackage/issues/2386 - - unordered-containers < 0.2.8.0 - # https://github.com/fpco/stackage/issues/2393 - HUnit < 1.6.0.0 # https://github.com/fpco/stackage/issues/2400 - hslua < 0.5 + # https://github.com/fpco/stackage/issues/2433 + - hlint < 2 + + # https://github.com/fpco/stackage/issues/2436 + - base-orphans < 0.6 + - semigroups < 0.18.3 + # https://github.com/fpco/stackage/issues/2463 + - text-show < 3.6 + + # https://github.com/fpco/stackage/issues/2439 + - persistent < 2.7.0 + + # https://github.com/fpco/stackage/issues/2440 + - discord-hs < 0.3.2 + + # https://github.com/fpco/stackage/issues/2449 + - aeson < 1.2.0.0 + + # https://github.com/fpco/stackage/issues/2451 + - websockets < 0.11.0.0 + + # https://github.com/fpco/stackage/issues/2464 + - traverse-with-class < 1.0.0.0 + + # https://github.com/xtendo-org/rawfilepath/issues/3 + - rawfilepath < 0.2.0 + + # https://github.com/diagrams/active/issues/20 + - lens < 4.15.2 + + # https://github.com/fpco/stackage/issues/2477 + - intervals < 0.8 + + # https://github.com/fpco/stackage/issues/2478 + - generics-sop < 0.3.0.0 + + # https://github.com/fpco/stackage/issues/2479 + - ether < 0.5.0.0 + - transformers-lift < 0.2.0.0 # end of packages # Package flags are applied to individual packages, and override the values of @@ -3069,6 +3158,9 @@ package-flags: hpio: test-hlint: false + idris: + ffi: true + minio-hs: live-test: false @@ -3125,7 +3217,6 @@ package-flags: functor-classes-compat: containers: false - unordered-containers: false # https://github.com/fpco/stackage/issues/2386 # end of package-flags @@ -3156,6 +3247,11 @@ configure-args: hocilib: - --extra-lib-dirs - /usr/local/lib + clang-pure: + - --extra-lib-dirs + - /usr/lib/llvm-3.7/lib + - --extra-include-dirs + - /usr/lib/llvm-3.7/include # end of configure-args @@ -3304,6 +3400,7 @@ expected-test-failures: - 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 + - IPv6DB - amqp - aws # AWS Credentials - bindings-GLFW # Expects running X server @@ -3402,12 +3499,12 @@ expected-test-failures: - ListLike # No issue tracker, e-mail sent to maintainer - commutative # https://github.com/athanclark/commutative/issues/4 - dbus # 0.10.12 No issue tracker, e-mail sent to maintainer - - folds # https://github.com/ekmett/folds/issues/12 - hspec-expectations-pretty-diff # GHC 8 issue not reported upstream since issue tracker disabled - language-lua2 # https://github.com/mitchellwrosen/language-lua2/issues/4 - picosat # https://github.com/fpco/stackage/pull/2382 - sourcemap # https://github.com/chrisdone/sourcemap/issues/3 - - text-ldap # # https://github.com/khibino/haskell-text-ldap/issues/1 + - text-ldap # https://github.com/khibino/haskell-text-ldap/issues/1 + - text-show # https://github.com/fpco/stackage/issues/2436 - thyme # https://github.com/liyang/thyme/issues/50 - tries # https://github.com/athanclark/tries/issues/2 - vector-algorithms # http://hub.darcs.net/dolio/vector-algorithms/issue/9 @@ -3437,7 +3534,6 @@ expected-test-failures: - distributed-process-supervisor # # https://github.com/haskell-d - ghcid # Weird conflicts with sandboxingistributed/distributed-process-supervisor/issues/1 - haskell-docs # GHC bug - - http-client-openssl # https://github.com/snoyberg/http-client/issues/267 - rattletrap # OOM? https://github.com/fpco/stackage/issues/2232 - req # https://github.com/mrkkrp/req/issues/14#issuecomment-287562784 - servant # https://github.com/haskell-servant/servant/issues/698 @@ -3505,6 +3601,10 @@ expected-haddock-failures: - stratosphere - store + # https://github.com/kuribas/cubicbezier/issues/4 + - cubicbezier + + # end of expected-haddock-failures # Benchmarks which should not be built. Note that Stackage builds benchmarks but does not run them. @@ -3897,3 +3997,8 @@ hide: - cryptohash-md5 - cryptohash-sha1 - cryptohash-sha256 + +# Experimental: packages where Hackage cabal file revisions should be ignored. +# Always use the cabal file shipped with the sdist tarball instead. +no-revisions: +- tls diff --git a/debian-bootstrap.sh b/debian-bootstrap.sh index b149c584..fee40da3 100755 --- a/debian-bootstrap.sh +++ b/debian-bootstrap.sh @@ -111,6 +111,7 @@ apt-get install -y \ llvm-3.7 \ locales \ m4 \ + mono-mcs \ nettle-dev \ nodejs \ npm \ @@ -183,7 +184,7 @@ wget -O - http://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - \ && apt-get update \ && apt-get install -y llvm-4.0 -# non-free repo -apt-add-repository multiverse \ - && apt-get update \ - && apt-get install -y libfdk-aac-dev +## non-free repo for mediabus-fdk-aac +#apt-add-repository multiverse \ +# && apt-get update \ +# && apt-get install -y libfdk-aac-dev