Skip to content

v1.2.0

Compare
Choose a tag to compare
@borsboom borsboom released this 15 Sep 23:55

See https://haskellstack.org for installation and upgrade instructions.

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 explictly 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

Thanks to all our contributors for this release:

  • Aaron Friel
  • Andrew Cowie
  • AndrewRademacher
  • Anton Felix Lorenzen
  • Brian McKenna
  • Chris Done
  • Dan Aloni
  • danald
  • Daniel Casanueva
  • Denis
  • Denis Kasak
  • Emanuel Borsboom
  • erewok
  • Gabor Greif
  • Gurkenglas
  • Harendra Kumar
  • hesiod
  • Judah Jacobson
  • Khan Thompson
  • Mathieu Boespflug
  • Michael Sloan
  • Michael Snoyman
  • Mohit Agarwal
  • Moritz Angermann
  • Oleg Grenrus
  • Paolo G. Giarrusso
  • Philipp Kant
  • Ryan Desfosses
  • Sid Kapur
  • Sidharth Kapur
  • Simon Jakobi
  • Tim Dysinger
  • Tim Düsterhus
  • Tobias Markus
  • YPares
  • Yuriy Syrovetskiy
  • Yves Parès (Ywen)