v1.3.0
See https://haskellstack.org for installation and upgrade instructions.
Release notes:
- For the next stack release after this one, we are planning
changes to our Linux releases, including dropping our Ubuntu,
Debian, CentOS, and Fedora package repositories and switching to
statically linked binaries. See
#2534.
Note that upgrading without a package manager has gotten easier
with new binary upgrade support instack upgrade(see the Major
Changes section below for more information). In addition, the
get.haskellstack.org script no longer installs from Ubuntu,
Debian, CentOS, or Fedora package repositories. Instead it places
a generic binary in /usr/local/bin. 
Major changes:
- 
Stack will now always use its own GHC installation, even when a suitable GHC
installation is available on the PATH. To get the old behaviour, use
the--system-ghcflag or runstack config set system-ghc --global true.
Docker- and Nix-enabled projects continue to use the GHC installations
in their environment by default.NB: Scripts that previously used stack in combination with a system GHC
installation should now include astack setupline or use the--install-ghc
flag.
#2221 - 
stack ghcinow defaults to skipping the build of target packages, because
support has been added for invoking "initial build steps", which create
autogen files and run preprocessors. The--no-buildflag is now deprecated
because it should no longer be necessary. See
#1364 - 
Stack is now capable of doing binary upgrades instead of always
recompiling a new version from source. Runningstack upgradewill
now default to downloading a binary version of Stack from the most
recent release, if one is available. Seestack upgrade --helpfor
more options.
#1238 
Behavior changes:
- Passing 
--resolver Xwith a Stack command which forces creation of a global
project config, will pass resolver X into the initial config.
See #2579. - Switch the "Run from outside project" messages to debug-level, to
avoid spamming users in the normal case of non-project usage - If a remote package is specified (such as a Git repo) without an explicit
extra-depsetting, a warning is given to the user to provide one
explicitly. 
Other enhancements:
stack haddocknow supports--haddock-internal. See
#2229- Add support for 
system-ghcandinstall-ghcfields tostack config setcommand. - Add 
ghc-buildoption to override autodetected GHC build to use (e.g. gmp4,
tinfo6, nopie) on Linux. stack setupdetects systems where gcc enables PIE by default (such as Ubuntu
16.10 and Hardened Gentoo) and adjusts the GHCconfigureoptions accordingly.
#2542- Upload to Hackage with HTTP digest instead of HTTP basic.
 - Make 
stack list-dependenciesunderstand all of thestack dotoptions too. - Add the ability for 
stack list-dependenciesto list dependency licenses by
passing the--licenseflag. - Dump logs that contain warnings for any local non-dependency packages
#2545 - Add the 
dump-logsconfig option and--dump-logscommand line
option to get full build output on the
console. #426 - Add the 
--openoption to "stack hpc report" command, causing the report to
be opened in the browser. - The 
stack config setcommand now accepts a--globalflag for suitable fields
which causes it to modify the global user configuration (~/.stack/config.yaml)
instead of the project configuration.
#2675 - Information on the latest available snapshots is now downloaded from S3 instead of
stackage.org, increasing reliability in case of stackage.org outages.
#2653 stack dotandstack list-dependenciesnow take targets and flags.
#1919- Deprecate 
stack setup --stack-setup-yamlfor--setup-info-yamlbased
on discussion in #2647. - The 
--main-isflag for GHCI now implies the TARGET, fixing
#1845. stack ghcino longer takes all build options, as many weren't useful
#2199--no-time-in-logoption, to make verbose logs more diffable
#2727--coloroption added to override auto-detection of ANSI support
#2725- Missing extra-deps are now warned about, adding a degree of typo detection
#1521 - No longer warns about missing build-tools if they are on the PATH.
#2235 - Replace enclosed-exceptions with safe-exceptions.
#2768 - The install location for GHC and other programs can now be configured with the
local-programs-pathoption inconfig.yaml.
#1644 - Added option to add nix dependencies as nix GC roots
 - Proper pid 1 (init) process for 
stack execwith Docker - Dump build logs if they contain warnings.
#2545 - Docker: redirect stdout of 
docker pullto stderr so that
it will not interfere with output of other commands. - Nix & docker can be activated at the same time, in order to run stack in a nix-shell
in a container, preferably from an image already containing the nix dependencies
in its /nix/store - Stack/nix: Dependencies can be added as nix GC roots, so they are not removed
when runningnix-collect-garbage 
Bug fixes:
- Fixed a gnarly bug where programs and package tarballs sometimes have
corrupted downloads. See
#2657. - Add proper support for non-ASCII characters in file paths for the 
sdistcommand.
See #2549 - Never treat 
extra-deplocal packages as targets. This ensures
things like test suites are not run for these packages, and that
build output is not hidden due to their presence. - Fix a resource leak in 
sinkProcessStderrStdoutwhich could affect
much of the codebase, in particular copying precompiled
packages. #1979 - Docker: ensure that interrupted extraction process does not cause corrupt file
when downloading a Docker-compatible Stack executable
#2568 - Fixed running 
stack hpc reporton package targets.
#2664 - Fix a long-standing performance regression where stack would parse the .dump-hi
files of the library components of local packages twice.
#2658 - Fixed a regression in "stack ghci --no-load", where it would prompt for a main
module to load. #2603 - Build Setup.hs files with the threaded RTS, mirroring the behavior of
cabal-install and enabling more complex build systems in those files. - Fixed a bug in passing along 
--ghc-optionsto ghcjs. They were being
provided as--ghc-optionsto Cabal, when it needs to be--ghcjs-options.
#2714 - Launch Docker from the project root regardless of the working
directory Stack is invoked from. This means paths relative to the project root
(e.g. environment files) can be specified instack.yaml's dockerrun-args. stack setup --reinstallnow behaves as expected.
#2554
Thanks to all our contributors for this release:
- Alexis Williams
 - devlinzed
 - Echo Nolan
 - Emanuel Borsboom
 - Eric Thomas
 - Felix Yan
 - Francesco Mazzoli
 - Geoffrey Noel
 - Gábor Lipták
 - Harendra Kumar
 - ickc
 - Keshav Kini
 - Luke Murphy
 - Marcin Tolysz
 - Michael Sloan
 - Michael Snoyman
 - mrkkrp
 - osbugs
 - Paolo G. Giarrusso
 - Reuben D'Netto
 - Robbin C
 - Ruud van Asseldonk
 - Sam Doshi
 - Simon Jakobi
 - Tomasz Lewowski
 - U-CIQDEV
 - bazerman
 - whatsthepoint
 - Yves Parès (Ywen)