[ANN] First release candidate for stack-2.11.1

You can download binaries for this pre-release from: Release rc/v2.11.0.1 (release candidate) · commercialhaskell/stack · GitHub .

Please test it and let us know at the Stack repository if you run into any trouble. If all goes well, we hope to release the final version in a couple of weeks.

Changes since v2.9.3:

Behavior changes:

  • Drop support for 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.
  • Removed --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.
  • On Windows, stack upgrade always renames the file of the running Stack executable (adding extension .old) before attempting to write to the original file name.
  • On Windows, 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:

  • Add options of the form --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.
  • By default all --PROG-option options are applied to all local packages. This behaviour can be changed with new configuration option apply-prog-options.
  • Add flag --[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.
  • Better error message if the value of the STACK_WORK environment variable or --work-dir option is not a valid relative path.
  • Stack will use the value of the 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:

  • Fix incorrect warning if 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.
  • The warning that sublibrary dependency is not supported is no longer triggered by internal libraries.

Unofficial M1 bindists here: Index of /ghcup/unofficial-bindists/stack/

Can also be installed via the ghcup prerelease channel:

ghcup config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/develop/ghcup-prereleases-0.0.7.yaml
ghcup install stack latest-prerelease