@@ -26,7 +26,30 @@ After doing that commit with a message like "add foo-bar" and send a pull reques
26The continuous integration job will do some checks to see if your package's dependencies are up-to-date.
26The continuous integration job will do some checks to see if your package's dependencies are up-to-date.
28The CI job notably doesn't compile packages, run tests, build documentation, or find missing C libraries.
28The 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:
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
40+This approach works well, but has two limitations you should be aware
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.
51+Alternatively, you can build with `cabal`. Note that this may end up
52+using older dependency versions:
32$ ghc --version # Should be the same as the latest nightly, it's in the title of https://www.stackage.org/nightly
55$ 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
139Nightly, please simply send a pull request to add it back once it and
162Nightly, please simply send a pull request to add it back once it and
140its dependencies are compatible with the newest GHC version.
163its dependencies are compatible with the newest GHC version.
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—but not
168+always—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).
142## Adding a package to an LTS snapshot
172## Adding a package to an LTS snapshot
144The steps above affect the Stackage Nightly builds, but do not directly affect
174The steps above affect the Stackage Nightly builds, but do not directly affect