Skip to content

Releases: commercialhaskell/stack

v1.0.4.3

07 Apr 12:43

Choose a tag to compare

This is a hotfix for a bug that can cause the contents of your ~/.ssh directory to be deleted when using Docker integration and stack clean --full.

Bug fixes:

  • Don't delete contents of ~/.ssh when using stack clean --full with Docker
    enabled #2000

v1.0.4

20 Feb 12:25

Choose a tag to compare

See haskellstack.org for installation and upgrade instructions.

Major changes:

  • Some notable changes in stack init:
    • Overall it should now be able to initialize almost all existing cabal
      packages out of the box as long as the package itself is consistently
      defined.
    • Choose the best possible snapshot and add extra dependencies on top
      of a snapshot resolver rather than a compiler resolver -
      #1583
    • Automatically omit a package (--omit-packages) when it is compiler
      incompatible or when there are packages with conflicting dependency
      requirements - #1674.
    • Some more changes for a better user experience. Please refer to
      the doc guide for details.
  • Add support for hpack, alternative package description format
    #1679

Other enhancements:

  • Docker: pass ~/.ssh and SSH auth socket into container, so that git repos
    work #1358.
  • Docker: strip suffix from docker --version.
    #1653
  • Docker: pass USER and PWD environment bariables into container.
  • On each run, stack will test the stack root directory (/.stack), and the
    project and package work directories (.stack-work) for whether they are
    owned by the current user and abort if they are not. This precaution can
    be disabled with the --allow-different-user flag or allow-different-user
    option in the global config (
    /.stack/config.yaml).
    #471
  • Added stack clean --full option for full working dir cleanup.
  • YAML config: support Zip archives.
  • Redownload build plan if parsing fails
    #1702.
  • Give mustache templates access to a 'year' tag
    #1716.
  • Have "stack ghci" warn about module name aliasing.
  • Add "stack ghci --load-local-deps".
  • Build Setup.hs with -rtsopts
    #1687.
  • stack init accepts a list of directories.
  • Add flag infos to DependencyPlanFailures (for better error output in case of
    flags) #713
  • stack new --bare complains for overwrites, and add --force option
    #1597.

Bug fixes:

  • Previously, stack ghci would fail with cannot satisfy -package-id when the
    implicit build step changes the package key of some dependency.
  • Fix: Building with ghcjs: "ghc-pkg: Prelude.chr: bad argument: 2980338"
    #1665.
  • Fix running test / bench with --profile / --trace.
  • Fix: build progress counter is no longer visible
    #1685.
  • Use "-RTS" w/ profiling to allow extra args
    #1772.
  • Fix withUnpackedTarball7z to find name of srcDir after unpacking
    (fixes stack setup fails for ghcjs project on windows)
    #1774.
  • Add space before auto-generated bench opts (makes profiling options work
    uniformly for applications and benchmark suites)
    #1771.
  • Don't try to find plugin if it resembles flag.
  • Setup.hs changes cause package dirtiness
    #1711.
  • Send "stack templates" output to stdout
    #1792.

Thanks to all our contributors for this release:

And thanks also to the 150+ contributors to past releases!

v1.0.2

18 Jan 00:41

Choose a tag to compare

Release notes:

Major changes:

  • stack init and solver overhaul
    #1583

Other enhancements:

  • Disable locale/codepage hacks when GHC >=7.10.3
    #1552
  • Specify multiple images to build for stack image container
    docs
  • Specify which executables to include in images for stack image container
    docs
  • Docker: pass supplemantary groups and umask into container
  • If git fetch fails wipe the directory and try again from scratch
    #1418
  • Warn if newly installed executables won't be available on the PATH
    #1362
  • stack.yaml: for stack image container, specify multiple images to generate,
    and which executables should be added to those images
  • GHCI: add interactive Main selection
    #1068
  • Care less about the particular name of a GHCJS sdist folder
    #1622
  • Unified Enable/disable help messaging
    #1613

Bug fixes:

  • Don't share precompiled packages between GHC/platform variants and Docker
    #1551
  • Properly redownload corrupted downloads with the correct file size.
    Mailing list discussion
  • Gracefully handle invalid paths in error/warning messages
    #1561
  • Nix: select the correct GHC version corresponding to the snapshot
    even when an abstract resolver is passed via --resolver on the
    command-line.
    #1641
  • Fix: Stack does not allow using an external package from ghci
    #1557
  • Disable ambiguous global '--resolver' option for 'stack init'
    #1531
  • Obey --no-nix flag
  • Fix: GHCJS Execute.hs: Non-exhaustive patterns in lambda
    #1591
  • Send file-watch and sticky logger messages to stderr
    #1302
    #1635
  • Use globaldb path for querying Cabal version
    #1647

v1.0.0

24 Dec 21:14

