stack v1.5.0 Release Notes

  • Behavior changes:

    • stack profile and stack trace now add their extra RTS arguments for benchmarks and tests to the beginning of the args, instead of the end. See #2399
    • 👌 Support for Git-based indices has been removed.

    Other enhancements:

    • stack setup allow to control options passed to ghcjs-boot with --ghcjs-boot-options (one word at a time) and --[no-]ghcjs-boot-clean
    • stack setup now accepts a --install-cabal VERSION option which will install a specific version of the Cabal library globally.
    • 🐎 Updates to store-0.4.1, which has improved performance and better error reporting for version tags. A side-effect of this is that all of stack's binary caches will be invalidated.
    • stack solver will now warn about unexpected cabal-install versions. See #3044
    • 📦 Upstream packages unpacked to a temp dir are now deleted as soon as possible to avoid running out of space in /tmp. See #3018
    • ➕ Add short synonyms for test-arguments and benchmark-arguments options.
    • ➕ Adds STACK_WORK environment variable, to specify work dir. See #3063
    • Can now use relative paths for extra-include-dirs and extra-lib-dirs. See #2830
    • 👌 Improved bash completion for many options, including --ghc-options, --flag, targets, and project executables for exec.
    • --haddock-arguments is actually used now when haddock is invoked during documentation generation.
    • --[no-]haddock-hyperlink-source flag added which allows toggling of sources being included in Haddock output. See #3099
    • 🏗 stack ghci will now skip building all local targets, even if they have downstream deps, as long as it's registered in the DB.
    • 👍 The pvp-bounds feature now supports adding -revision to the end of each value, e.g. pvp-bounds: both-revision. This means that, when uploading to Hackage, Stack will first upload your tarball with an unmodified .cabal file, and then upload a cabal file revision with the PVP bounds added. This can be useful—especially combined with the Stackage no-revisions feature—as a method to ensure PVP compliance without having to proactively fix bounds issues for Stackage maintenance.
    • 🔦 Expose a save-hackage-creds configuration option
    • 🏁 On GHC <= 7.8, filters out spurious linker warnings on windows See #3127
    • 👍 Better error messages when creating or building packages which alias wired-in packages. See #3172.
    • 👀 MinGW bin folder now is searched for dynamic libraries. See #3126
    • When using Nix, nix-shell now depends always on git to prevent runtime errors while fetching metadata
    • The stack unpack command now accepts a form where an explicit Hackage revision hash is specified, e.g. stack unpack foo-1.2.3@gitsha1:deadbeef. Note that this should be considered experimental, Stack will likely move towards a different hash format in the future.
    • ⬆️ Binary "stack upgrade" will now warn if the installed executable is not on the PATH or shadowed by another entry.
    • 👍 Allow running tests on tarball created by sdist and upload #717.

    🐛 Bug fixes:

    • 🛠 Fixes case where stack build --profile might not cause executables / tests / benchmarks to be rebuilt. See #2984
    • stack ghci file.hs now loads the file even if it isn't part of your project.
    • 🐳 stack clean --full now works when docker is enabled. See #2010
    • 🛠 Fixes an issue where cyclic deps can cause benchmarks or tests to be run before they are built. See #2153
    • 🛠 Fixes stack build --file-watch in cases where a directory is removed See #1838
    • 🛠 Fixes stack dot and stack list-dependencies to use info from the package database for wired-in-packages (ghc, base, etc). See #3084
    • 🛠 Fixes stack --docker build when user is part of libvirt/libvirtd groups on Ubuntu Yakkety (16.10). See #3092
    • 📦 Switching a package between extra-dep and local package now forces rebuild (previously it wouldn't if versions were the same). See #2147
    • stack upload no longer reveals your password when you type it on MinTTY-based Windows shells, such as Cygwin and MSYS2. See #3142
    • 📜 stack script's import parser will now properly parse files that have Windows-style line endings (CRLF)