The Haskell Tool Stack
Release notes:
Changes since v2.15.5:
Major changes:
3.12.0.0
. Stack can now build with that Cabal version.Behaviour changes:
StackSetupShim
executable, when called with repl
and stack-initial-build-steps
, no longer uses Cabal's replHook
to apply initialBuildSteps
but takes a more direct approach.Bug fixes:
stack build
to be slower than previously.See https://haskellstack.org/ for installation and upgrade instructions.
Release notes:
Changes since v2.15.3:
Behaviour changes:
urls
key is
latest-snapshot: https://stackage-haddock.haskell.org/snapshots.json
.build-type: Configure
.Thanks to all our contributors for this release:
Release notes:
Changes since v2.15.3:
Behaviour changes:
urls
key is latest-snapshot: https://stackage-haddock.haskell.org/snapshots.json
.build-type: Configure
.See https://haskellstack.org/ for installation and upgrade instructions.
Release notes:
Changes since v2.15.1:
Behavior changes:
stack path --global-config
, --programs
, and --local-bin
no longer set up Stack's environment.Bug fixes:
--haddock-for-hackage
does not ignore --haddock-arguments
.ghc
, runghc
and runhaskell
commands accept --package
values that are a list of package names or package identifiers separated by spaces and, in the case of package identifiers, in the same way as if they were specified as targets to stack build
.Thanks to all our contributors for this release:
See https://haskellstack.org/ for installation and upgrade instructions.
Release notes:
1.24.0.0
.Changes since v2.13.1:
Behavior changes:
*.hi
or *.o
files in the setup-exe-src
directory of the Stack root, and deletes any corresponding to a setup-<hash>.hs
or setup-shim-<hash>.hs
file, to avoid GHC issue #21250.nix
executable is on the PATH. This usually indicates the Nix package manager is available. In YAML configuration files, the notify-if-nix-on-path
key is introduced, to allow the notification to be muted if unwanted.stack path --stack-root
no longer sets up Stack's environment and does not load Stack's configuration.--jobs
setting accordingly. See #84.2.2.0.0
is deprecated and may be removed in the next version of Stack. Removal would mean that projects using snapshots earlier than lts-12.0
or nightly-2018-03-18
(GHC 8.4.1) might no longer build. See #6377.--resolver
option is not specified, Stack's unpack
command with a package name will seek to update the package index before seeking to download the most recent version of the package in the index.Other enhancements:
--no-init
to Stack's new
command to skip the initialisation of the newly-created project for use with Stack.stack haddock
are printed on separate lines and without a trailing dot.--doctest-option=<argument>
to stack build
, where doctest
is a program recognised by versions of the Cabal library from 1.24.0.0
.--haddock-for-hackage
to Stack's build
command (including the haddock
synonym for build --haddock
) to enable building local packages with flags to generate Haddock documentation, and an archive file, suitable for upload to Hackage. The form of the Haddock documentation generated for other packages is unaffected.--documentation
(-d
for short) to Stack's upload
command to allow uploading of documentation for packages to Hackage.stack new
no longer rejects project templates that specify a package.yaml
in a subdirectory of the project directory.notify-if-ghc-untested
and notify-if-cabal-untested
keys are introduced, to allow the notification to be muted if unwanted.stack> build (lib + exe + test) with ghc-9.6.4
).--candidate
to Stack's unpack
command, to allow package candidates to be unpacked locally.notify-if-arch-unknown
key is introduced, to allow the notification to be muted if unwanted.--filter <item>
to Stack's ls dependencies text
command to filter out an item from the results, if present. The item can be $locals
for all local packages.--snapshot
as synonym for --resolver
.config set snapshot
command, corresponding to the config set resolver
command.Bug fixes:
Curator
instance of ToJSON
, as regards expect-haddock-failure
.resolver:
or snapshot:
value is, in error, a YAML number.sdist
command can check packages with names that include non-ASCII characters.Thanks to all our contributors for this release:
Release notes:
1.24.0.0
.Changes since v2.13.1:
Behavior changes:
*.hi
or *.o
files in the setup-exe-src
directory of the Stack root, and deletes any corresponding to a setup-<hash>.hs
or setup-shim-<hash>.hs
file, to avoid GHC issue #21250.nix
executable is on the PATH. This usually indicates the Nix package manager is available. In YAML configuration files, the notify-if-nix-on-path
key is introduced, to allow the notification to be muted if unwanted.stack path --stack-root
no longer sets up Stack's environment and does not load Stack's configuration.--jobs
setting accordingly. See #84.2.2.0.0
is deprecated and may be removed in the next version of Stack. Removal would mean that projects using snapshots earlier than lts-12.0
or nightly-2018-03-18
(GHC 8.4.1) might no longer build. See #6377.--resolver
option is not specified, Stack's unpack
command with a package name will seek to update the package index before seeking to download the most recent version of the package in the index.Other enhancements:
--no-init
to Stack's new
command to skip the initialisation of the newly-created project for use with Stack.stack haddock
are printed on separate lines and without a trailing dot.--doctest-option=<argument>
to stack build
, where doctest
is a program recognised by versions of the Cabal library from 1.24.0.0
.--haddock-for-hackage
to Stack's build
command (including the haddock
synonym for build --haddock
) to enable building with flags to generate Haddock documentation, and an archive file, suitable for upload to Hackage.--documentation
(-d
for short) to Stack's upload
command to allow uploading of documentation for packages to Hackage.stack new
no longer rejects project templates that specify a package.yaml
in a subdirectory of the project directory.notify-if-ghc-untested
and notify-if-cabal-untested
keys are introduced, to allow the notification to be muted if unwanted.stack> build (lib + exe + test) with ghc-9.6.4
).--candidate
to Stack's unpack
command, to allow package candidates to be unpacked locally.notify-if-arch-unknown
key is introduced, to allow the notification to be muted if unwanted.--filter <item>
to Stack's ls dependencies text
command to filter out an item from the results, if present. The item can be $locals
for all local packages.Bug fixes:
Curator
instance of ToJSON
, as regards expect-haddock-failure
.resolver:
or snapshot:
value is, in error, a YAML number.sdist
command can check packages with names that include non-ASCII characters.See https://haskellstack.org/ for installation and upgrade instructions.
Release notes:
-static
suffix has been removed from the statically linked Linux/x86_64 binaries.Changes since v2.11.1:
Behavior changes:
.stack-work/dist/<platform>/<GHC_version>
(hashed to a shorter path on Windows), rather than
.stack-work/dist/<platform>/<Cabal_version>
. This allows build artifacts to be distinguished by GHC version.stack build
progress bar is capped to a length equal to the terminal width.--configure
\-c
flag and, instead, seeks to run GHC's Python boot
and sh configure
scripts, and ensure that the happy
and alex
executables are on the PATH.--ghc-build
on Linux, the musl
GHC build only is considered a possible GHC build if libc.musl-x86_64.so.1
is found in \lib
or \lib64
.1.24.0.0
. This means projects using snapshots earlier than lts-7.0
or nightly-2016-05-26
will no longer build.ghc-pkg unregister
(which is, currently, slower).stack hpc report
, stack list
, stack templates
and stack uninstall
output their information to the standard output stream rather than to the standard error stream. Logging is still to the standard error stream.stack upgrade
no longer assumes that binary upgrade is not supported on a AArch64 machine architecture.Other enhancements:
pantry-0.9.2
, for support for long filenames and directory names in archives created by git archive
.*.hi
files into a set of modules and a collection of resolved usage files. See #6123.--exes
, --tests
and --benchmarks
to Stack's ide targets
command, to list only those components.stack --verbose
excludes lengthy information about build plan construction in the debug output by default. The new stack --[no-]plan-in-log
flag enables or disables the inclusion of the information in the debug output.casa
key is introduced, which takes precedence over the existing casa-repo-prefix
key. The latter is deprecated. The new key also allows Stack's use of a Casa (content-addressable storage archive) server to be disabled and the maximum number of keys per request to be configured. The defaults are unchanged.--progress-bar=<format>
to Stack's build
command to configure the format of the progress bar, where <format>
is one of none
, count-only
(only the package count), capped
(capped to a length equal to the terminal width) and full
(the previous format).Bug fixes:
stack sdist --pvp-bounds lower
(broken with Stack 2.9.1).disable-git-info
(broken with Stack 2.11.1).stack hoogle
, avoid the message Minimum version is hoogle-5.0. Found acceptable hoogle-<x.y.z> in your index, requiring its installation.
when a hoogle
executable has already been found on the PATH
.-hide-all-packages
, stopping GHC from looking for a package environment in default locations.due to warnings
with dump-logs: warning
(broken with Stack 2.11.1).local-programs-path
directory can now be on a different drive to the system temporary directory and MSYS2 will still be installed.Thanks to all our contributors for this release:
Release notes:
-static
suffix has been removed from the statically linked Linux/x86_64 binaries.Changes since v2.11.1:
Behavior changes:
.stack-work/dist/<platform>/<GHC_version>
(hashed to a shorter path on Windows), rather than .stack-work/dist/<platform>/<Cabal_version>
. This allows build artifacts to be distinguished by GHC version.stack build
progress bar is capped to a length equal to the terminal width.--configure
\-c
flag and, instead, seeks to run GHC's Python boot
and sh configure
scripts, and ensure that the happy
and alex
executables are on the PATH.--ghc-build
on Linux, the musl
GHC build only is considered a possible GHC build if libc.musl-x86_64.so.1
is found in \lib
or \lib64
.1.24.0.0
. This means projects using snapshots earlier than lts-7.0
or nightly-2016-05-26
will no longer build.ghc-pkg unregister
(which is, currently, slower).Other enhancements:
pantry-0.9.2
, for support for long filenames and directory names in archives created by git archive
.*.hi
files into a set of modules and a collection of resolved usage files. See #6123.--exes
, --tests
and --benchmarks
to Stack's ide targets
command, to list only those components.stack --verbose
excludes lengthy information about build plan construction in the debug output by default. The new stack --[no-]plan-in-log
flag enables or disables the inclusion of the information in the debug output.casa
key is introduced, which takes precedence over the existing casa-repo-prefix
key. The latter is deprecated. The new key also allows Stack's use of a Casa (content-addressable storage archive) server to be disabled and the maximum number of keys per request to be configured. The defaults are unchanged.--progress-bar=<format>
to Stack's build
command to configure the format of the progress bar, where <format>
is one of none
, count-only
(only the package count), capped
(capped to a length equal to the terminal width) and full
(the previous format).Bug fixes:
stack sdist --pvp-bounds lower
(broken with Stack 2.9.1).disable-git-info
(broken with Stack 2.11.1).stack hoogle
, avoid the message Minimum version is hoogle-5.0. Found acceptable hoogle-<x.y.z> in your index, requiring its installation.
when a hoogle
executable has already been found on the PATH
.-hide-all-packages
, stopping GHC from looking for a package environment in default locations.See https://haskellstack.org/ for installation and upgrade instructions.
Changes since v2.9.3:
Behavior changes:
--[no-]-only-local-bin
to Stack's upgrade
command for a binary upgrade. If the Stack executable is my-stack
, the default is my-stack upgrade --only-local-bin
where previously it was, effectively, my-stack upgrade --no-only-local-bin
. If the Stack executable is stack
, the default is stack upgrade --no-only-local-bin
, the same behaviour as previously.$XDG_CACHE_HOME/stack/ghci-script
, rather than <temp>/haskell-stack-ghci
(where <temp>
is the directory yielded by the temporary
package's System.IO.Temp.getCanonicalTemporaryDirectory
), as the base location for GHCi script files generated by stack ghci
or stack repl
. See #5203
Cabal
versions before 1.22 and, consequently, GHC versions before 7.10.stack ghci
and stack repl
now take into account the values of default-language
keys in Cabal files, like they take into account the values of default-extensions
keys.--ghc-paths
, --global-stack-root
and --local-bin-path
flags for stack path
, deprecated in Stack 1.1.0 in favour of --programs
, --stack-root
and local-bin
respectively.stack upgrade
always renames the file of the running Stack executable (adding extension .old
) before attempting to write to the original file name.stack upgrade
does not offer sudo
command alternatives if attempting to write to the original file name of the running Stack exectuable results in a 'Permission' error.Other enhancements:
--PROG-option=<argument>
to stack build
, where PROG
is a program recognised by the Cabal library and one of alex
, ar
, c2hs
, cpphs
, gcc
, greencard
, happy
, hsc2hs
, hscolour
, ld
, pkg-config
, strip
and tar
. If Cabal uses the program during the configuration step, the argument is passed to it.--PROG-option
options are applied to all local packages. This behaviour can be changed with new configuration option apply-prog-options
.--[no-]use-root
to stack script
(default disabled). Used with --compile
or --optimize
, when enabled all compilation outputs (including the executable) are written to a script-specific location in the scripts
directory of the Stack root rather than the script's directory, avoiding clutter of the latter directory.STACK_WORK
environment variable or --work-dir
option is not a valid relative path.GH_TOKEN
, or GITHUB_TOKEN
, environment variable as credentials to authenticate its GitHub REST API requests.stack uninstall
also shows how to uninstall Stack-supplied tools.Bug fixes:
allow-newer-deps
are specified but allow-newer
is false
. See #6068.stack build
with --file-watch
or --file-watch-poll
outputs 'pretty' error messages, as intended. See #5978.stack build
unregisters any local packages for the sub libraries of a local package that is to be unregistered. See #6046.Thanks to all our contributors for this release:
Changes since v2.9.3:
Behavior changes:
Cabal
versions before 1.22 and, consequently, GHC versions before 7.10.stack ghci
and stack repl
now take into account the values of default-language
keys in Cabal files, like they take into account the values of default-extensions
keys.--ghc-paths
, --global-stack-root
and --local-bin-path
flags for stack path
, deprecated in Stack 1.1.0 in favour of --programs
, --stack-root
and local-bin
respectively.stack upgrade
always renames the file of the running Stack executable (adding extension .old
) before attempting to write to the original file name.stack upgrade
does not offer sudo
command alternatives if attempting to write to the original file name of the running Stack exectuable results in a 'Permission' error.Other enhancements:
--PROG-option=<argument>
to stack build
, where PROG
is a program recognised by the Cabal library and one of alex
, ar
, c2hs
, cpphs
, gcc
, greencard
, happy
, hsc2hs
, hscolour
, ld
, pkg-config
, strip
and tar
. If Cabal uses the program during the configuration step, the argument is passed to it.--PROG-option
options are applied to all local packages. This behaviour can be changed with new configuration option apply-prog-options
.--[no-]use-root
to stack script
(default disabled). Used with --compile
or --optimize
, when enabled all compilation outputs (including the executable) are written to a script-specific location in the scripts
directory of the Stack root rather than the script's directory, avoiding clutter of the latter directory.STACK_WORK
environment variable or --work-dir
option is not a valid relative path.GH_TOKEN
, or GITHUB_TOKEN
, environment variable as credentials to authenticate its GitHub REST API requests.stack uninstall
also shows how to uninstall Stack-supplied tools.Bug fixes:
allow-newer-deps
are specified but allow-newer
is false
. See #6068.stack build
with --file-watch
or --file-watch-poll
outputs 'pretty' error messages, as intended. See #5978.stack build
unregisters any local packages for the sub libraries of a local package that is to be unregistered. See #6046.