Skip to content

Releases: commercialhaskell/stack

v1.1.2

20 May 22:23
Compare
Choose a tag to compare

See haskellstack.org for installation and upgrade instructions.

Release notes:

Major changes:

  • Extensible custom snapshots implemented. These allow you to define snapshots
    which extend other snapshots. See
    #863. Local file custom
    snapshots can now be safely updated without changing their name. Remote custom
    snapshots should still be treated as immutable.

Behavior changes:

  • stack path --compiler was added in the last release, to yield a path to the
    compiler. Unfortunately, --compiler is a global option that is useful to use
    with stack path. The same functionality is now provided by stack path --compiler-exe. See
    #2123
  • For packages specified in terms of a git or hg repo, the hash used in the
    location has changed. This means that existing downloads from older stack
    versions won't be used. This is a side-effect of the fix to
    #2133
  • stack upgrade no longer pays attention to local stack.yaml files, just the
    global config and CLI options.
    #1392
  • stack ghci now uses :add instead of :load, making it potentially work
    better with user scripts. See
    #1888

Other enhancements:

  • Grab Cabal files via Git SHA to avoid regressions from Hackage revisions
    #2070
  • Custom snapshots now support ghc-options.
  • Package git repos are now re-used rather than re-cloned. See
    #1620
  • DESTDIR is filtered from environment when installing GHC. See
    #1460
  • stack haddock now supports --hadock-arguments. See
    #2144
  • Signing: warn if GPG_TTY is not set as per man gpg-agent

Bug fixes:

  • Now ignore project config when doing stack init or stack new. See
    #2110
  • Packages specified by git repo can now have submodules. See
    #2133
  • Fix of hackage index fetch retry. See re-opening of
    #1418
  • HPack now picks up changes to filesystem other than package.yaml. See
    #2051
  • "stack solver" no longer suggests --omit-packages. See
    #2031
  • Fixed an issue with building Cabal's Setup.hs. See
    #1356
  • Package dirtiness now pays attention to deleted files. See
    #1841
  • stack ghci now uses extra-lib-dirs and extra-include-dirs. See
    #1656
  • Relative paths outside of source dir added via qAddDependentFile are now
    checked for dirtiness. See
    #1982
  • Signing: always use --with-fingerprints

Thanks to all our contributors for this release:

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

v1.1.0

04 May 09:37
Compare
Choose a tag to compare

See haskellstack.org for installation and upgrade instructions.

Release notes:

  • Added Ubuntu 16.04 LTS (xenial) Apt repo.
  • No longer uploading new versions to Fedora 21 repo.

Behavior changes:

  • Snapshot packages are no longer built with executable profiling. See
    #1179.
  • stack init now ignores symlinks when searching for cabal files. It also now
    ignores any directory that begins with . (as well as dist dirs) - before
    it would only ignore .git, .stack-work, and dist.
  • The stack executable is no longer built with -rtsopts. Before, when
    -rtsopts was enabled, stack would process +RTS options even when intended
    for some other program, such as when used with stack exec -- prog +RTS.
    See #2022.
  • The stack path --ghc-paths option is deprecated and renamed to --programs.
    --compiler is added, which points directly at the compiler used in
    the current project. --compiler-bin points to the compiler's bin dir.
  • For consistency with the $STACK_ROOT environment variable, the
    stack path --global-stack-root flag and the global-stack-root field
    in the output of stack path are being deprecated and replaced with the
    stack-root flag and output field.
    Additionally, the stack root can now be specified via the
    --stack-root command-line flag. See
    #1148.
  • stack sig GPG-related sub-commands were removed (folded into upload and
    sdist)
  • GPG signing of packages while uploading to Hackage is now the default. Use
    upload --no-signature if you would rather not contribute your package
    signature. If you don't yet have a GPG keyset, read this
    blog post on GPG keys.
    We can add a stack.yaml config setting to disable signing if some people
    desire it. We hope that people will sign. Later we will be adding GPG
    signature verification options.
  • stack build pkg-1.2.3 will now build even if the snapshot has a different
    package version - it is treated as an extra-dep. stack build local-pkg-1.2.3
    is an error even if the version number matches the local package
    #2028.
  • Having a nix: section no longer implies enabling nix build. This allows the
    user to globally configure whether nix is used (unless the project overrides
    the default explicitly). See
    #1924.
  • Remove deprecated valid-wanted field.
  • Docker: mount home directory in container #1949.
  • Deprecate --local-bin-path instead --local-bin.
  • stack image: allow absolute source paths for add.

Other enhancements:

  • stack haddock --open [PACKAGE] opens the local haddocks in the browser.
  • Fix too much rebuilding when enabling/disabling profiling flags.
  • stack build pkg-1.0 will now build pkg-1.0 even if the snapshot specifies
    a different version (it introduces a temporary extra-dep)
  • Experimental support for --split-objs added
    #1284.
  • git packages with submodules are supported by passing the --recursive
    flag to git clone.
  • When using hpack, only regenerate cabal files
    when hpack files change.
  • hpack files can now be used in templates
  • stack ghci now runs ghci as a separate process
    #1306
  • Retry when downloading snapshots and package indices
  • Many build options are configurable now in stack.yaml:
  build:
    library-profiling: true
    executable-profiling: true
    haddock: true
    haddock-deps: true
    copy-bins: true
    prefetch: true
    force-dirty: true
    keep-going: true
    test: true
    test-arguments:
      rerun-tests: true
      additional-args: ['-fprof']
      coverage: true
      no-run-tests: true
    bench: true
    benchmark-opts:
      benchmark-arguments: -O2
      no-run-benchmarks: true
    reconfigure: true
    cabal-verbose: true
  • A number of URLs are now configurable, useful for firewalls. See
    #1794.
  • Suggest causes when executables are missing.
  • Allow --omit-packages even without --solver.
  • Improve the generated stack.yaml.
  • Improve ghci results after :load Main module collision with main file path.
  • Only load the hackage index if necessary
    #1883, #1892.
  • init: allow local packages to be deps of deps
    #1965.
  • Always use full fingerprints from GPG
    #1952.
  • Default to using gpg2 and fall back to gpg
    #1976.
  • Add a flag for --verbosity silent.
  • Add haddock --open flag #1396.

Bug fixes:

  • Package tarballs would fail to unpack.
    #1884.
  • Fixed errant warnings about missing modules, after deleted and removed from
    cabal file #921
    #1805.
  • Now considers a package to dirty when the hpack file is changed
    #1819.
  • Nix: cancelling a stack build now exits properly rather than dropping into a
    nix-shell #1778.
  • allow-newer: true now causes --exact-configuration to be passed to Cabal.
    See #1579.
  • stack solver no longer fails with InvalidRelFile for relative package
    paths including ... See
    #1954.
  • Ignore emacs lock files when finding .cabal
    #1897.
  • Use lenient UTF-8 decode for build output
    #1945.
  • Clear index cache whenever index updated
    #1962.
  • Fix: Building a container image drops a .stack-work dir in the current working
    (sub)directory
    #1975.
  • Fix: Rebuilding when disabling profiling
    #2023.

Thanks to all our contributors for this release:

And thanks as always to the 150+ contributors to past releases!

v1.0.4.3

07 Apr 12:43
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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