diff --git a/Dockerfile b/Dockerfile index e3b09c3b..095bdc4a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,6 +20,6 @@ ENV PATH /home/stackage/.cabal/bin:/usr/local/sbin:/usr/local/bin:/opt/ghc/7.8.4 RUN cabal update RUN cabal install hscolour cabal-install --constraint "Cabal < 1.22" && cp $HOME/.cabal/bin/* /usr/local/bin && rm -rf $HOME/.cabal $HOME/.ghc /tmp/stackage -RUN wget https://s3.amazonaws.com/stackage-travis/stackage-curator.bz2 && bunzip2 stackage-curator.bz2 && chmod +x stackage-curator && mv stackage-curator /usr/local/bin +RUN wget https://s3.amazonaws.com/stackage-travis/stackage-curator/stackage-curator.bz2 && bunzip2 stackage-curator.bz2 && chmod +x stackage-curator && mv stackage-curator /usr/local/bin RUN cd /home/stackage && cabal update && stackage-curator check diff --git a/README.md b/README.md index 47f46a1f..f7048506 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,23 @@ dependencies, you may send a pull request without testing first. You should also read the [maintainers agreement](https://github.com/fpco/stackage/wiki/Maintainers-Agreement). +Package Author Guidelines +------------------------- + +There are some basic rules to get your package to play nice with Stackage. Here +are some quick guidelines to hopefully make this easier: + +* Make sure that your code is buildability and testable from Hackage. Often + times, authors test their builds locally, but the tarball that gets uploaded + to Hackage is missing some necessary files. The best way to do this is to + set up a Travis job to do it for you. We recommend the + [multi-ghc-travis](https://github.com/hvr/multi-ghc-travis) approach. +* Make your code compatible with the newest versions of all dependencies. +* Make your code 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)). + +There are certainly many other tips that could be added here. If you think of +any, please send a pull request! + Build the package set --------------------- @@ -96,45 +113,3 @@ 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 - -## Code explanation - -We start off with *constraints*. Constraints state things like "package X has a -given version range," who the maintainer is for a package, the description of -the system/compiler being used, etc. `BuildConstraints` describes the build as -a whole, whereas `PackageConstraints` describes the constraints on an -individual package. - -There are two primary ways of getting a `BuildConstraints`. -`defaultBuildConstraints` inspects the first GHC in the PATH environment variable to -determine GHC version, core packages, core tools, etc. It then uses the -`Stackage.Config` module to extract information on additional packages to be -installed. The secondary approach is in `Stackage2.UpdateBuildPlan`, which will be -discussed later. - -`BuildConstraints` does not specify a build completely. That is given by a -`BuildPlan`, which is similarly broken down into `BuildPlan` and `PackagePlan`. -In order to get a `BuildPlan`, we need two pieces of information: the -`BuildConstraints`, and a package index. The package index (usually downloaded -from Hackage) is a collection of all of the cabal files available. - -By applying a `BuildConstraints` to a package index (via `newBuildPlan`), we -get a proposed `BuildPlan`. There is no guarantee that this `BuildPlan` is -valid. To validate it, we use `checkBuildPlan`. A `BuildPlan` is an instance of -both `ToJSON` and `FromJSON`, and therefore can be serialized to a file for -later use. - -When dealing with LTS Haskell, we want to be able to take a `BuildPlan`, and -update to a newer `BuildPlan` that keeps all packages at the same major -version. `updateBuildConstraints` turns a `BuildPlan` into a new -`BuildConstraints` with that restriction, and `updateBuildPlan` applies -`newBuildPlan` to that result. As mentioned previously: this is *not* a -validated result, and therefore `checkBuildPlan` must be used. - -A `BuildPlan` can be acted on. This is done to check that all packages compile -together, run relevant test suites, test Haddock documentation is correct, and -produce as artifacts both a self-contained GHC binary package database and a -set of Haddock documentation. (Not yet implemented.) - -A `BuildPlan` may be converted into a bundle to be uploaded to Stackage Server. -(Not yet implemented.) diff --git a/build-constraints.yaml b/build-constraints.yaml index 3ba1919f..1e1c5d0e 100644 --- a/build-constraints.yaml +++ b/build-constraints.yaml @@ -122,9 +122,7 @@ packages: - kure "Omari Norman ": - - barecheck - rainbow - - quickpull - multiarg - prednote - cartel @@ -322,10 +320,13 @@ packages: #- BlogLiterately #- BlogLiterately-diagrams - diagrams - - diagrams-builder + + # https://github.com/fpco/stackage/issues/443 + #- diagrams-builder + #- diagrams-haddock + - diagrams-contrib - diagrams-core - - diagrams-haddock - diagrams-lib - diagrams-postscript - diagrams-svg @@ -373,10 +374,12 @@ packages: - tardis - lens-family-th - "Daniel Díaz ": + "Daniel Díaz dhelta.diaz@gmail.com @Daniel-Diaz": - HaTeX - matrix - binary-list + - haskintex + - post-mess-age "Gabriel Gonzalez ": - pipes @@ -480,8 +483,7 @@ packages: - openpgp-asciiarmor - MusicBrainz - DAV - # https://github.com/fpco/stackage/issues/463 - #- hopenpgp-tools + - hopenpgp-tools # https://github.com/fpco/stackage/issues/160 "Ketil Malde": @@ -629,10 +631,11 @@ packages: "Joey Eremondi ": - aeson-pretty - digest - - elm-build-lib - - elm-compiler + # See: https://github.com/elm-lang/elm-compiler/commit/e714001a928b3834b62555fc350909c95d380ef4 + #- elm-build-lib + #- elm-compiler - elm-core-sources - - elm-package + #- elm-package - language-glsl - prettyclass - QuasiText @@ -741,54 +744,95 @@ packages: "Oleg Grenrus oleg.grenrus@iki.fi @phadej": - waitra - + "Adam C. Foltzer acfoltzer@galois.com @acfoltzer": + - cryptol - gitrev "Luke Taylor tekul.hs@gmail.com @tekul": - jose-jwt + "Brendan Hay brendan.g.hay@gmail.com @brendanhay": + - amazonka + - amazonka-core + - amazonka-autoscaling + - amazonka-cloudformation + - amazonka-cloudfront + - amazonka-cloudhsm + - amazonka-cloudsearch-domains + - amazonka-cloudsearch + - amazonka-cloudtrail + - amazonka-cloudwatch-logs + - amazonka-cloudwatch + - amazonka-codedeploy + - amazonka-cognito-identity + - amazonka-cognito-sync + - amazonka-config + - amazonka-datapipeline + - amazonka-directconnect + - amazonka-dynamodb + - amazonka-ec2 + - amazonka-ecs + - amazonka-elasticache + - amazonka-elasticbeanstalk + - amazonka-elastictranscoder + - amazonka-elb + - amazonka-emr + - amazonka-glacier + - amazonka-iam + - amazonka-importexport + - amazonka-kinesis + - amazonka-kms + - amazonka-lambda + - amazonka-opsworks + - amazonka-rds + - amazonka-redshift + - amazonka-route53-domains + - amazonka-route53 + - amazonka-s3 + - amazonka-sdb + - amazonka-ses + - amazonka-sns + - amazonka-sqs + - amazonka-ssm + - amazonka-storagegateway + - amazonka-sts + - amazonka-support + - amazonka-swf + - ede + - pagerduty + - semver + - text-manipulate + + "Nick Partridge nkpart@gmail.com @nkpart": + - cabal-file-th + + "Gershom Bazerman @gbaz": + - jmacro + - jmacro-rpc + - jmacro-rpc-happstack + - jmacro-rpc-snap + - mbox + - kmeans + - boolsimplifier + - cubicspline + - maximal-cliques + "Stackage upper bounds": - # https://github.com/fpco/stackage/issues/390 - # NOTE: When this issue is resolved, remove the expected test failure - # for language-ecmascript as well. - - language-ecmascript < 0.17 - - # https://github.com/fpco/stackage/issues/407 - - HStringTemplate < 0.8 - - # https://github.com/fpco/stackage/issues/410 - - elm-package < 0.4 - # https://github.com/fpco/stackage/issues/415 - hackage-db < 1.12 # https://github.com/fpco/stackage/issues/424 - control-monad-free < 0.6 - # https://github.com/fpco/stackage/issues/426 - - utf8-string < 1 - - # https://github.com/fpco/stackage/issues/440 - - th-orphans < 0.9 - - file-location < 0.4.7 - - th-desugar < 1.5.1 - - singletons < 1.1.1 - # https://github.com/fpco/stackage/issues/442 - blaze-builder < 0.4 + + # https://github.com/fpco/stackage/issues/487 - blaze-markup < 0.7 - blaze-html < 0.8 - # https://github.com/fpco/stackage/issues/443 - - exceptions < 0.7 - - rest-client < 0.5 - - rest-types < 1.13 - - rest-core < 0.35 - - rest-gen < 0.17 - - rest-wai < 0.1.0.7 - # https://github.com/fpco/stackage/issues/467 - lens < 4.8 @@ -804,8 +848,8 @@ packages: # https://github.com/fpco/stackage/issues/483 - rethinkdb-client-driver < 0.0.15 - # https://github.com/fpco/stackage/issues/485 - - parsec < 3.1.9 + # https://github.com/fpco/stackage/issues/494 + - criterion < 1.1 # Package flags are applied to individual packages, and override the values of # global-flags @@ -1032,9 +1076,6 @@ expected-test-failures: # https://github.com/vincenthz/hs-crypto-pubkey/issues/17 - crypto-pubkey - # https://github.com/jswebtools/language-ecmascript/issues/60 - - language-ecmascript - # https://github.com/kazu-yamamoto/unix-time/issues/29 - unix-time @@ -1125,6 +1166,9 @@ skipped-benchmarks: # sometimes falls out-of-sync on hasql-postgres - hasql + # https://github.com/fpco/stackage/issues/488 + - uuid-types + skipped-profiling: # https://github.com/nomeata/ghc-heap-view/commit/8d198eb8fbbad2ce0c4527c781659f35b8909c04#diff-8288955e209cfbead5b318a8598be9c0R10 - ghc-heap-view