stack v1.2.0 Release Notes

  • ๐Ÿš€ Release notes:

    • On many Un*x systems, Stack can now be installed with a simple one-liner:

      wget -qO- https://get.haskellstack.org/ | sh
      
    • The fix for #2175 entails that stack must perform a full clone of a large Git repo of Hackage meta-information. The total download size is about 200 MB. Please be aware of this when upgrading your stack installation.

    • โฌ†๏ธ If you use Mac OS X, you may want to delay upgrading to macOS Sierra as there are reports of GHC panics when building some packages (including Stack itself). See #2577

    • ๐Ÿ— This version of Stack does not build on ARM or PowerPC systems (see store#37). Please stay with version 1.1.2 for now on those architectures. This will be rectified soon!

    • We are now releasing a statically linked Stack binary for 64-bit Linux. Please try it and let us know if you run into any trouble on your platform.

    • ๐Ÿš€ We are planning some changes to our Linux releases, including dropping our Ubuntu, Debian, CentOS, and Fedora package repositories and switching to statically linked binaries. We would value your feedback in #2534.

    Major changes:

    • โž• Add stack hoogle command. #55
    • ๐Ÿ‘Œ Support for absolute file path in url field of setup-info or --ghc-bindist
    • โž• Add support for rendering GHCi scripts targeting different GHCi like applications #2457

    Behavior changes:

    • โœ‚ Remove stack ide start and stack ide load-targets commands. #2178
    • ๐Ÿ‘Œ Support .buildinfo files in stack ghci. #2242
    • ๐Ÿ‘Œ Support -ferror-spans syntax in GHC error messages.
    • Avoid unpacking ghc to /tmp #996
    • ๐Ÿง The Linux gmp4 GHC bindist is no longer considered a full-fledged GHC variant and can no longer be specified using the ghc-variant option, and instead is treated more like a slightly different platform.

    Other enhancements:

    • ๐Ÿ“ฆ Use the store package for binary serialization of most caches.
    • ๐Ÿณ Only require minor version match for Docker stack exe. This way, we can make patch releases for version bounds and similar build issues without needing to upload new binaries for Docker.
    • Stack/Nix: Passes the right ghc derivation as an argument to the shell.nix when a custom shell.nix is used See #2243
    • Stack/Nix: Sets LD_LIBRARY_PATH so packages using C libs for Template Haskell can work (See e.g. this HaskellR issue)
    • ๐Ÿ”ง Parse CLI arguments and configuration files into less permissive types, improving error messages for bad inputs. #2267
    • โž• Add the ability to explicitly specify a gcc executable. #593
    • Nix: No longer uses LTS mirroring in nixpkgs. Gives to nix-shell a derivation like haskell.compiler.ghc801 See #2259
    • Perform some subprocesses during setup concurrently, slightly speeding up most commands. #2346
    • stack setup no longer unpacks to the system temp dir on posix systems. #996
    • stack setup detects libtinfo6 and ncurses6 and can download alternate GHC bindists #257 #2302.
    • ๐Ÿง stack setup detects Linux ARMv7 downloads appropriate GHC bindist #2103
    • Custom stack binaries list dependency versions in output for --version. See #2222 and #2450.
    • ๐Ÿ–จ Use a pretty printer to output dependency resolution errors. #1912
    • โœ‚ Remove the --os flag #2227
    • โž• Add 'netbase' and 'ca-certificates' as dependency for .deb packages. #2293.
    • โž• Add stack ide targets command.
    • โœจ Enhance debug logging with subprocess timings.
    • ๐Ÿ–จ Pretty-print YAML parse errors #2374
    • Clarify confusing stack setup output #2314
    • โœ‚ Delete Stack.Types multimodule to improve build times #2405
    • โœ‚ Remove spurious newlines in build logs #2418
    • ๐Ÿ“ฆ Interpreter: Provide a way to hide implicit packages #1208
    • Check executability in exec lookup #2489

    ๐Ÿ› Bug fixes:

    • ๐Ÿ›  Fix cabal warning about use of a deprecated cabal flag #2350
    • ๐Ÿ‘Œ Support most executable extensions on Windows #2225
    • Detect resolver change in stack solver #2252
    • ๐Ÿ›  Fix a bug in docker image creation where the wrong base image was selected #2376
    • Ignore special entries when unpacking tarballs #2361
    • ๐Ÿ›  Fixes src directory pollution of style.css and highlight.js with GHC 8's haddock #2429
    • ๐Ÿ– Handle filepaths with spaces in stack ghci #2266
    • ๐Ÿ“ฆ Apply ghc-options to snapshot packages #2289
    • stack sdist: Fix timestamp in tarball #2394
    • ๐Ÿ‘ Allow global Stack arguments with a script #2316
    • ๐Ÿ“ฆ Inconsistency between ToJSON and FromJSON instances of PackageLocation #2412
    • Perform Unicode normalization on filepaths #1810
    • Solver: always keep ghc wired-in as hard constraints #2453
    • ๐Ÿ‘Œ Support OpenBSD's tar where possible, require GNU tar for xz support #2283
    • ๐Ÿ›  Fix using --coverage with Cabal-1.24 #2424
    • ๐Ÿšš When marking exe installed, remove old version #2373
    • Stop truncating all-cabal-hashes git repo #2175
    • ๐Ÿ Handle non-ASCII filenames on Windows #2491
    • ๐Ÿ“ฆ Avoid using multiple versions of a package in script interpreter by passing package-id to ghc/runghc #1957
    • Only pre-load compiler version when using nix integration #2459
    • ๐Ÿ Solver: parse cabal errors also on Windows #2502
    • ๐Ÿ‘ Allow exec and ghci commands in interpreter mode. Scripts can now automatically open in the repl by using exec ghci instead of runghc in the shebang command. #2510
    • ๐Ÿ“ฆ Now consider a package to be dirty when an extra-source-file is changed. See #2040