| CARVIEW |
Navigation Menu
-
Notifications
You must be signed in to change notification settings - Fork 848
Releases: commercialhaskell/stack
rc/v3.9.0.1 (release candidate)
fdb047cChanges since v3.7.1:
Behavior changes:
- Where applicable and Stack supports the GHC version, only the wired-in packages of the actual version of GHC used are treated as wired-in packages.
- Stack now recognises
ghc-internalas a GHC wired-in package. - The configuration option
package-indexhas a new default value: thekeyidskey lists the keys of the Hackage root key holders applicable from 2025-07-24. - Stack's
dotcommand now treats--depththe same way as thels dependenciescommand, so that the nodes ofstack dot --external --depth 0are the same as the packages listed bystack ls dependencies --depth 0. - When building GHC from source, on Windows, the default Hadrian build target is
reloc-binary-distand the default path to the GHC built by Hadrian is_build/reloc-bindist. - Stack's
haddockcommand no longer requires a package to have a main library that exposes modules.
Other enhancements:
- Bump to Hpack 0.38.2.
- Consider GHC 9.14 to be a tested compiler and remove warnings.
- Consider Cabal 3.16 to be a tested library and remove warnings.
- From GHC 9.12.1,
baseis not a GHC wired-in package. In configuration files, thenotify-if-base-not-bootkey is introduced, to allow the exisitng notification to be muted if unwanted when using such GHC versions. - Add flag
--[no-]omit-this(default: disabled) to Stack'scleancommand to omit directories currently in use from cleaning (when--fullis not specified). - Add option
-was synonym for--stack-yaml. stack newnow allowscodeberg:as a service for template downloads.- In YAML configuration files, the
compiler-targetandcompiler-bindist-pathkeys are introduced to allow, when building GHC from source, the Hadrian build target and Hadrian path to the built GHC to be specified.
Bug fixes:
--PROG-option=<argument>passes--PROG-option=<argument>(and not--PROG-option="<argument>") to Cabal (the library).- The message S-7151 now presents as an error, with advice, and not as a bug.
- Stack's
dotcommand now uses a box to identify all GHC wired-in packages, not just those with no dependencies (being onlyrts). - Stack's
dotcommand now gives all nodes with no dependencies in the graph the maximum rank, not just those nodes with no relevant dependencies at all (being onlyrts, when--externalis specified). - Improved error messages for S-4634 and S-8215.
- Improved in-app help for the
--hpack-forceflag.
Assets 38
v3.7.1
cfae313See https://haskellstack.org/ for installation and upgrade instructions.
Changes since v3.5.1:
Other enhancements:
- Bump to Hpack 0.38.1.
- The
--extra-depoption of Stack'sscriptcommand now accepts a YAML value specifying any immutable extra-dep. Previously only an extra-dep in the package index that could be specified by a YAML string (for example,acme-missiles-0.3@rev:0) was accepted.
Bug fixes:
stack script --package <pkg-name>now uses GHC's-package-idoption to expose the installed package, rather than GHC's-packageoption. For packages with public sub-libraries,-package <pkg>can expose an installed package other than one listed byghc-pkg list <pkg>.- Work around
ghc-pkgbug where, on Windows only, it cannot register a package into a package database that is also listed in theGHC_PACKAGE_PATHenvironment variable. In previous versions of Stack, this affectedstack scriptwhen copying a pre-compiled package from another package database. - On Windows, when decompressing, and extracting, tools from archive files, Stack uses the system temporary directory, rather than the root of the destination drive, if the former is on the destination drive.
Thanks to all our contributors for this release:
- Max Ulidtko
- Mike Pilgrem
- Olivier Benz
- Simon Hengel
Assets 38
- sha256:14e7040353c7ae3471d6420cfc0005e1cd83973c25f4edab42b029c93ae4fdb396.3 MB
2025-06-28T18:09:01Z - sha256:90926291007053123c17576b088d0c56f9839cbe3014fba508c259ed1b6de64e488 Bytes
2025-06-28T18:09:04Z - sha256:c86f197bc529119193a292212258814706122921b6c4a8274d32d6ce743edc2096 Bytes
2025-06-28T18:09:04Z - sha256:752321c6af6bc88960a086ebd9ede72937a567f312842a29deb2ddc9ab316a2023.7 MB
2025-06-28T18:09:05Z - sha256:f9a8eb9ad2a60002126d50de5123d2f7bf1eaae4fb328d97ee136a5fade50e07488 Bytes
2025-06-28T18:09:06Z - sha256:b822513606989c1fe8c07884ba7966f7647b547ea580aedcfa281c6849c2b2d999 Bytes
2025-06-28T18:09:06Z - sha256:c9ba670e7efd3f3807528e60ad09667dd37eba3d941c7edf6ab09d938abc70a889 MB
2025-06-28T18:09:06Z - sha256:336ed7556e15027559e9e533fe9a07529f425bf859f033edac40da12b326862a488 Bytes
2025-06-28T18:09:09Z - sha256:6acece99926f9a18b05eec36238650871953293cbb5b0dbdf0cbf4eb0b13b85895 Bytes
2025-06-28T18:09:09Z - sha256:b6df9168d471d917d955ee80553562ca2b0b3b1aa61cd1256199406c2d8c4eb421.8 MB
2025-06-28T18:09:10Z -
2025-06-28T17:28:03Z -
2025-06-28T17:28:03Z - Loading
rc/v3.7.0.1 (release candidate)
274ab3cChanges since v3.5.1:
Other enhancements:
- Bump to Hpack 0.38.1.
- The
--extra-depoption of Stack'sscriptcommand now accepts a YAML value specifying any immutable extra-dep. Previously only an extra-dep in the package index that could be specified by a YAML string (for example,acme-missiles-0.3@rev:0) was accepted.
Bug fixes:
stack script --package <pkg-name>now uses GHC's-package-idoption to expose the installed package, rather than GHC's-packageoption. For packages with public sub-libraries,-package <pkg>can expose an installed package other than one listed byghc-pkg list <pkg>.- Work around
ghc-pkgbug where, on Windows only, it cannot register a package into a package database that is also listed in theGHC_PACKAGE_PATHenvironment variable. In previous versions of Stack, this affectedstack scriptwhen copying a pre-compiled package from another package database. - On Windows, when decompressing, and extracting tools, from archive files, Stack uses the system temporary directory, rather than the root of the destination drive, if the former is on the destination drive.
Assets 38
v3.5.1
5c774d7See https://haskellstack.org/ for installation and upgrade instructions.
Changes since v3.3.1:
Behavior changes:
- Stack will also warn (message S-8432) if there is any non-ISO/IEC 8859-1 (Latin-1) character in Stack's 'programs' path, as
hsc2hsdoes not work if there is such a character in the path to its default templatetemplate-hsc.h. - Stack customizes setup using
Cabal, so if asetup-dependsfield does not mention it as a dependency, Stack warns and adds the GHC boot package as a dependency. Previously, Stack would not do so but only warn that build errors were likely.
Other enhancements:
- Bump to Hpack 0.38.0.
- In YAML configuration files, the
install-msyskey is introduced, to enable or disable the download and installation of Stack-supplied MSYS2 when necessary (subject toskip-msys: false). The default is the same as theinstall-ghcsetting (including if that is set at the command line). Consequently, the default behaviour of Stack is unaffected. - Add the
stack config set install-msyscommand to configure theinstall-msysoption in YAML configuration files. - Option
allow-newer-depsis no longer classified as experimental in documentation. stack sdistandstack uploadreport the version of Cabal (the library) being used to check packages.- Add the
stack config build-filescommand to generate (when applicable) a Cabal file from a package description in the Hpack format and/or a lock file for Stack's project-level configuration, without taking any other build steps.
Thanks to all our contributors for this release:
- Mike Pilgrem
- Olivier Benz
Assets 38
rc/v3.5.0.1 (release candidate)
f55658aChanges since v3.3.1:
Behavior changes:
- Stack will also warn (message S-8432) if there is any non-ISO/IEC 8859-1 (Latin-1) character in Stack's 'programs' path, as
hsc2hsdoes not work if there is such a character in the path to its default templatetemplate-hsc.h. - Stack customizes setup using
Cabal, so if asetup-dependsfield does not mention it as a dependency, Stack warns and adds the GHC boot package as a dependency. Previously, Stack would not do so but only warn that build errors were likely.
Other enhancements:
- Bump to Hpack 0.38.0.
- In YAML configuration files, the
install-msyskey is introduced, to enable or disable the download and installation of Stack-supplied MSYS2 when necessary (subject toskip-msys: false). The default is the same as theinstall-ghcsetting (including if that is set at the command line). Consequently, the default behaviour of Stack is unaffected. - Add the
stack config set install-msyscommand to configure theinstall-msysoption in YAML configuration files. - Option
allow-newer-depsis no longer classified as experimental in documentation. stack sdistandstack uploadreport the version of Cabal (the library) being used to check packages.
Assets 38
v3.3.1
7540878See https://haskellstack.org/ for installation and upgrade instructions.
Changes since v3.1.1:
Behavior changes:
- Stack interprets consecutive line ends in the value of the
user-messageproject-specific configuration option as a single blank line. Previously all line ends were interpreted as white space. - Stack no longer supports Docker versions before Docker 1.9.1 and, consequently, if a Docker container is not being run 'detached', its standard input channel will always be kept open. (Before Docker 1.9.1 the use of an interactive container could hang in certain circumstances.)
- On Windows, Stack will always warn (message S-8432) if there is a space character in Stack's 'programs' path, as GHC 9.4.1 and later do not work if there is a space in the path to the
ghcexecutable. S-8432 now presents as a warning and not an error. - Stack respects the
--no-run-testsand--no-run-benchmarksflags when determining build actions. Previously Stack respected the flags when executing the run test suites or run benchmarks actions for each targeted project package.
Other enhancements:
- Consider GHC 9.10 to be a tested compiler and remove warnings.
- Consider Cabal 3.12 to be a tested library and remove warnings.
- Add flags
--run-testsand--run-benchmarks(the existing defaults) to Stack'sbuildcommand, which take precedence over the existingno-run-testsandno-run-benchmarksconfiguration options, respectively. - In configuration files, the
notify-if-no-run-testsandnotify-if-no-run-benchmarkskeys are introduced, to allow the exisitng notification to be muted if unwanted.
Bug fixes:
- Stack's in-app messages refer to https://haskellstack.org as currently structured. (Most URLs in older Stack versions are redirected.)
- Stack's
upgradecommand only treats the current running Stack executable as 'stack' if the executable file is namedstackor, on Windows,stack.exe. Previously only how it was invoked was considered. stack test --no-run-tests --dry-runno longer reports that Stack would test project packages with test suites andstack bench --no-run-benchmarks --dry-runno longer reports that Stack would benchmark project packages with benchmarks.StackSetupShimcompiles withCabal >= 3.14.0.0.
Thanks to all our contributors for this release:
- Andrew Nguyen
- Luka Leer
- Mike Pilgrem
- Olivier Benz
Assets 38
rc/v3.3.0.1 (release candidate)
de2899fChanges since v3.1.1:
Behavior changes:
- Stack interprets consecutive line ends in the value of the
user-messageproject-specific configuration option as a single blank line. Previously all line ends were interpreted as white space. - Stack no longer supports Docker versions before Docker 1.9.1 and, consequently, if a Docker container is not being run 'detached', its standard input channel will always be kept open. (Before Docker 1.9.1 the use of an interactive container could hang in certain circumstances.)
- On Windows, Stack will always warn (message S-8432) if there is a space character in Stack's 'programs' path, as GHC 9.4.1 and later do not work if there is a space in the path to the
ghcexecutable. S-8432 now presents as a warning and not an error. - Stack respects the
--no-run-testsand--no-run-benchmarksflags when determining build actions. Previously Stack respected the flags when executing the run test suites or run benchmarks actions for each targeted project package.
Other enhancements:
- Consider GHC 9.10 to be a tested compiler and remove warnings.
- Consider Cabal 3.12 to be a tested library and remove warnings.
- Add flags
--run-testsand--run-benchmarks(the existing defaults) to Stack'sbuildcommand, which take precedence over the existingno-run-testsandno-run-benchmarksconfiguration options, respectively. - In configuration files, the
notify-if-no-run-testsandnotify-if-no-run-benchmarkskeys are introduced, to allow the exisitng notification to be muted if unwanted.
Bug fixes:
- Stack's in-app messages refer to https://haskellstack.org as currently structured. (Most URLs in older Stack versions are redirected.)
- Stack's
upgradecommand only treats the current running Stack executable as 'stack' if the executable file is namedstackor, on Windows,stack.exe. Previously only how it was invoked was considered. stack test --no-run-tests --dry-runno longer reports that Stack would test project packages with test suites andstack bench --no-run-benchmarks --dry-runno longer reports that Stack would benchmark project packages with benchmarks.StackSetupShimcompiles withCabal >= 3.14.0.0.
Assets 38
v3.1.1
See https://haskellstack.org/ for installation and upgrade instructions.
Release notes:
- The change in major version from 2.x to 3.1 marks the dropping of support for versions of GHC before 8.4, deprecated in Stack 2.15.1.
Changes since v2.15.7:
Behavior changes:
- Stack uses the version of the Cabal package that comes with the specified version of GHC. Stack no longer supports such Cabal versions before 2.2, which came with versions of GHC before 8.4. Consequently, the
initcommand will not try LTS Haskell before 12.0. - The
initcommand initialisesstack.yamlwith asnapshotkey rather than aresolverkey. - After installing GHC or another tool, Stack deletes the archive file which provided the tool.
- Remove hidden flag
--skip-intermediate-deps, effectively deprecated since Stack 1.3.0, fromghciandreplcommands. - The
haddock --haddock-for-hackagecommand only seeks to create an archive of the<package_version>-docsdirectory for build targets and if flags excluding the building of project packages are not set. - The predecessor of configuration option
package-index,package-indices(deprecated in Stack 2.9.3) has been removed as an alternative option. - If a build target is a package identifier, and the package version is not in the snapshot or the package index, Stack will report an error when the target is parsed. Previously, if another version of the package was in the snapshot, Stack would construct the build plan with that other version or, if it was not, Stack would defer an error to the construction of the build plan.
- The
listcommand, with a specified snapshot and package, also reports the version of the package included indirectly in the snapshot (as a boot package of the compiler specified by the snapshot). stack build --flag *:[-]<flag_name>now only applies the flag setting to packages for which the Cabal flag is defined, as opposed to all packages.- On Unix-like operating systems, drop support for
/etc/stack/config, deprecated in Stack 0.1.6.0. - Drop support for, in the Stack root, directory
globaland filestack.yaml, both deprecated in Stack 0.1.6.0.
Other enhancements:
- Bump to Hpack 0.37.0.
- In YAML configuration files, the
msys-environmentkey is introduced to allow, on Windows, the MSYS2 environment to be specified. The default environment is stillMINGW64on 64-bit Windows andMINGW32on 32-bit Windows. - In YAML configuration files, the
default-init-snapshotkey is introduced to allow a default snapshot to be specified for use with thestack initcommand, as if it had been specified at the command line. - Add flags
--haddock-executables,--haddock-testsand--haddock-benchmarksto Stack'sbuildcommand (including thehaddocksynonym forbuild --haddock) to enable also building Haddock documentation for executables, test suites and benchmarks. Due to a bug in Cabal (the library), Stack will ignore the flags with a warning for GHC versions before 9.4. - Add flag
--[no-]save-hackage-credsto Stack'suploadcommand, which takes precedence over the existingsave-hackage-credsconfiguration option. - In YAML configuration files, the
global-hints-locationkey is introduced to allow the location of the global hints YAML specification file to be specified. - By default, Hpack 0.20.0 or later will decline to overwrite a Cabal file that was modified manually. In YAML configuration files, the
hpack-forcekey is introduced to allow Hpack to overwrite such a Cabal file. The corresponding--hpack-forceflag is also added. - Add the
stack config set recommend-stack-upgradecommand to configure whether or not Stack should notify the user if it identifes a new version of Stack is available in YAML configuration files. - Add the
ls globalscommand to list all global packages for the version of GHC specified by the snapshot. - Add
stack -h(equivalent tostack --help). - In YAML configuration files, the
file-watch-hookkey is introduced to allow--file-watchpost-processing to be customised with a executable orshshell script. - Add flag
--[no-]allow-newerto Stack'sbuildcommand, which takes precedence over the existingallow-newerconfiguration option.
Bug fixes:
- The
config set snapshotandconfig set resolvercommands now respect the presence of a synoymous key. - The
config setcommands support existing keys only in the formkey: valueon a single line. The commands now recognise that a linekey:does not have that form. - On Unix-like operating systems, the
test --coveragecommand now finds package keys even for very long package names. - The Error S-6362 message now acknowledges when the wanted compiler has been specified at the command line.
- Fix a regression, introduced in Stack 2.11.1, that caused the
scriptcommand to parse an (otherwise ignored) project-level configuration file. - Stack no longer makes recommendations about a project-level configuration file when only a global configuration file is in use.
- Fix a regression, introduced in Stack 2.15.7, that caused GHC 8.10.7 or earlier to fail to build a package with a
Custombuild type, if GHC option-haddockwas specified.
Thanks to all our contributors for this release:
- Michael Pilosov
- Mike Pilgrem
- Olivier Benz
- Phil de Joux
- theophilebatoz
Assets 38
rc/v3.1.0.1 (release candidate)
Release notes:
- The change in major version from 2.x to 3.1 marks the dropping of support for versions of GHC before 8.4, deprecated in Stack 2.15.1.
Changes since v2.15.7:
Behavior changes:
- Stack uses the version of the Cabal package that comes with the specified version of GHC. Stack no longer supports such Cabal versions before 2.2, which came with versions of GHC before 8.4. Consequently, the
initcommand will not try LTS Haskell before 12.0. - The
initcommand initialisesstack.yamlwith asnapshotkey rather than aresolverkey. - After installing GHC or another tool, Stack deletes the archive file which provided the tool.
- Remove hidden flag
--skip-intermediate-deps, effectively deprecated since Stack 1.3.0, fromghciandreplcommands. - The
haddock --haddock-for-hackagecommand only seeks to create an archive of the<package_version>-docsdirectory for build targets and if flags excluding the building of project packages are not set. - The predecessor of configuration option
package-index,package-indices(deprecated in Stack 2.9.3) has been removed as an alternative option. - If a build target is a package identifier, and the package version is not in the snapshot or the package index, Stack will report an error when the target is parsed. Previously, if another version of the package was in the snapshot, Stack would construct the build plan with that other version or, if it was not, Stack would defer an error to the construction of the build plan.
- The
listcommand, with a specified snapshot and package, also reports the version of the package included indirectly in the snapshot (as a boot package of the compiler specified by the snapshot). stack build --flag *:[-]<flag_name>now only applies the flag setting to packages for which the Cabal flag is defined, as opposed to all packages.- On Unix-like operating systems, drop support for
/etc/stack/config, deprecated in Stack 0.1.6.0. - Drop support for, in the Stack root, directory
globaland filestack.yaml, both deprecated in Stack 0.1.6.0.
Other enhancements:
- Bump to Hpack 0.37.0.
- In YAML configuration files, the
msys-environmentkey is introduced to allow, on Windows, the MSYS2 environment to be specified. The default environment is stillMINGW64on 64-bit Windows andMINGW32on 32-bit Windows. - In YAML configuration files, the
default-init-snapshotkey is introduced to allow a default snapshot to be specified for use with thestack initcommand, as if it had been specified at the command line. - Add flags
--haddock-executables,--haddock-testsand--haddock-benchmarksto Stack'sbuildcommand (including thehaddocksynonym forbuild --haddock) to enable also building Haddock documentation for executables, test suites and benchmarks. Due to a bug in Cabal (the library), Stack will ignore the flags with a warning for GHC versions before 9.4. - Add flag
--[no-]save-hackage-credsto Stack'suploadcommand, which takes precedence over the existingsave-hackage-credsconfiguration option. - In YAML configuration files, the
global-hints-locationkey is introduced to allow the location of the global hints YAML specification file to be specified. - By default, Hpack 0.20.0 or later will decline to overwrite a Cabal file that was modified manually. In YAML configuration files, the
hpack-forcekey is introduced to allow Hpack to overwrite such a Cabal file. The corresponding--hpack-forceflag is also added. - Add the
stack config set recommend-stack-upgradecommand to configure whether or not Stack should notify the user if it identifes a new version of Stack is available in YAML configuration files. - Add the
ls globalscommand to list all global packages for the version of GHC specified by the snapshot. - Add
stack -h(equivalent tostack --help). - In YAML configuration files, the
file-watch-hookkey is introduced to allow--file-watchpost-processing to be customised with a executable orshshell script.
Bug fixes:
- The
config set snapshotandconfig set resolvercommands now respect the presence of a synoymous key. - The
config setcommands support existing keys only in the formkey: valueon a single line. The commands now recognise that a linekey:does not have that form. - On Unix-like operating systems, the
test --coveragecommand now finds package keys even for very long package names. - The Error S-6362 message now acknowledges when the wanted compiler has been specified at the command line.
- Fix a regression, introduced in Stack 2.11.1, that caused the
scriptcommand to parse an (otherwise ignored) project-level configuration file. - Stack no longer makes recommendations about a project-level configuration file when only a global configuration file is in use.
Assets 38
v2.15.7
See https://haskellstack.org/ for installation and upgrade instructions.
Release notes:
- This release fixes potential bugs.
- The hash that Stack uses to distinguish one build plan from another has changed for plans that set (as opposed to unset) manually Cabal flags for immutable dependencies. This will cause Stack to rebuild dependencies for such plans.
Changes since v2.15.5:
Major changes:
- Stack 2.15.5 and earlier cannot build with Cabal (the library) version
3.12.0.0. Stack can now build with that Cabal version.
Behavior changes:
- Stack's
StackSetupShimexecutable, when called withreplandstack-initial-build-steps, no longer uses Cabal'sreplHookto applyinitialBuildStepsbut takes a more direct approach.
Bug fixes:
- Fix a regression introduced in Stack 2.15.1 that caused a 'no operation'
stack buildto be slower than previously. - The hashes that Stack uses to distinguish one build plan from another now include the Cabal flags for immutable dependencies set manually. Previously, in error, only such flags that were unset manually were included.
Thanks to all our contributors for this release:
- Jรถrg Thalheim
- Mike Pilgrem