v1.9.1
See https://haskellstack.org for installation and upgrade instructions.
Changes since v1.7.1:
Release notes:
- Statically linked Linux bindists are back again, thanks to @nh2.
- We will be deleting the Ubuntu, Debian, CentOS, Fedora, and Arch package repos from
download.fpcomplete.comsoon. These have been deprecated for over a year and have not received new releases, but were left in place for compatibility with older scripts.
Major changes:
- Upgrade to Cabal 2.4
- Note that, in this process, the behavior of file globbing has
been modified to match that of Cabal. In particular, this means
that for Cabal spec versions less than 2.4,*.txtwill
matchfoo.txt, but notfoo.2.txt.
- Note that, in this process, the behavior of file globbing has
GHCJSsupport is being downgraded to 'experimental'. A warning notifying the user of the experimental status ofGHCJSwill be displayed.
Behavior changes:
ghc-optionsfromstack.yamlare now appended toghc-optionsfrom
config.yaml, whereas before they would be replaced.stack buildwill now announce when sublibraries of a package are being
build, in the same way executables, tests, benchmarks and libraries are
announcedstack sdistwill now announce the destination of the generated tarball,
regardless of whether or not it passed the sanity checks- The
--upgrade-cabaloption tostack setuphas been
deprecated. This feature no longer works with GHC 8.2 and
later. Furthermore, the reason for this flag originally being
implemented was drastically lessened once Stack started using the
snapshot'sCaballibrary for custom setups. See:
#4070. - With the new namespaced template feature,
stack templatesis no
longer able to meaningfully display a list of all templates
available. Instead, the command will download and display a
help file
with more information on how to discover templates. See:
#4039 - Build tools are now handled in a similar way to
cabal-install. In
particular, for legacybuild-toolsfields, we use a hard-coded
list of build tools in place of looking up build tool packages in a
tool map. This both brings Stack's behavior closer into line with
cabal-install, avoids some bugs, and opens up some possible
optimizations/laziness. See:
#4125. - Mustache templating is not applied to large files (over 50kb) to
avoid performance degredation. See:
#4133. stack uploadsigns the package by default, as documented.--no-signature
turns the signing off.
#3739- In case there is a network connectivity issue while trying to
download a template, stack will check whether that template had
been downloaded before. In that case, the cached version will be
used. See #3850.
Other enhancements:
- On Windows before Windows 10, --color=never is the default on terminals that
can support ANSI color codes in output only by emulation - On Windows, recognise a 'mintty' (false) terminal as a terminal, by default
stack buildissues a warning whenbaseis explicitly listed in
extra-depsofstack.yamlstack buildsuggests trying another GHC version should the build
plan end up requiring unattainablebaseversion.- A new sub command
runhas been introduced to build and run a specified executable
similar tocabal run. If no executable is provided as the first argument, it
defaults to the first available executable in the project. stack buildmissing dependency suggestions (on failure to construct a valid
build plan because of missing deps) are now printed with their latest
cabal file revision hash. See
#4068.- Added new
--tar-diroption tostack sdist, that allows to copy
the resulting tarball to the specified directory. - Introduced the
--interleaved-outputcommand line option and
build.interleaved-outputconfig value which causes multiple concurrent
builds to dump to stderr at the same time with apackagename>prefix. See
#3225. - The default retry strategy has changed to exponential backoff.
This should help with
#3510. stack newnow allows template names of the formusername/footo
download from a user other thancommercialstackon Github, and can be prefixed
with the servicegithub:,gitlab:, orbitbucket:. #4039- Switch to
githashto include some unmerged bugfixes ingitrev
Suggestion to add'allow-newer': truenow shows path to user config
file where this flag should be put into #3685 stack ghcinow asks which main target to load before doing the build,
rather than after- Bump to hpack 0.29.0
- With GHC 8.4 and later, Haddock is given the
--quickjumpflag. - It is possible to specify the Hackage base URL to upload packages to, instead
of the default ofhttps://hackage.haskell.org/, by usinghackage-base-url
configuration option. - When using Nix, if a specific minor version of GHC is not requested, the
latest minor version in the given major branch will be used automatically.
Bug fixes:
stack ghcinow does not invalidate.ofiles on repeated runs,
meaning any modules compiled with-fobject-codewill be cached
between ghci runs. See
#4038.~/.stack/config.yamlandstack.yamlterminating by newline- The previous released caused a regression where some
stderrfrom the
ghc-pkgcommand showed up in the terminal. This output is now silenced. - A regression in recompilation checking introduced in v1.7.1 has been fixed.
See #4001 stack ghcion a package with internal libraries was erroneously looking
for a wrong package corresponding to the internal library and failing to
load any module. This has been fixed now and changes to the code in the
library and the sublibrary are properly tracked. See
#3926.- For packages with internal libraries not depended upon,
stack buildused
to fail the build process since the internal library was not built but it
was tried to be registered. This is now fixed by always building internal
libraries. See
#3996. --no-nixwas not respected under NixOS- Fix a regression which might use a lot of RAM. See
#4027. - Order of commandline arguments does not matter anymore.
See #3959 - When prompting users about saving their Hackage credentials on upload,
flush to stdout before waiting for the response so the prompt actually
displays. Also fixes a similar issue with ghci target selection prompt. - If
cabalis not on PATH, runningstack solvernow prompts the user
to runstack install cabal-install stack buildnow succeeds in building packages which contain sublibraries
which are dependencies of executables, tests or benchmarks but not of the
main library. See
#3787.- Sublibraries are now properly considered for coverage reports when the test
suite depends on the internal library. Before, stack was erroring when
trying to generate the coverage report, see
#4105. - Sublibraries are now added to the precompiled cache and recovered from there
when the snapshot gets updated. Previously, updating the snapshot when there
was a package with a sublibrary in the snapshot resulted in broken builds.
This is now fixed, see
#4071. - [#4114] Stack pretty prints error messages with proper
errorlogging
level instead ofwarningnow. This also fixes self-executing scripts
not piping plan construction errors from runhaskell to terminal (issue
#3942). - Fix invalid "While building Setup.hs" when Cabal calls fail. See:
#3934 stack uploadsigns the package by default, as documented.--no-signature
turns the signing off.
#3739
Thanks to all our contributors for this release:
- Adrian Wong
- Alexey Kotlyarov
- Andrea Bessi
- Asalle
- Asalle Mirzaieva
- Attila Domokos
- braulio
- Buck Evan
- Chris Allen
- Chris Done
- chromezh
- Darryl Abbate
- David Baynard
- David Jarvis
- dbaynard
- Emanuel Borsboom
- Francis De Brabandere
- Guy Sheffer
- Ivan Kasatenko
- John Mendonca
- Jonathan Boulle
- Kirill Zaborsky
- Kostiantyn Rybnikov
- Lyle Kopnicky
- Markus Hauck
- Matchwood
- Matt Audesse
- Michael Sloan
- Michael Snoyman
- Mihai Maruseac
- Mike Pilgrem
- ncaq
- Paolo G. Giarrusso
- Pavel Krajcevski
- Pratik Chaudhary
- pythonissam
- Reuben D'Netto
- Richard Szibele
- RoelofWobben
- rszibele
- Sandy Maguire
- Sibi Prabakaran
- Simon Hengel
- tdietert
- The Gitter Badger
- Thomas Tuegel
- Tom Sydney Kerckhove
- Tom Welsh
- Trevor Rothaus
- trotha01
- 欧阳泽