Merge branch 'master' into ghc7.10

Conflicts:
	build-constraints.yaml
This commit is contained in:
Michael Snoyman 2015-03-27 13:12:16 +03:00
commit 8e432e5e68
3 changed files with 106 additions and 87 deletions

View File

@ -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

View File

@ -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.)

View File

@ -122,9 +122,7 @@ packages:
- kure
"Omari Norman <omari@smileystation.com>":
- 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 <dhelta.diaz@gmail.com>":
"Daniel Díaz dhelta.diaz@gmail.com @Daniel-Diaz":
- HaTeX
- matrix
- binary-list
- haskintex
- post-mess-age
"Gabriel Gonzalez <Gabriel439@gmail.com>":
- 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 <joey@eremondi.com>":
- 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 <gershomb@gmail.com> @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