-*-change-log-*-

2.2.0.0 (current development version)
        * '--with-PROG' and '--PROG-options' are applied to all packages
	and not local packages only (#5019).
	* Completed the 'new-update' command (#4809), which respects nix-style
	cabal.project(.local) files and allows to update from
	multiple repositories when using overlays.
	* Completed the 'new-run' command (#4477). The functionality is the
	same of the old 'run' command but using nix-style builds.
	Additionally, it can run executables across packages in a project.
	Tests and benchmarks are also treated as executables, providing a
	quick way to pass them arguments.
	* Completed the 'new-bench' command (#3638). Same as above.
	* Completed the 'new-exec' command (#3638). Same as above.
	* Added a preliminary 'new-install' command (#4558, nonlocal exes
	part) which allows to quickly install executables from Hackage.
	* Set symlink-bindir (used by new-install) to .cabal/bin by default on
	.cabal/config initialization.
	* 'cabal update' now supports '--index-state' which can be used to
	roll back the index to an earlier state.
	* '--allow-{newer,older}' syntax has been enhanced. Dependency
	relaxation can be now limited to a specific release of a package,
	plus there's a new syntax for relaxing only caret-style (i.e. '^>=')
	dependencies (#4575, #4669).
	* New config file field: 'cxx-options' to specify which options to be
	passed to the compiler when compiling C++ sources specified by the
	'cxx-sources' field. (#3700)
	* New config file field: 'cxx-sources' to specify C++ files to be
	compiled separately from C source files. Useful in conjunction with the
	'cxx-options' flag to pass different compiler options to C and C++
	source files. (#3700)
	* Use [lfxtb] letters to differentiate component kind instead of
	opaque "c" in dist-dir layout.
	* 'cabal configure' now supports '--enable-static', which can be
	used to build static libaries with GHC via GHC's `-staticlib`
	flag.
	* 'cabal user-config now supports '--augment' which can append
	additional lines to a new or updated cabal config file.
	* Added support for '--enable-tests' and '--enable-benchmarks' to
	'cabal fetch' (#4948).
	* Misspelled package-names on CLI will no longer be silently
	case-corrected (#4778).
	* 'cabal new-configure' now backs up the old 'cabal.project.local'
	file if it exists (#4460).
	* On macOS, `new-build` will now place dynamic libraries into
	`store/lib` and aggressively shorten their names in an effort to
	stay within the load command size limits of macOSs mach-o linker.
	* 'new-build' now checks for the existence of executables for
	build-tools and build-tool-depends dependencies in the solver
	(#4884).
	* Fixed a spurious warning telling the user to run 'cabal update'
	when it wasn't necessary (#4444).
	* Packages installed in sandboxes via 'add-source' now have
	their timestamps updated correctly and so will not be reinstalled
	unncecessarily if the main install command fails (#1375).
	* Add Windows device path support for copyFile, renameFile. Allows cabal
	new-build to use temporary store path of up to 32k length
	(#3972, #4914, #4515).
	* When a flag value is specified multiple times on the command
	line, the last one is now preferred, so e.g. '-f+dev -f-dev' is
	now equivalent to '-f-dev' (#4452).
	* Removed support for building cabal-install with GHC < 7.10 (#4870).
	* New 'package *' section in 'cabal.project' files that applies
	options to all packages, not just those local to the project.
	* Paths_ autogen modules now compile when `RebindableSyntax` or
	`OverloadedStrings` is used in `default-extensions`.
	[stack#3789](https://github.com/commercialhaskell/stack/issues/3789)

2.0.0.1 Mikhail Glushenkov <mikhail.glushenkov@gmail.com> December 2017
	* Support for GHC's numeric -g debug levels (#4673).
	* Demoted 'scope' field version check to a warning (#4714).
	* Fixed verbosity flags getting removed before being passed to
	'printPlan' (#4724).
	* Added a '--store-dir' option that can be used to configure the
	location of the build global build store (#4623).
	* Turned `allow-{newer,older}` in `cabal.project` files into an
	accumulating field to match CLI flag semantics (#4679).
	* Improve success message when `cabal upload`ing documentation
	(#4777).
	* Documentation fixes.

2.0.0.0 Mikhail Glushenkov <mikhail.glushenkov@gmail.com> August 2017
	* See http://coldwa.st/e/blog/2017-09-09-Cabal-2-0.html
	for more detailed release notes.
	* Removed the '--root-cmd' parameter of the 'install' command
	(#3356).
	* Deprecated 'cabal install --global' (#3356).
	* Changed 'cabal upload' to upload a package candidate by default
	(#3419). Same applies to uploading documentation.
	* Added a new 'cabal upload' flag '--publish' for publishing a
	package on Hackage instead of uploading a candidate (#3419).
	* Added optional solver output visualisation support via the
	tracetree package. Mainly intended for debugging (#3410).
	* Removed the '--check' option from 'cabal upload'
	(#1823). It was replaced by package candidates.
	* Fixed various behaviour differences between network transports
	(#3429).
	* The bootstrap script now works correctly when run from a Git
	clone (#3439).
	* Removed the top-down solver (#3598).
	* The '-v/--verbosity' option no longer affects GHC verbosity
	(except in the case of '-v0'). Use '--ghc-options=-v' to enable
	verbose GHC output (#3540, #3671).
	* Changed the default logfile template from
	'.../$pkgid.log' to '.../$compiler/$libname.log' (#3807).
	* Added a new command, 'cabal reconfigure', which re-runs 'configure'
	with the most recently used flags (#2214).
	* Added the '--index-state' flag for requesting a specific
	version of the package index (#3893, #4115).
	* Support for building Backpack packages.  See
	https://github.com/ezyang/ghc-proposals/blob/backpack/proposals/0000-backpack.rst
	for more details.
	* Support the Nix package manager (#3651).
	* Made the 'template-haskell' package non-upgradable again (#4185).
	* Fixed password echoing on MinTTY (#4128).
	* Added a new solver flag, '--allow-boot-library-installs', that allows
	any package to be installed or upgraded (#4209).
	* New 'cabal-install' command: 'outdated', for listing outdated
	version bounds in a .cabal file or a freeze file (#4207).
	* Added qualified constraints for setup dependencies. For example,
	--constraint="setup.bar == 1.0" constrains all setup dependencies on
	bar, and --constraint="foo:setup.bar == 1.0" constrains foo's setup
	dependency on bar (part of #3502).
	* Non-qualified constraints, such as --constraint="bar == 1.0", now
	only apply to top-level dependencies. They don't constrain setup or
	build-tool dependencies. The new syntax --constraint="any.bar == 1.0"
	constrains all uses of bar.
	* Added a technical preview version of the 'cabal doctest' command
	(#4480).

1.24.0.2 Mikhail Glushenkov <mikhail.glushenkov@gmail.com> December 2016
	* Adapted to the revert of a PVP-noncompliant API change in
	Cabal 1.24.2.0 (#4123).
	* Bumped the directory upper bound to < 1.4 (#4158).

1.24.0.1 Ryan Thomas <ryan@ryant.org> October 2016
	* Fixed issue with passing '--enable-profiling' when invoking
	Setup scripts built with older versions of Cabal (#3873).
	* Fixed various behaviour differences between network transports
	(#3429).
	* Updated to depend on the latest hackage-security that fixes
	various issues on Windows.
	* Fixed 'new-build' to exit with a non-zero exit code on failure
	(#3506).
	* Store secure repo index data as 01-index.* (#3862).
	* Added new hackage-security root keys for distribution with
	cabal-install.
	* Fix an issue where 'cabal install' sometimes had to be run twice
	for packages with build-type: Custom and a custom-setup stanza
	(#3723).
	* 'cabal sdist' no longer ignores '--builddir' when the package's
	build-type is Custom (#3794).

1.24.0.0 Ryan Thomas <ryan@ryant.org> March 2016
	* If there are multiple remote repos, 'cabal update' now updates
	them in parallel (#2503).
	* New 'cabal upload' option '-P'/'--password-command' for reading
	Hackage password from arbitrary program output (#2506).
	* Better warning for 'cabal run' (#2510).
	* 'cabal init' now warns if the chosen package name is already
	registered in the source package index (#2436).
	* New 'cabal install' option: '--offline' (#2578).
	* Accept 'builddir' field in cabal.config (#2484)
	* Read 'builddir' option from 'CABAL_BUILDDIR' environment variable.
	* Remote repos may now be configured to use https URLs. This uses
	either curl or wget or, on Windows, PowerShell, under the hood (#2687).
	* Install target URLs can now use https e.g. 'cabal install
	https://example.com/foo-1.0.tar.gz'.
	* Automatically use https for cabal upload for the main
	hackage.haskell.org (other repos will use whatever they are
	configured to use).
	* Support for dependencies of custom Setup.hs scripts
	(see http://www.well-typed.com/blog/2015/07/cabal-setup-deps/).
	* 'cabal' program itself now can be used as an external setup
	method. This fixes an issue when Cabal version mismatch caused
	unnecessary reconfigures (#2633).
	* Improved error message for unsatisfiable package constraints
	(#2727).
	* Fixed a space leak in 'cabal update' (#2826).
	* 'cabal exec' and 'sandbox hc-pkg' now use the configured
	compiler (#2859).
	* New 'cabal haddock' option: '--for-hackage' (#2852).
	* Added a warning when the solver cannot find a dependency (#2853).
	* New 'cabal upload' option: '--doc': upload documentation to
	hackage (#2890).
	* Improved error handling for 'sandbox delete-source' (#2943).
	* Solver support for extension and language flavours (#2873).
	* Support for secure repos using hackage-security (#2983).
	* Added a log file message similar to one printed by 'make' when
	building in another directory (#2642).
	* Added new subcommand 'init' to 'cabal user-config'. This
	subcommand creates a cabal configuration file in either the
	default location or as specified by --config-file (#2553).
	* The man page for 'cabal-install' is now automatically generated
	(#2877).
	* The '--allow-newer' option now works as expected when specified
	multiple times (#2588).
	* New config file field: 'extra-framework-dirs' (extra locations
	to find OS X frameworks in). Can be also specified as an argument
	for 'install' and 'configure' commands (#3158).
	* It's now possible to limit the scope of '--allow-newer' to
	single packages in the install plan (#2756).
	* Full '--allow-newer' syntax is now supported in the config file
	(that is, 'allow-newer: base, ghc-prim,  some-package:vector')
	(#3171).
	* Improved performance of '--reorder-goals' (#3208).
	* Fixed space leaks in modular solver (#2916, #2914).
	* Made the solver aware of pkg-config constraints (#3023).
	* Added a new command: 'gen-bounds' (#3223). See
	http://softwaresimply.blogspot.se/2015/08/cabal-gen-bounds-easy-generation-of.html.
	* Tech preview of new nix-style isolated project-based builds.
	Currently provides the commands (new-)build/repl/configure.

1.22.9.0 Ryan Thomas <ryan@ryant.org> March 2016
	* Include Cabal-1.22.8.0

1.22.8.0 Ryan Thomas <ryan@ryant.org> February 2016
	* Only Custom setup scripts should be compiled with '-i -i.'.
	* installedCabalVersion: Don't special-case Cabal anymore.
	* Bump the HTTP upper bound. See #3069.

1.22.7.0 Ryan Thomas <ryan@ryant.org> December 2015
	* Remove GZipUtils tests
	* maybeDecompress: bail on all errors at the beginning of the
	stream with zlib < 0.6
	* Correct maybeDecompress

1.22.6.0 Ryan Thomas <ryan@ryant.org> June 2015
	* A fix for @ezyang's fix for #2502. (Mikhail Glushenkov)

1.22.5.0 Ryan Thomas <ryan@ryant.org> June 2015
	* Reduce temporary directory name length, fixes #2502. (Edward Z. Yang)

1.22.4.0 Ryan Thomas <ryan@ryant.org> May 2015
	* Force cabal upload to always use digest auth and never basic auth.
	* Add dependency-graph information to `printPlan` output
	* bootstrap.sh: fixes linker matching to avoid cases where tested
	linker names appear unexpectedly in compiler output (fixes #2542)

1.22.3.0 Ryan Thomas <ryan@ryant.org> April 2015
	* Fix bash completion for sandbox subcommands - Fixes #2513
	(Mikhail Glushenkov)
	* filterConfigureFlags: filter more flags (Mikhail Glushenkov)

1.22.2.0 Ryan Thomas <ryan@ryant.org> March 2015
	* Don't pass '--{en,dis}able-profiling' to old setup exes.
	* -Wall police
	* Allow filepath 1.4

1.22.0.0 Johan Tibell <johan.tibell@gmail.com> January 2015
	* New command: user-config (#2159).
	* Implement 'cabal repl --only' (#2016).
	* Fix an issue when 'cabal repl' was doing unnecessary compilation
	(#1715).
	* Prompt the user to specify source directory in 'cabal init'
	(#1989).
	* Remove the self-upgrade check (#2090).
	* Don't redownload already downloaded packages when bootstrapping
	(#2133).
	* Support sandboxes in 'bootstrap.sh' (#2137).
	* Install profiling and shared libs by default in 'bootstrap.sh'
	(#2009).

1.20.2.0 Ryan Thomas <ryan@ryant.org> February 2016
	* Only Custom setup scripts should be compiled with '-i -i.'.
	* installedCabalVersion: Don't special-case Cabal anymore.

1.20.1.0 Ryan Thomas <ryan@ryant.org> May 2015
	* Force cabal upload to always use digest auth and never basic auth.
	* bootstrap.sh: install network-uri before HTTP

1.20.0.5 Johan Tibell <johan.tibell@gmail.com> December 2014
	* Support random 1.1.
	* Fix bootstrap script after network package split.
	* Support network-2.6 in test suite.

1.20.0.3 Johan Tibell <johan.tibell@gmail.com> June 2014
	* Don't attempt to rename dist if it is already named correctly
	* Treat all flags of a package as interdependent.
	* Allow template-haskell to be upgradable again

1.20.0.2 Johan Tibell <johan.tibell@gmail.com> May 2014
	* Increase max-backjumps to 2000.
	* Fix solver bug which led to missed install plans.
	* Fix streaming test output.
	* Tweak solver heuristics to avoid reinstalls.

1.20.0.1 Johan Tibell <johan.tibell@gmail.com> May 2014
	* Fix cabal repl search path bug on Windows
	* Include OS and arch in cabal-install user agent
	* Revert --constraint flag behavior in configure to 1.18 behavior

1.20.0.0 Johan Tibell <johan.tibell@gmail.com> April 2014
	* Build only selected executables
	* Add -j flag to build/test/bench/run
	* Improve install log file
	* Don't symlink executables when in a sandbox
	* Add --package-db flag to 'list' and 'info'
	* Make upload more efficient
	* Add --require-sandbox option
	* Add experimental Cabal file format command
	* Add haddock section to config file
	* Add --main-is flag to init

1.18.2.0 Ryan Thomas <ryan@ryant.org> February 2016
	* Only Custom setup scripts should be compiled with '-i -i.'.
	* installedCabalVersion: Don't special-case Cabal anymore.

1.18.1.0 Ryan Thomas <ryan@ryant.org> May 2015
	* Force cabal upload to always use digest auth and never basic auth.
	* Merge pull request #2367 from juhp/patch-2
	* Fix bootstrap.sh by bumping HTTP to 4000.2.16.1

1.18.0.7 Johan Tibell <johan.tibell@gmail.com> December 2014
	* Support random 1.1.
	* Fix bootstrap script after network package split.
	* Support network-2.6 in test suite.

1.18.0.5 Johan Tibell <johan.tibell@gmail.com> July 2014
	* Make solver flag resolution more conservative.

1.18.0.4 Johan Tibell <johan.tibell@gmail.com> May 2014
	* Increase max-backjumps to 2000.
	* Fix solver bug which led to missed install plans.
	* Tweak solver heuristics to avoid reinstalls.

0.14.0 Andres Loeh <andres@well-typed.com> April 2012
	* Works with ghc-7.4
	* Completely new modular dependency solver (default in most cases)
	* Some tweaks to old topdown dependency solver
	* Install plans are now checked for reinstalls that break packages
	* Flags --constraint and --preference work for nonexisting packages
	* New constraint forms for source and installed packages
	* New constraint form for package-specific use flags
	* New constraint form for package-specific stanza flags
	* Test suite dependencies are pulled in on demand
	* No longer install packages on --enable-tests when tests fail
	* New "cabal bench" command
	* Various "cabal init" tweaks

0.10.0 Duncan Coutts <duncan@community.haskell.org> February 2011
	* New package targets: local dirs, local and remote tarballs
	* Initial support for a "world" package target
	* Partial fix for situation where user packages mask global ones
	* Removed cabal upgrade, new --upgrade-dependencies flag
	* New cabal install --only-dependencies flag
	* New cabal fetch --no-dependencies and --dry-run flags
	* Improved output for cabal info
	* Simpler and faster bash command line completion
	* Fix for broken proxies that decompress wrongly
	* Fix for cabal unpack to preserve executable permissions
	* Adjusted the output for the -v verbosity level in a few places

0.8.2 Duncan Coutts <duncan@community.haskell.org> March 2010
	* Fix for cabal update on Windows
	* On windows switch to per-user installs (rather than global)
	* Handle intra-package dependencies in dependency planning
	* Minor tweaks to cabal init feature
	* Fix various -Wall warnings
	* Fix for cabal sdist --snapshot

0.8.0 Duncan Coutts <duncan@haskell.org> Dec 2009
	* Works with ghc-6.12
	* New "cabal init" command for making initial project .cabal file
	* New feature to maintain an index of haddock documentation

0.6.4 Duncan Coutts <duncan@haskell.org> Nov 2009
	* Improve the algorithm for selecting the base package version
	* Hackage errors now reported by "cabal upload [--check]"
	* Improved format of messages from "cabal check"
	* Config file can now be selected by an env var
	* Updated tar reading/writing code
	* Improve instructions in the README and bootstrap output
	* Fix bootstrap.sh on Solaris 9
	* Fix bootstrap for systems where network uses parsec 3
	* Fix building with ghc-6.6

0.6.2 Duncan Coutts <duncan@haskell.org> Feb 2009
	* The upgrade command has been disabled in this release
	* The configure and install commands now have consistent behaviour
	* Reduce the tendancy to re-install already existing packages
	* The --constraint= flag now works for the install command
	* New --preference= flag for soft constraints / version preferences
	* Improved bootstrap.sh script, smarter and better error checking
	* New cabal info command to display detailed info on packages
	* New cabal unpack command to download and untar a package
	* HTTP-4000 package required, should fix bugs with http proxies
	* Now works with authenticated proxies.
	* On Windows can now override the proxy setting using an env var
	* Fix compatibility with config files generated by older versions
	* Warn if the hackage package list is very old
	* More helpful --help output, mention config file and examples
	* Better documentation in ~/.cabal/config file
	* Improved command line interface for logging and build reporting
	* Minor improvements to some messages

0.6.0 Duncan Coutts <duncan@haskell.org> Oct 2008
	* Constraint solver can now cope with base 3 and base 4
	* Allow use of package version preferences from hackage index
	* More detailed output from cabal install --dry-run -v
	* Improved bootstrap.sh

0.5.2 Duncan Coutts <duncan@haskell.org> Aug 2008
	* Suport building haddock documentaion
	* Self-reinstall now works on Windows
	* Allow adding symlinks to excutables into a separate bindir
	* New self-documenting config file
	* New install --reinstall flag
	* More helpful status messages in a couple places
	* Upload failures now report full text error message from the server
	* Support for local package repositories
	* New build logging and reporting
	* New command to upload build reports to (a compatible) server
	* Allow tilde in hackage server URIs
	* Internal code improvements
	* Many other minor improvements and bug fixes

0.5.1 Duncan Coutts <duncan@haskell.org> June 2008
	* Restore minimal hugs support in dependency resolver
	* Fix for disabled http proxies on Windows
	* Revert to global installs on Windows by default

0.5.0 Duncan Coutts <duncan@haskell.org> June 2008
	* New package dependency resolver, solving diamond dep problem
	* Integrate cabal-setup functionality
	* Integrate cabal-upload functionality
	* New cabal update and check commands
	* Improved behavior for install and upgrade commands
	* Full Windows support
	* New command line handling
	* Bash command line completion
	* Allow case insensitive package names on command line
	* New --dry-run flag for install, upgrade and fetch commands
	* New --root-cmd flag to allow installing as root
	* New --cabal-lib-version flag to select different Cabal lib versions
	* Support for HTTP proxies
	* Improved cabal list output
	* Build other non-dependent packages even when some fail
	* Report a summary of all build failures at the end
	* Partial support for hugs
	* Partial implementation of build reporting and logging
	* More consistent logging and verbosity
	* Significant internal code restructuring

0.4 Duncan Coutts <duncan@haskell.org> Oct 2007
	* Renamed executable from 'cabal-install' to 'cabal'
	* Partial Windows compatibility
	* Do per-user installs by default
	* cabal install now installs the package in the current directory
	* Allow multiple remote servers
	* Use zlib lib and internal tar code and rather than external tar
	* Reorganised configuration files
	* Significant code restructuring
	* Cope with packages with conditional dependencies

0.3 and older versions by Lemmih, Paolo Martini and others 2006-2007
	* Switch from smart-server, dumb-client model to the reverse
	* New .tar.gz based index format
	* New remote and local package archive format
