Changelog History
Page 2
-
v2.1.3 Changes
July 13, 2019β¬οΈ See https://haskellstack.org/ for installation and upgrade instructions.
π Changes since v2.1.1
Behavior changes:
Disable WAL mode for SQLite3 databases, to improve compatibility with
π some platforms and filesystems. See
#4876.π By default, do not perform expiry checks in Hackage Security. See
#4928.Other enhancements:
β Do not rerun expected test failures. This is mostly a change that
will only affect the Stackage Curator use case, but there is now an
β additional message letting the user know when a previously-failed
β test case is being rerun.π§ Move configure information for local packages back to .stack-work to
π improve caching. See
#4893.π Bug fixes:
π Fix to allow dependencies on specific versions of local git repositories. See
#4862π Allow Stack commands to be run in Nix mode without having a project file
π available. See
#4854.β Removes dependency on gnu-tar for OSX and Linux environment. The
π--force-local
option was required only for windows environment.Properly wait for the
tar
subprocess to complete before returning, thereby
π avoiding a SIGTERM screwing up GHC installation. See
#4888.π Use package complete locations from lock files when resolving dependencies
π inextra-deps
. See
#4887.Set the
HASKELL_DIST_DIR
environment to a proper package dist
β directory sodoctest
is able to load modules autogenerated by Cabal.π¦ Expose package library when running tests.
π Fix support for non-ASCII module names. See
4938Other changes:
- π¦ Rename
pantry-tmp
package back topantry
, now that we have gained
β maintainership (which had been used by someone else for a candidate-only test
π that made it look like the name was free but prevented uploading a real
π¦ package).
π Thanks to all our contributors for this release:
- Alan Malloy
- Alexander
- Emanuel Borsboom
- Kirill Zaborsky
- Matt Audesse
- Michael Snoyman
- Mihai Maruseac
- Sibi Prabakaran
- π¦ Rename
-
v2.1.3.1 Changes
π Hackage-only release:
- π Support persistent-template-2.7.x
- π Support rio-0.1.11.0
- β Add
stack.yaml
back to hackage sdist, and addsnapshot.yaml
-
v2.1.1 Changes
June 13, 2019π The Stack 2 release represents a series of significant changes to how Stack works internally. For the vast majority of cases, these changes are backwards compatible, in that existing projects will continue to build in the same way with Stack 2 as they did with Stack 1. The large version bump is due to the fundamental internal changes to cache handling, database storage (using SQLite in place of binary files), implicit snapshots (which greatly improve the precompiled cache), and moving to Pantry. We have also removed some less used features, as listed in the release notes below.
β¬οΈ See https://haskellstack.org/ for installation and upgrade instructions.
π Changes since v1.9.3
Major changes:
- π¦ Switch over to pantry for managing packages. This is a major change
to Stack's internals, and affects user-visible behavior in a few
places. Some highlights:- Drop support for multiple package indices and legacy
π00-index.tar
style indices. See
#4137. - Support for archives and repos in the
packages
section has
π been removed. Instead, you must useextra-deps
for such
π¦ dependencies.packages
now only supports local filepaths. - Add support for Git repositories containing (recursive) submodules.
- Addition of new configuration options for specifying a "pantry
π tree" key, which provides more reproducibility around builds,
π¦ and (in the future) will be used for more efficient package
π¦ content downloads. You can also specify package name and version
π for more efficient config parsing.
* NOTE The newstack freeze
command provides support
for automatically generating this additional
information. - Package contents and metadata are stored in an SQLite database
in place of files on the filesystem. Thepantry
library can be
π used for interacting with these contents. - Internally, Stack has changed many datatypes, including moving
to Cabal's definition of many data types. As a result of such
π changes, existing cache files will in general be invalidated,
resulting in Stack needing to rebuild many previously cached
π builds in the new version. Sorry :(. - A new command,
stack freeze
has been added which outputs
π project and snapshot definitions with dependencies pinned to
their exact versions. - The
ignore-revision-mismatch
setting is no longer needed, and
π has been removed. - Overriding GHC boot packages results in any other GHC boot
π¦ packages depending on it being no longer available as a dependency,
π such packages need to be added explicitly when needed. See
[#4510] (#4510). - Cabal solver integration was not updated to support newer
πcabal-install
versions sostack solver
command was removed as
well as a related option--solver
fromstack new
and
stack init
.
- Drop support for multiple package indices and legacy
- β¬οΈ 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,*.txt
will
matchfoo.txt
, but notfoo.2.txt
.
- Note that, in this process, the behavior of file globbing has
- β Remove the
stack image
command. With the advent of Docker multistage
π builds, this functionality is no longer useful. For an example, please see
π Building Haskell Apps with
π Docker. - π Support building GHC from source (experimental)
- Stack now supports building and installing GHC from source. The built GHC
is uniquely identified by a commit id and an Hadrian "flavour" (Hadrian is
π· the newer GHC build system), hencecompiler
can be set to use a GHC
built from source withghc-git-COMMIT-FLAVOUR
- Stack now supports building and installing GHC from source. The built GHC
- π§
stack.yaml
now supports aconfigure-options
, which are passed directly to
π theconfigure
step in the Cabal build process. See
#1438 - β Remove support for building GHCJS itself. Future releases of Stack
π may remove GHCJS support entirely. - π Support for lock files for pinning exact project dependency versions
Behavior changes:
- π
stack.yaml
now supportssnapshot
: a synonym forresolver
. See
#4256 stack script
now passes-i -idir
in to theghc
invocation. This makes it so that the script can import local
π modules, and fixes an issue where.hs
files in the current
π directory could affect interpretation of the script. See
#4538- When using
stack script
, custom snapshot files will be resolved
relative to the directory containing the script. - β Remove the deprecated
--upgrade-cabal
flag tostack setup
. - π Support the
drop-packages
field instack.yaml
- β Remove the GPG signing code during uploads. The GPG signatures have
never been used yet, and there are no plans to implement signature
verification. - β Remove the
--plain
option for theexec
family of commands - π§ Always use the
--exact-configuration
Cabal configuration option when
π building (should mostly be a non-user-visible enhancement). - π No longer supports Cabal versions older than
1.19.2
. This means
projects using snapshots earlier thanlts-3.0
or
πnightly-2015-05-05
will no longer build. - β Remove the
stack docker cleanup
command. Docker itself now has
π³docker image prune
and
π³docker container prune
,
which you can use instead. - π Interleaved output is now turned on by default, see
#4702. In
β addition, thepackagename>
prefix is no longer included in
π interelaved mode when only building a single target. - 0οΈβ£ The
-fhide-source-paths
GHC option is now enabled by default and
π§ can be disabled via thehide-source-paths
configuration option in
πstack.yaml
. See #3784 - π¦ Stack will reconfigure a package if you modify your
PATH
environment
π variable. See
#3138. - βͺ For GHC 8.4 and later, disable the "shadowed dependencies" workaround. This
π means that Stack will no longer have to force reconfigures as often. See
#3554. - π When building a package, Stack takes a lock on the dist directory in
π use to avoid multiple runs of Stack from trampling each others'
π files. See
#2730. - Stack will check occassionally if there is a new version available and prompt
β¬οΈ the user to upgrade. This will not incur any additional network traffic, as
β‘οΈ it will piggy-back on the existing Hackage index updates. You can set
β¬οΈrecommend-stack-upgrade: false
to bypass this. See
#1681. - π
stack list-dependencies
has been removed in favour ofstack ls dependencies
. - π The new default for
--docker-auto-pull
is enabled. See
#3332.
Other enhancements:
- π Support MX Linux in get-stack.sh. Fixes
#4769. - π¦ Defer loading up of files for local packages. This allows us to get
plan construction errors much faster, and avoid some unnecessary
π work when only building a subset of packages. This is especially
π useful for the curator use case. - Existing global option
--color=WHEN
is now also available as a
π§ non-project-specific yaml configuration parametercolor:
. - Adopt the standard proposed at http://no-color.org/, that color should not be
β added by default if theNO_COLOR
environment variable is present. - π New command
stack ls stack-colors
lists the styles and the associated 'ANSI'
π control character sequences that stack uses to color some of its output. See
stack ls stack-colors --help
for more information. - π New global option
--stack-colors=STYLES
, also available as a
π§ non-project-specific yaml configuration parameter, allows a stack user to
π redefine the default styles that stack uses to color some of its output. See
stack --help
for more information. - British English spelling of 'color' (colour) accepted as an alias for
π»--color
,--stack-colors
,stack ls stack-colors
at the command line and
π§ forcolor:
andstack-colors:
in yaml configuration files. - π New build option
--ddump-dir
. (See
#4225) - π Stack parses and respects the
preferred-versions
information from
π¦ Hackage for choosing latest version of a package in some cases,
π¦ e.g.stack unpack packagename
. - The components output in the
The main module to load is ambiguous
message
π¦ now include package names so they can be more easily copy-pasted. - π Git repos are shared across multiple projects. See
#3551 - 0οΈβ£ Use en_US.UTF-8 locale by default in pure Nix mode so programs won't
crash because of Unicode in their output
#4095 - β Add
--tree
tols dependencies
to list dependencies as tree.
#4101 - β Add
--pedantic
toghci
to run with-Wall
and-Werror
#4463 - β Add
--cabal-files
flag tostack ide targets
command. - β Add
--stdout
flag to allstack ide
subcommands. - π¦ Use batches when unregistering packages with
ghc-pkg
.
π (See #2662) - π
get-stack
script now works on Windows CI machines of Appveyor,
π Travis and Azure Pipelines. See
#4535/ - π Show snapshot being used when
stack ghci
is invoked outside of a project
π directory. See
#3651 - The script interpreter now accepts a
--extra-dep
flag for adding
π¦ packages not present in the snapshot. Currently, this only works
π¦ with packages from Hackage, not Git repos or archives. - β‘οΈ When using the script interpreter with
--optimize
or--compile
,
Stack will perform an optimization of checking whether a newer
executable exists, making reruns significantly faster. There's a
downside to this, however: if you have a multifile script, and
π change one of the dependency modules, Stack will not automatically
detect and recompile. stack clean
will delete the entire.stack-work/dist
directory,
π not just the relevant subdirectory for the current GHC version. See
#4480.- β Add
stack purge
as a shortcut forstack clean --full
. See
#3863. - Both
stack dot
andstack ls dependencies
accept a
π--global-hints
flag to bypass the need for an installed GHC. See
#4390. - β Add the
stack config env
command for getting shell script environment
π variables. See #620. - π Less verbose output from
stack setup
on Windows. See
#1212. - β Add an optional
ignore-expiry
flag to thehackage-security
section of the~/.stack/config.yaml
. It allows to disable timestamp
expiration verification just likecabal --ignore-expiry
does.
0οΈβ£ The flag is not enabled by default so that the default functionality
is not changed. - 0οΈβ£ Include default values for most command line flags in the
--help
π output. See
#893. - Set the
GHC_ENVIRONMENT
environment variable to specify dependency
π¦ packages explicitly when running test. This is done to prevent
β ambiguous module name errors indoctest
tests. - π
get-stack
script now works on Windows CI machines of Appveyor,
π Travis and Azure Pipelines. See
#4535 - π³ Warn when a Docker image does not include a
PATH
environment
π variable. See
#2472 - When using
system-ghc: true
, Stack will now find the appropriate GHC
installation based on the version suffix, allowing you to more easily switch
π between various system-installed GHCs. See
#2433. - π
stack init
will now support create astack.yaml
file without any local
π packages. See #2465 - Store caches in SQLite database instead of files.
- π³ No longer use "global" Docker image database (
docker.db
). - π User config files are respected for the script command. See
#3705,
#3887. - Set the
GHC_ENVIRONMENT
environment variable to-
to tell GHC to
ignore any such files when GHC is new enough (>= 8.4.4), otherwise
simply unset the variable. This allows Stack to have control of
π¦ package databases when running commands likestack exec ghci
, even
π in the presence of implicit environment files created bycabal new-build
. See
#4706. - π Use a database cache table to speed up discovery of installed GHCs
- π You can specify multiple
--test-arguments
options. See
#2226 - π Windows terminal width detection is now done. See
#3588 - π On Windows, informs users if the 'programs' path contains a space character
and further warns users if that path does not have an alternative short
π§ ('8 dot 3') name, referencing thelocal-programs-path
configuration option.
π See #4726 - β Add
--docker-mount-mode
option to set the Docker volume mount mode
π for performance tuning on macOS.
π Bug fixes:
- Ignore duplicate files for a single module when a Haskell module was
π generated from a preprocessor file. See
#4076. - Only track down components in current directory if there are no
hs-source-dirs found. This eliminates a number of false-positive
β warnings, similar to
#4076. - π Handle a change in GHC's hi-dump format around
addDependentFile
,
π which now includes a hash. See
yesodweb/yesod#1551 - π Fix
subdirs
for git repos inextra-deps
to match whole directory names.
π Also fixes forsubdirs: .
. See
#4292 - π Fix for git packages to update submodules to the correct state. See
#4314 - β Add
--cabal-files
flag tostack ide targets
command. - Don't download ghc when using
stack clean
. - π Support loading in GHCi definitions from symlinked C files. Without this
patch, Stack will try to find object files in the directory pointed to
by symlinks, while GCC will produce the object files in the original
π directory. See
#4402 - π Fix handling of GitHub and URL templates on Windows. See
commercialhaskell/stack#4394 - π Fix
--file-watch
not responding to file modifications when running
π inside docker on Mac. See
#4506 - Using
--ghc-options
withstack script --compile
now works. - β
Ensure the detailed-0.9 type tests work.
π See #4453. - π Extra include and lib dirs are now order-dependent. See
#4527. - π Apply GHC options when building a
Setup.hs
file. See
#4526. - Stack handles ABI changes in FreeBSD 12 by differentiating that version from
previous. - Help text for the
templates
subcommand now reflects behaviour in stack 1.9
β that it downloads and shows a help file, rather than listing available
templates. - π Fix detection of aarch64 platform (this broke when we upgraded to a newer
Cabal version). - π Docker: fix detecting and pulling missing images with
--docker-auto-pull
, see
#4598 - π Hackage credentials are not world-readable. See
#2159. - π Warnings are dumped from logs even when color is enabled. See
#2997 - π
stack init
will now work for cabal files with sublibraries. See
#4408 - π When the Cabal spec version is newer than the global Cabal version, build
π against the snapshot's Cabal library. See
#4488 - π³ Docker: fix detection of expected subprocess failures. This fixes
downloading a compatiblestack
executable when the hoststack
is not
π§ compatible with the Docker image (on Linux), and doesn't show an unnecessary
extra error when the in-container re-exec'edstack
exits with failure. - π The
stack ghci
command's--ghc-options
flag now parses multiple options.
π See #3315.
π Thanks to all our contributors for this release:
- Adam Bergmark
- Akshay Mankar
- Aleksey Kozin
- ALeX Kazik
- Alexey Kozin
- Alexey Kuleshevich
- Anders Kaseorg
- Anders Kiel Hovgaard
- Artyom Kazak
- Bastian Krol
- BjΓΆrn Gohla
- Brad Neimann
- Brandon Chinn
- Colin Woodbury
- Cthulhu.Den
- dadepo
- Daniel GrΓΆber
- David Baynard
- David Spies
- David Vollbracht
- dbaynard
- Emanuel Borsboom
- favonia
- flip111
- Florjan Bartol
- Gleb Popov
- Hussein Ait-Lahcen
- Isumi Feng
- Janfel
- Jurijs Oniscuks
- Kayla Ngan
- Kirill Zaborsky
- Magicloud
- Matt Audesse
- Mauricio Fierro
- Michael Sloan
- Michael Snoyman
- Mihai Maruseac
- Mike Pilgrem
- Neil Mitchell
- NeonGraal
- Niklas HambΓΌchen
- penteract
- Phil de Joux
- Raghu Kaippully
- Sibi
- Sibi Prabakaran
- Simon Hengel
- skapazzo
- Sylvain HENRY
- Sylvain Henry
- Taekyung
- Timothy Clem
- Tom Sydney Kerckhove
- Valery V. Vorotyntsev
- Vance Palacio
- waddlaw
- 欧ι³ζ³½
- π¦ Switch over to pantry for managing packages. This is a major change
-
v2.1.1.1 Changes
π Hackage-only release that removes
stack.yaml
from the sdist. This is because π¦stack.yaml
now defines a multi-package project, whereas Hackage works on the π basis on individual packages (see #4860)π If building a
stack
executable for distribution, please download the π source code from https://github.com/commercialhaskell/stack/releases/tag/v2.1.1 π and build it using Stack itself in order to ensure identical behaviour π¦ to official binaries. This package on Hackage is provided for convenience and bootstrapping purposes. -
v2.1.0.3 Changes
June 03, 2019π This is the second release candidate for v2.1
π Changes since v2.1.0.1 (first release candidate)
Other enhancements:
- β Add
--docker-mount-mode
option to set the Docker volume mount mode
π for performance tuning on macOS.
π Bug fixes:
- π Fix regression where
stack --docker
would quit after 20 seconds on
π macOS.
- β Add
-
v2.1.0.1 Changes
May 26, 2019π First release candidate for v2.1
π Changes since v1.9.3
Major changes:
π¦ Switch over to pantry for managing packages. This is a major change
to Stack's internals, and affects user-visible behavior in a few
places. Some highlights:- Drop support for multiple package indices and legacy
π00-index.tar
style indices. See
#4137. - Support for archives and repos in the
packages
section has
π been removed. Instead, you must useextra-deps
for such
π¦ dependencies.packages
now only supports local filepaths. - Add support for Git repositories containing (recursive) submodules.
- Addition of new configuration options for specifying a "pantry
π tree" key, which provides more reproducibility around builds,
π¦ and (in the future) will be used for more efficient package
π¦ content downloads. You can also specify package name and version
π for more efficient config parsing.
* NOTE The newstack freeze
command provides support
for automatically generating this additional
information. - Package contents and metadata are stored in an SQLite database
in place of files on the filesystem. Thepantry
library can be
π used for interacting with these contents. - Internally, Stack has changed many datatypes, including moving
to Cabal's definition of many data types. As a result of such
π changes, existing cache files will in general be invalidated,
resulting in Stack needing to rebuild many previously cached
π builds in the new version. Sorry :(. - A new command,
stack freeze
has been added which outputs
π project and snapshot definitions with dependencies pinned to
their exact versions. - The
ignore-revision-mismatch
setting is no longer needed, and
π has been removed. - Overriding GHC boot packages results in any other GHC boot
π¦ packages depending on it being no longer available as a dependency,
π such packages need to be added explicitly when needed. See
[#4510] (#4510). - Cabal solver integration was not updated to support newer
πcabal-install
versions sostack solver
command was removed as
well as a related option--solver
fromstack new
and
stack init
.
β¬οΈ 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,*.txt
will
matchfoo.txt
, but notfoo.2.txt
.
β Remove the
stack image
command. With the advent of Docker multistage
π builds, this functionality is no longer useful. For an example, please see
π Building Haskell Apps with
π Docker.π Support building GHC from source (experimental)
- Stack now supports building and installing GHC from source. The built GHC
is uniquely identified by a commit id and an Hadrian "flavour" (Hadrian is
π· the newer GHC build system), hencecompiler
can be set to use a GHC
built from source withghc-git-COMMIT-FLAVOUR
π§
stack.yaml
now supports aconfigure-options
, which are passed directly to
π theconfigure
step in the Cabal build process. See
#1438β Remove support for building GHCJS itself. Future releases of Stack
π may remove GHCJS support entirely.π Support for lock files for pinning exact project dependency versions
Behavior changes:
π
stack.yaml
now supportssnapshot
: a synonym forresolver
. See #4256stack script
now passes-i -idir
in to theghc
invocation. This makes it so that the script can import local
π modules, and fixes an issue where.hs
files in the current
π directory could affect interpretation of the script. See
#4538When using
stack script
, custom snapshot files will be resolved
relative to the directory containing the script.β Remove the deprecated
--upgrade-cabal
flag tostack setup
.π Support the
drop-packages
field instack.yaml
β Remove the GPG signing code during uploads. The GPG signatures have
never been used yet, and there are no plans to implement signature
verification.β Remove the
--plain
option for theexec
family of commandsπ§ Always use the
--exact-configuration
Cabal configuration option when
π building (should mostly be a non-user-visible enhancement).π No longer supports Cabal versions older than
1.19.2
. This means
projects using snapshots earlier thanlts-3.0
or
πnightly-2015-05-05
will no longer build.β Remove the
stack docker cleanup
command. Docker itself now has
π³docker image prune
and
π³docker container prune
,
which you can use instead.π Interleaved output is now turned on by default, see
#4702. In
β addition, thepackagename>
prefix is no longer included in
π interelaved mode when only building a single target.0οΈβ£ The
-fhide-source-paths
GHC option is now enabled by default and
π§ can be disabled via thehide-source-paths
configuration option in
πstack.yaml
. See #3784π¦ Stack will reconfigure a package if you modify your
PATH
environment
π variable. See
#3138.βͺ For GHC 8.4 and later, disable the "shadowed dependencies" workaround. This
π means that Stack will no longer have to force reconfigures as often. See
#3554.π When building a package, Stack takes a lock on the dist directory in
π use to avoid multiple runs of Stack from trampling each others'
π files. See
#2730.Stack will check occassionally if there is a new version available and prompt
β¬οΈ the user to upgrade. This will not incur any additional network traffic, as
β‘οΈ it will piggy-back on the existing Hackage index updates. You can set
β¬οΈrecommend-stack-upgrade: false
to bypass this. See
#1681.π
stack list-dependencies
has been removed in favour ofstack ls dependencies
.π The new default for
--docker-auto-pull
is enabled. See
#3332.Other enhancements:
- π Support MX Linux in get-stack.sh. Fixes
#4769. - π¦ Defer loading up of files for local packages. This allows us to get
plan construction errors much faster, and avoid some unnecessary
π work when only building a subset of packages. This is especially
π useful for the curator use case. - Existing global option
--color=WHEN
is now also available as a
π§ non-project-specific yaml configuration parametercolor:
. - Adopt the standard proposed at http://no-color.org/, that color should not be
β added by default if theNO_COLOR
environment variable is present. - π New command
stack ls stack-colors
lists the styles and the associated 'ANSI'
π control character sequences that stack uses to color some of its output. See
stack ls stack-colors --help
for more information. - π New global option
--stack-colors=STYLES
, also available as a
π§ non-project-specific yaml configuration parameter, allows a stack user to
π redefine the default styles that stack uses to color some of its output. See
stack --help
for more information. - British English spelling of 'color' (colour) accepted as an alias for
π»--color
,--stack-colors
,stack ls stack-colors
at the command line and
π§ forcolor:
andstack-colors:
in yaml configuration files. - π New build option
--ddump-dir
. (See #4225) - π Stack parses and respects the
preferred-versions
information from
π¦ Hackage for choosing latest version of a package in some cases,
π¦ e.g.stack unpack packagename
. - The components output in the
The main module to load is ambiguous
message
π¦ now include package names so they can be more easily copy-pasted. - π Git repos are shared across multiple projects. See
#3551 - 0οΈβ£ Use en_US.UTF-8 locale by default in pure Nix mode so programs won't
crash because of Unicode in their output
#4095 - β Add
--tree
tols dependencies
to list dependencies as tree.
#4101 - β Add
--pedantic
toghci
to run with-Wall
and-Werror
#4463 - β Add
--cabal-files
flag tostack ide targets
command. - β Add
--stdout
flag to allstack ide
subcommands. - π¦ Use batches when unregistering packages with
ghc-pkg
.
π (See #2662) - π
get-stack
script now works on Windows CI machines of Appveyor,
π Travis and Azure Pipelines. See
#4535/ - π Show snapshot being used when
stack ghci
is invoked outside of a project directory. See
#3651 - The script interpreter now accepts a
--extra-dep
flag for adding
π¦ packages not present in the snapshot. Currently, this only works
π¦ with packages from Hackage, not Git repos or archives. - β‘οΈ When using the script interpreter with
--optimize
or--compile
,
Stack will perform an optimization of checking whether a newer
executable exists, making reruns significantly faster. There's a
downside to this, however: if you have a multifile script, and
π change one of the dependency modules, Stack will not automatically
detect and recompile. stack clean
will delete the entire.stack-work/dist
directory,
π not just the relevant subdirectory for the current GHC version. See
#4480.- β Add
stack purge
as a shortcut forstack clean --full
. See
#3863. - Both
stack dot
andstack ls dependencies
accept a
π--global-hints
flag to bypass the need for an installed GHC. See
#4390. - β Add the
stack config env
command for getting shell script environment
π variables. See #620. - π Less verbose output from
stack setup
on Windows. See
#1212. - β Add an optional
ignore-expiry
flag to thehackage-security
section of the~/.stack/config.yaml
. It allows to disable timestamp
expiration verification just likecabal --ignore-expiry
does.
0οΈβ£ The flag is not enabled by default so that the default functionality
is not changed. - 0οΈβ£ Include default values for most command line flags in the
--help
π output. See
#893. - Set the
GHC_ENVIRONMENT
environment variable to specify dependency
π¦ packages explicitly when running test. This is done to prevent
β ambiguous module name errors indoctest
tests. - Document the way stack interacts with the Cabal library.
- π
get-stack
script now works on Windows CI machines of Appveyor,
π Travis and Azure Pipelines. See
#4535 - π³ Warn when a Docker image does not include a
PATH
environment
π variable. See
#2472 - When using
system-ghc: true
, Stack will now find the appropriate GHC
installation based on the version suffix, allowing you to more easily switch
π between various system-installed GHCs. See
#2433. - π
stack init
will now support create astack.yaml
file without any local
π packages. See #2465 - Store caches in SQLite database instead of files.
- π³ No longer use "global" Docker image database (
docker.db
). - π User config files are respected for the script command. See
#3705,
#3887. - Set the
GHC_ENVIRONMENT
environment variable to-
to tell GHC to
ignore any such files when GHC is new enough (>= 8.4.4), otherwise
simply unset the variable. This allows Stack to have control of
π¦ package databases when running commands likestack exec ghci
, even
π in the presence of implicit environment files created bycabal new-build
. See
#4706. - π Use a database cache table to speed up discovery of installed GHCs
- π You can specify multiple
--test-arguments
options. See
#2226 - π Windows terminal width detection is now done. See
#3588 - π On Windows, informs users if the 'programs' path contains a space character
and further warns users if that path does not have an alternative short
π§ ('8 dot 3') name, referencing thelocal-programs-path
configuration option.
π See #4726
π Bug fixes:
- Ignore duplicate files for a single module when a Haskell module was
π generated from a preprocessor file. See
#4076. - Only track down components in current directory if there are no
hs-source-dirs found. This eliminates a number of false-positive
β warnings, similar to
#4076. - π Handle a change in GHC's hi-dump format around
addDependentFile
,
π which now includes a hash. See
yesodweb/yesod#1551 - π Fix
subdirs
for git repos inextra-deps
to match whole directory names.
π Also fixes forsubdirs: .
. See
#4292 - π Fix for git packages to update submodules to the correct state. See
#4314 - β Add
--cabal-files
flag tostack ide targets
command. - Don't download ghc when using
stack clean
. - π Support loading in GHCi definitions from symlinked C files. Without this
patch, Stack will try to find object files in the directory pointed to
by symlinks, while GCC will produce the object files in the original
π directory. See
#4402 - π Fix handling of GitHub and URL templates on Windows. See
commercialhaskell/stack#4394 - π Fix
--file-watch
not responding to file modifications when running
π inside docker on Mac. See
#4506 - Using
--ghc-options
withstack script --compile
now works. - β
Ensure the detailed-0.9 type tests work.
π See #4453. - π Extra include and lib dirs are now order-dependent. See
#4527. - π Apply GHC options when building a
Setup.hs
file. See
#4526. - Stack handles ABI changes in FreeBSD 12 by differentiating that version from previous.
- Help text for the
templates
subcommand now reflects behaviour in stack 1.9 β that it
downloads and shows a help file, rather than listing available templates. - π Fix detection of aarch64 platform (this broke when we upgraded to a newer Cabal version).
- π Docker: fix detecting and pulling missing images with
--docker-auto-pull
, see
#4598 - π Hackage credentials are not world-readable. See
#2159. - π Warnings are dumped from logs even when color is enabled. See
#2997 - π
stack init
will now work for cabal files with sublibraries. See
#4408 - π When the Cabal spec version is newer than the global Cabal version, build
π against the snapshot's Cabal library. See
#4488 - π³ Docker: fix detection of expected subprocess failures. This fixes
π§ downloading a compatiblestack
executable when the hoststack
is not compatible with the Docker image (on Linux), and doesn't show an unnecessary
extra error when the in-container re-exec'edstack
exits with failure. - π The
stack ghci
command's--ghc-options
flag now parses multiple options.
π See #3315.
- Drop support for multiple package indices and legacy
-
v1.9.3 Changes
December 02, 2018β¬οΈ See https://haskellstack.org for installation and upgrade instructions.
π Changes since v1.9.1:
π Bug fixes:
- Stack can now be compiled again inside a directory that does not
π contain a.git
directory, see
#4364 - π Handle a change in GHC's hi-dump format around
addDependentFile
,
π which now includes a hash. See
yesodweb/yesod#1551 - π Allow variables to appear in template file names.
π Thanks to all our contributors for this release:
- Damian
- dbaynard
- Emanuel Borsboom
- Fangyi Zhou
- Flo Edelmann
- Matt Audesse
- Michael Snoyman
- Mihai Maruseac
- Phil de Joux
- Shinya Yamaguchi
- shiyuge
- 欧ι³ζ³½
- Stack can now be compiled again inside a directory that does not
-
v1.9.3.1 Changes
April 18, 2019π Hackage-only release with no user facing changes (added compatibility with
rio-0.1.9.2
). -
v1.9.1 Changes
October 17, 2018β¬οΈ 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.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:
- β¬οΈ 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,*.txt
will
matchfoo.txt
, but notfoo.2.txt
.
- Note that, in this process, the behavior of file globbing has
- β¬οΈ
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
π 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
- 欧ι³ζ³½
-
v1.9.1.1 Changes
November 14, 2018π Hackage-only release with no user facing changes.
- Stack can now be compiled again inside a directory that does not
contain a
.git
directory, see #4364
- Stack can now be compiled again inside a directory that does not
contain a