on master help sign in
Merge pull request #3053 from fpco/more-maintainer-updates

Build with Stack, LTS Haskell and GHC

commit4b4d5f4bb5bed3a4e0e8f8910e684ade23a91cea authorMichael Snoyman <michael@snoyman.com> dateMon 4 Dec 2017, 13:25 (9 years ago) parent6b0ab5926a075c
1 file changed+31−1
MAINTAINERS.md+31−1
MAINTAINERS.md+31−1
@@ -26,7 +26,30 @@ After doing that commit with a message like "add foo-bar" and send a pull reques
2626The continuous integration job will do some checks to see if your package's dependencies are up-to-date.
2727
2828The CI job notably doesn't compile packages, run tests, build documentation, or find missing C libraries.
29−If you want to be proactive or if CI fails, you can make sure that your package builds against the newest versions of all dependencies like this:
29+If you want to be proactive or if CI fails, you can make sure that your package builds against the latest nightly:
30+
31+```
32+# Build from the tarball on Hackage to check for missing files
33+$ stack unpack yourpackage && cd yourpackage-*
34+# Generate a pristine stack.yaml, adding any missing extra-deps
35+$ rm -f stack.yaml && stack init --resolver nightly --solver
36+# Build, generate docs, test, and build benchmarks
37+$ stack build --resolver nightly --haddock --test --bench --no-run-benchmarks
38+```
39+
40+This approach works well, but has two limitations you should be aware
41+of:
42+
43+* It won't notify you of restrictive upper bounds in your package if
44+ Stackage has the same upper bounds. For that reason, we recommend
45+ using [Packdeps](http://packdeps.haskellers.com/) (see "Following
46+ dependency upgrades" below).
47+* If the latest Stackage Nightly is missing some of the latest
48+ packages, your build above may succeed whereas the Travis job may
49+ fail. Again: Packdeps will help you detect this situation.
50+
51+Alternatively, you can build with `cabal`. Note that this may end up
52+using older dependency versions:
3053
3154```
3255$ ghc --version # Should be the same as the latest nightly, it's in the title of https://www.stackage.org/nightly
@@ -139,6 +162,13 @@ If your package ends up being temporarily disabled from Stackage
139162Nightly, please simply send a pull request to add it back once it and
140163its dependencies are compatible with the newest GHC version.
141164
165+Note that it is _not_ a goal of LTS Haskell to track the latest
166+version of GHC. If you want the latest and greatest, Stackage Nightly
167+is your best bet. In particular, LTS Haskell will often&mdash;but not
168+always&mdash;avoid upgrading to the first point release of GHC
169+releases (e.g., 8.2.1) to allow further testing and to get the
170+benefits of the first bugfix release (e.g., 8.2.2).
171+
142172## Adding a package to an LTS snapshot
143173
144174The steps above affect the Stackage Nightly builds, but do not directly affect