Releases: commercialhaskell/stack
v1.1.0
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 asdist
dirs) - before
it would only ignore.git
,.stack-work
, anddist
.- 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 withstack 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 theglobal-stack-root
field
in the output ofstack 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 intoupload
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 foradd
.
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 buildpkg-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 togit 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 togpg
#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 withInvalidRelFile
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:
- Beerend Lauwers @beerendlauwers
- Chris Done @chrisdone
- Christian Hoener zu Siederdissen
- @CthulhuDen
- Emanuel Borsboom @borsboom
- Erik Stevenson @narrative
- @fmap
- Greg @myfreeweb
- Harendra Kumar @harendra-kumar
- Luigy Leon @luigy
- @malteneuss
- Mark Karpov @mrkkrp
- Martin Dehnel-Wild @mpdehnel
- Mathieu Boespflug @mboes
- Michael Sloan @mgsloan
- Michael Snoyman @snoyberg
- Noon van der Silk @silky
- Oleg Grenrus @phadej
- Paul Rouse @paul-rouse
- Rob Rix @robrix
- Simon Hengel @sol
- Simon Jakobi @sjakobi
- Taylor Fausak @tfausak
- @tejon
- Tim Dysinger @dysinger
- Tobias Kortkamp @t6
- Tristan Webb @drwebb
- Yuji Yamamoto @igrep
- Yuriy Syrovetskiy @cblp
- Yves Parès (Ywen) @YPares
And thanks as always to the 150+ contributors to past releases!
v1.0.4.3
v1.0.4
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.
- Overall it should now be able to initialize almost all existing cabal
- 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/.stack/config.yaml).
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 orallow-different-user
option in the global config (
#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 withcannot 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
(fixesstack 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:
- Aaron Wolf @wolftune
- Artem Chernyak @achernyak
- Dan Aloni @da-x
- Daniel Gasienica @gasi
- Emanuel Borsboom @borsboom
- Erik Stevenson @narrative
- Gauthier Segay @smoothdeveloper
- Greg Weber @gregwebs
- Grégoire Détrez @gdetrez
- Harendra Kumar @harendra-kumar
- Mark Karpov @mrkkrp
- Martin Kolinek
- Matt Gambogi @gambogi
- Michael Sloan @mgsloan
- Michael Snoyman @snoyberg
- Oleg Grenrus @phadej
- Eldar Yakupov @panamiga
- Prayag Verma @pra85
- Simon Hengel @sol
- Simon Jakobi @sjakobi
- Tristan Webb @drwebb
- Yves Parès @YPares
And thanks also to the 150+ contributors to past releases!
v1.0.2
Release notes:
- Arch Linux: Stack has been adopted into the
official community repository,
so we will no longer be updating the AUR with new versions. See the
install/upgrade guide
for current download instructions.
Major changes:
stack init
andsolver
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
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 withstack 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 likestack build --bench --profile
(remember that
enabling profile will slow down your benchmarks by >4x). Runstack 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
likestack 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
v0.1.10.0
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
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
#749stack hpc report
command added, which generates reports for HPC tix filesstack ghci
now accepts all the flags accepted bystack build
. See
#1186stack ghci
builds the project before launching GHCi. If the build fails,
optimistically launch GHCi anyway. Usestack ghci --no-build
option to
disable #1065stack 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
forghci
, andrunhaskell
forrunghc
#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
#1336stack 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
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
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-runstack 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 #912stack 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 totrue
#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