See https://haskellstack.org/ for installation and upgrade instructions.
Changes since v2.9.1:
Behavior changes:
- In YAML configuration files, the
package-index
key is introduced which takes precedence over the existingpackage-indices
key. The latter is deprecated. - In YAML configuration files, the
hackage-security
key of thepackage-index
key or thepackage-indices
item can be omitted, and the Hackage Security configuration for the item will default to that for the official Hackage server. See #5870. - Add the
stack config set package-index download-prefix
command to set the location of Stack’s package index in YAML configuration files. -
stack setup
with the--no-install-ghc
flag warns that the flag and the command are inconsistent and now takes no action. Previously the flag was silently ignored. - To support the Haskell Foundation’s Haskell Error Index initiative, all Stack error messages generated by Stack itself begin with an unique code in the form
[S-nnnn]
, wherennnn
is a four-digit number. - Test suite executables that seek input on the standard input channel (
stdin
) will not throw an exception. Previously, they would thow an exception, consistent with Cabal’s ‘exitcode-stdio-1.0’ test suite interface specification. Pass the flag--no-tests-allow-stdin
tostack build
to enforce Cabal’s specification. See #5897
Other enhancements:
- Help documentation for
stack upgrade
warns that if GHCup is used to install Stack, only GHCup should be used to upgrade Stack. That is because GHCup uses an executable namedstack
to manage versions of Stack, that Stack will likely overwrite on upgrade. - Add
stack ls dependencies cabal
command, which lists dependencies in the format of exact Cabal constraints. - Add
STACK_XDG
environment variable to use the XDG Base Directory Specification for the Stack root and Stack’s global YAML configuration file, if the Stack root location is not set on the command line or by using theSTACK_ROOT
environment variable. - Add
stack path --global-config
, to yield the full path of Stack’s user-specific global YAML configuration file (config.yaml
). - Add an experimental option,
allow-newer-deps
, which allows users to specify a subset of dependencies for which version bounds should be ignored (allow-newer-deps: ['foo', 'bar']
). This field has no effect unlessallow-newer
is enabled.
Bug fixes:
- Fix ambiguous module name
Distribution.PackageDescription
, if compilingStackSetupShim
withCabal-syntax-3.8.1.0
in package database. See #5886. - In YAML configuration files, if the
package-indices
key (or thehackage-security
key of its item) is omitted, the expiration of timestamps
is now ignored, as intended. See Pantry #63
Thanks to all our contributors for this release:
- drlkf
- Felix Paulusma
- Fraser Murray
- Mike Pilgrem
- Phil de Joux
- theophilebatoz