Choose a tag to compare

A Christmas present: we’re calling this version 1.0! This is a minor enhancement and bug fix release, but since Stackage LTS 4 is about to be cut we thought it was time to give Stack a version number that reflects its readiness for production use.

Enhancements:

  • Added flag --profile flag: passed with stack build, it will
    enable profiling, and for --bench and --test it will generate a
    profiling report by passing +RTS -p to the executable(s). Great
    for using like stack build --bench --profile (remember that
    enabling profile will slow down your benchmarks by >4x). Run stack build --bench again to disable the profiling and get proper speeds
  • Added flag --trace flag: just like --profile, it enables
    profiling, but instead of generating a report for --bench and
    --test, prints out a stack trace on exception. Great for using
    like stack build --test --trace
  • Nix: all options can be overriden on command line
    #1483
  • Nix: build environments (shells) are now pure by default.
  • Make verbosity silent by default in script interpreter mode
    #1472
  • Show a message when resetting git commit fails
    #1453
  • Improve Unicode handling in project/package names
    #1337
  • Fix ambiguity between a stack command and a filename to execute (prefer
    stack subcommands)
    #1471
  • Support multi line interpreter directive comments
    #1394
  • Handle space separated pids in ghc-pkg dump (for GHC HEAD)
    #1509
  • Add ghci --no-package-hiding option
    #1517
  • stack new can download templates from URL
    #1466

Bug fixes:

  • Nix: stack exec options are passed properly to the stack sub process
    #1538
  • Nix: specifying a shell-file works in any current working directory
    #1547
  • Nix: use --resolver argument
  • Docker: fix missing image message and '--docker-auto-pull'
  • No HTML escaping for "stack new" template params
    #1475
  • Set permissions for generated .ghci script
    #1480
  • Restrict commands allowed in interpreter mode
    #1504
  • stack ghci doesn't see preprocessed files for executables
    #1347
  • All test suites run even when only one is requested
    #1550
  • Edge cases in broken templates give odd errors
    #1535
  • Fix test coverage bug on windows

v0.1.10.1

13 Dec 19:39

Choose a tag to compare

Release notes:

  • Since MinGHC is dead, the MinGHC installers will not be updated with this version.

Bug fixes:

  • stack image container did not actually build an image
    #1473

v0.1.10.0

04 Dec 18:07

Choose a tag to compare

Release notes:

  • The Stack home page is now at haskellstack.org,
    which shows the documentation rendered by readthedocs.org. Note: this
    has necessitated some changes to the links in the documentation's markdown
    source code, so please check the links on the website before submitting a PR
    to fix them.
  • The locations of the
    Ubuntu
    and
    Debian
    package repositories have changed to have correct URL semantics according to
    Debian's guidelines
    #1378. The old
    locations will continue to work for some months, but we suggest that you
    adjust your /etc/apt/sources.list.d/fpco.list to the new location to avoid
    future disruption.
  • openSUSE and SUSE Linux Enterprise
    packages are now available, thanks to @mimi1vx.
    Note: there will be some lag before these pick up new versions, as they are
    based on Stackage LTS.

Major changes:

  • Support for building inside a Nix-shell providing system dependencies
    #1285
  • Add optional GPG signing on stack upload --sign or with
    stack sig sign ...

Other enhancements:

  • Print latest applicable version of packages on conflicts
    #508
  • Support for packages located in Mercurial repositories
    #1397
  • Only run benchmarks specified as build targets
    #1412
  • Support git-style executable fall-through (stack something executes
    stack-something if present)
    #1433
  • GHCi now loads intermediate dependencies
    #584
  • --work-dir option for overriding .stack-work
    #1178
  • Support detailed-0.9 tests
    #1429
  • Docker: improved POSIX signal proxying to containers
    #547

Bug fixes:

  • Show absolute paths in error messages in multi-package builds
    #1348
  • Docker-built binaries and libraries in different path
    #911
    #1367
  • Docker: --resolver argument didn't effect selected image tag
  • GHCi: Spaces in filepaths caused module loading issues
    #1401
  • GHCi: cpp-options in cabal files weren't used
    #1419
  • Benchmarks couldn't be run independently of eachother
    #1412
  • Send output of building setup to stderr
    #1410

v0.1.8.0

20 Nov 17:38

Choose a tag to compare

See README for installation and upgrade instructions.

There are now Windows installers available: download them here. In addition, new Fedora 23 packages are available here.

Note that, starting with v0.1.8.0, releases of Stack will always have an even-numbered second-to-last version component. Odd second-to-last version components are reserved for unstable builds.

Major changes:

  • GHCJS can now be used with stackage snapshots via the new compiler field.
  • Docker integration works with non-FP Complete generated images
    #531

