stack v1.9.0.1 Release Notes
Release Date: 2018-09-23 // over 5 years ago-
๐ First release candidate for v1.9
๐ Changes since v1.7.1
๐ Release notes:
- ๐ง Statically linked Linux bindists are back again, thanks to @nh2.
๐ง Please try thestack-1.9.0.1-linux-x86_64-static.tar.gz
distribution if using Linux , since it will be the default installed version once v1.9.1 is released. - ๐ We will be deleting the Ubuntu, Debian, CentOS, Fedora, and Arch package repos from
download.fpcomplete.com
soon. 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:
- โฌ๏ธ
GHCJS
support is being downgraded to 'experimental'. A warning notifying the user of the experimental status ofGHCJS
will be displayed.
Behavior changes:
ghc-options
fromstack.yaml
are now appended toghc-options
from
config.yaml
, whereas before they would be replaced.- ๐
stack build
will now announce when sublibraries of a package are being
๐ build, in the same way executables, tests, benchmarks and libraries are
announced stack sdist
will now announce the destination of the generated tarball,
regardless of whether or not it passed the sanity checks- โฌ๏ธ The
--upgrade-cabal
option tostack setup
has 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'sCabal
library for custom setups. See:
#4070. - With the new namespaced template feature,
stack templates
is 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-tools
fields, 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 upload
signs 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 build
issues a warning whenbase
is explicitly listed in
extra-deps
ofstack.yaml
- ๐
stack build
suggests trying another GHC version should the build
plan end up requiring unattainablebase
version. - ๐ A new sub command
run
has been introduced to build and run a specified executable
similar tocabal run
. If no executable is provided as the first argument, it
0๏ธโฃ defaults to the first available executable in the project. - ๐
stack build
missing 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-dir
option tostack sdist
, that allows to copy
the resulting tarball to the specified directory. - ๐ป Introduced the
--interleaved-output
command line option and
๐build.interleaved-output
config value which causes multiple concurrent
๐ builds to dump to stderr at the same time with apackagename>
prefix. See
#3225. - 0๏ธโฃ The default retry strategy has changed to exponential backoff.
This should help with
#3510. stack new
now allows template names of the formusername/foo
to
๐ download from a user other thancommercialstack
on Github, and can be prefixed
with the servicegithub:
,gitlab:
, orbitbucket:
. #4039- ๐ Switch to
githash
to include some unmerged bugfixes ingitrev
Suggestion to add'allow-newer': true
now shows path to user config
file where this flag should be put into #3685 - ๐
stack ghci
now 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
--quickjump
flag. - ๐ฆ It is possible to specify the Hackage base URL to upload packages to, instead
0๏ธโฃ 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 ghci
now does not invalidate.o
files on repeated runs,
meaning any modules compiled with-fobject-code
will be cached
๐ between ghci runs. See
#4038.~/.stack/config.yaml
andstack.yaml
terminating by newline- ๐ The previous released caused a regression where some
stderr
from the
ghc-pkg
command 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 ghci
on 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 build
used
๐ 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-nix
was 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
cabal
is not on PATH, runningstack solver
now prompts the user
to runstack install cabal-install
- ๐
stack build
now 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
error
logging
โ level instead ofwarning
now. 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 upload
signs the package by default, as documented.--no-signature
turns the signing off.
#3739
- ๐ง Statically linked Linux bindists are back again, thanks to @nh2.