Other enhancements:

  • Added an allow-newer config option
    #922
    #770
  • When a Hackage revision invalidates a build plan in a snapshot, trust the
    snapshot #770
  • Added a stack config set resolver RESOLVER command. Part of work on
    #115
  • stack setup can now install GHCJS on windows. See
    #1145 and
    #749
  • stack hpc report command added, which generates reports for HPC tix files
  • stack ghci now accepts all the flags accepted by stack build. See
    #1186
  • stack ghci builds the project before launching GHCi. If the build fails,
    optimistically launch GHCi anyway. Use stack ghci --no-build option to
    disable #1065
  • stack ghci now detects and warns about various circumstances where it is
    liable to fail. See
    #1270
  • Added require-docker-version configuration option
  • Packages will now usually be built along with their tests and benchmarks. See
    #1166
  • Relative local-bin-path paths will be relative to the project's root
    directory, not the current working directory.
    #1340
  • stack clean now takes an optional [PACKAGE] argument for use in
    multi-package projects. See
    #583
  • Ignore cabal_macros.h as a dependency
    #1195
  • Pad timestamps and show local time in --verbose output
    #1226
  • GHCi: Import all modules after loading them
    #995
  • Add subcommand aliases: repl for ghci, and runhaskell for runghc
    #1241
  • Add typo recommendations for unknown package identifiers
    #158
  • Add stack path --local-hpc-root option
  • Overhaul dependencies' haddocks copying
    #1231
  • Support for extra-package-dbs in 'stack ghci'
    #1229
  • stack new disallows package names with "words" consisting solely of numbers
    #1336
  • stack build --fast turns off optimizations

Bug fixes:

  • Fix: Haddocks not copied for dependencies
    #1105
  • Fix: Global options did not work consistently after subcommand
    #519
  • Fix: 'stack ghci' doesn't notice that a module got deleted
    #1180
  • Rebuild when cabal file is changed
  • Fix: Paths in GHC warnings not canonicalized, nor those for packages in
    subdirectories or outside the project root
    #1259
  • Fix: unlisted files in tests and benchmarks trigger extraneous second build
    #838

v0.1.6.0

15 Oct 12:14

Choose a tag to compare

See README for installation and upgrade instructions.

Major changes:

  • "stack setup" now supports building and booting GHCJS from source tarball.
  • On Windows, build directories no longer display "pretty" information
    (like x86_64-windows/Cabal-1.22.4.0), but rather a hash of that
    content. The reason is to avoid the 260 character path limitation on
    Windows. See
    #1027
  • Rename config files and clarify their purposes #969
    • ~/.stack/stack.yaml --> ~/.stack/config.yaml
    • ~/.stack/global --> ~/.stack/global-project
    • /etc/stack/config --> /etc/stack/config.yaml
    • Old locations still supported, with deprecation warnings
  • New command "stack eval CODE", which evaluates to "stack exec ghc -- -e CODE".

Other enhancements:

  • No longer install git on Windows
    #1046. You
    can still get this behavior by running the following yourself:
    stack exec -- pacman -Sy --noconfirm git.
  • Typing enter during --file-watch triggers a rebuild #1023
  • Use Haddock's --hyperlinked-source (crosslinked source), if available #1070
  • Use Stack-installed GHCs for stack init --solver #1072
  • New experimental stack query command #1087
  • By default, stack no longer rebuilds a package due to GHC options changes. This behavior can be tweaked with the rebuild-ghc-options setting. #1089
  • By default, ghc-options are applied to all local packages, not just targets. This behavior can be tweaked with the apply-ghc-options setting. #1089
  • Docker: download or override location of stack executable to re-run in container #974
  • Docker: when Docker Engine is remote, don't run containerized processes as host's UID/GID #194
  • Docker: set-user option to enable/disable running containerized processes as host's UID/GID #194
  • Custom Setup.hs files are now precompiled instead of interpreted. This should be a major performance win for certain edge cases (biggest example: building Cabal itself) while being either neutral or a minor slowdown for more common cases.
  • stack test --coverage now also generates a unified coverage report for multiple test-suites / packages. In the unified report, test-suites can contribute to the coverage of other packages.

Bug fixes:

  • Ignore stack-built executables named ghc
    #1052
  • Fix quoting of output failed command line arguments
  • Mark executable-only packages as installed when copied from cache #1043
  • Canonicalize temporary directory paths #1047
  • Put code page fix inside the build function itself #1066
  • Add explicit-setup-deps option #1110, and change the default to the old behavior of using any package in the global and snapshot database #1025
  • Precompiled cache checks full package IDs on Cabal < 1.22 #1103
  • Pass -package-id to ghci #867
  • Ignore global packages when copying precompiled packages #1146

v0.1.5.0

25 Sep 15:48

Choose a tag to compare

See README for installation and upgrade instructions.

Note: the binary tarballs' contents have changed, and they now enclose their contents in a directory, and include documentation. If you have a script that should only extract the stack executable, use something like tar xzf stack-0.1.5.0-x86_64-osx.tar.gz --strip-components=1 stack-0.1.5.0-x86_64-osx/stack.

MinGHC installers have also been updated to include this version of stack (and will continue to be updated for future releases).

Major changes:

  • On Windows, we now use a full MSYS2 installation in place of the previous PortableGit. This gives you access to the pacman package manager for more easily installing libraries.
  • Support for custom GHC binary distributions #530
    • ghc-variant option in stack.yaml to specify the variant (also
      --ghc-variant command-line option)
    • setup-info in stack.yaml, to specify where to download custom binary
      distributions (also --ghc-bindist command-line option)
    • Note: On systems with libgmp4 (aka libgmp.so.3), such as CentOS 6, you
      may need to re-run stack setup due to the centos6 GHC bindist being
      treated like a variant
  • A new --pvp-bounds flag to the sdist and upload commands allows automatic adding of PVP upper and/or lower bounds to your dependencies

Other enhancements:

  • Adapt to upcoming Cabal installed package identifier format change #851
  • stack setup takes a --stack-setup-yaml argument
  • --file-watch is more discerning about which files to rebuild for #912
  • stack path now supports --global-pkg-db and --ghc-package-path
  • --reconfigure flag #914 #946
  • Cached data is written with a checksum of its structure #889
  • Fully removed --optimizations flag
  • Added --cabal-verbose flag
  • Added --file-watch-poll flag for polling instead of using filesystem events (useful for running tests in a Docker container while modifying code in the host environment. When code is injected into the container via a volume, the container won't propagate filesystem events).
  • Give a preemptive error message when -prof is given as a GHC option #1015
  • Locking is now optional, and will be turned on by setting the STACK_LOCK environment variable to true #950
  • Create default stack.yaml with documentation comments and commented out options #226
  • Out of memory warning if Cabal exits with -9 #947

Bug fixes:

  • Hacky workaround for optparse-applicative issue with stack exec --help #806
  • Build executables for local extra deps #920
  • copyFile can't handle directories #942
  • Support for spaces in Haddock interface files fpco/minghc#85
  • Temporarily building against a "shadowing" local package? #992
  • Fix Setup.exe name for --upgrade-cabal on Windows #1002
  • Unlisted dependencies no longer trigger extraneous second build #838

v0.1.4.0

04 Sep 01:26

Choose a tag to compare

See README for installation and upgrade instructions.

Note: while stack-0.1.4.1 is on Hackage, the only change is to a comment so that stack's haddocks build. Therefore, no new binaries were generated. Functionally, v0.1.4.0 is identical to v0.1.4.1.

Note: we have stopped uploading new versions to the Fedora 20 repository, since that version of Fedora has reached end of life. If you are using Fedora 20, use stack upgrade or download the general Linux binary.

Major changes:

  • You now have more control over how GHC versions are matched, e.g. "use exactly this version," "use the specified minor version, but allow patches," or "use the given minor version or any later minor in the given major release." The default has switched from allowing newer later minor versions to a specific minor version allowing patches. For more information, see #736 and #784.
  • Support added for compiling with GHCJS
  • stack can now reuse prebuilt binaries between snapshots. That means that, if you build package foo in LTS-3.1, that binary version can be reused in LTS-3.2, assuming it uses the same dependencies and flags. #878

Other enhancements:

  • Added the --docker-env argument, to set environment variables in Docker container.
  • Set locale environment variables to UTF-8 encoding for builds to avoid "commitBuffer: invalid argument" errors from GHC #793
  • Enable translitation for encoding on stdout and stderr #824
  • By default, stack upgrade automatically installs GHC as necessary #797
  • Added the ghc-options field to stack.yaml #796
  • Added the extra-path field to stack.yaml
  • Code page changes on Windows only apply to the build command (and its synonyms), and can be controlled via a command line flag (still defaults to on) #757
  • Implicitly add packages to extra-deps when a flag for them is set #807
  • Use a precompiled Setup.hs for simple build types #801
  • Set --enable-tests and --enable-benchmarks optimistically #805
  • --only-configure option added #820
  • Check for duplicate local package names
  • Stop nagging people that call stack test #845
  • --file-watch will ignore files that are in your VCS boring/ignore files #703
  • Add --numeric-version option

Bug fixes:

  • stack init --solver fails if GHC_PACKAGE_PATH is present #860
  • stack solver and stack init --solver check for test suite and benchmark dependencies #862
  • More intelligent logic for setting UTF-8 locale environment variables #856
  • Create missing directories for stack sdist
  • Don't ignore .cabal files with extra periods #895
  • Deprecate unused --optimizations flag
  • Truncated output on slow terminals #413