# ChangeLog / ReleaseNotes


## Version 0.2.1

* Relaxed upper bound on base to include version 4.9.\*.
* Relaxed bounds for [data-default-class][] to include 0.1.\*.
* Getting rid of compilation warnings on GHC 8 and when compiled with pedantic
  flag.
* Uploaded to [Hackage][]:
  <http://hackage.haskell.org/package/connection-pool-0.2.1>


## Version 0.2

* Release has backward compatible API with 0.1 branch.
* Introducing `ConnectionPoolFor` type class which has instances for both
  `ConnectionPool TcpClient` and `ConnectionPool UnixClient`. Class is located
  in its own module `Data.ConnectionPool.Class`, therefore it is part of stable
  API. It provides `withConnection` and `destroyAllConnections` methods which
  can be used instead of their more specific equivalents. (**new**)
* `ConnectionPool` data family moved in to its own module
  `Data.ConnectionPool.Family`, as a consequence it became part of stable API.
  (**change**)
* Introducing `tryWithUnixClientConnection` and `tryWithTcpClientConnection`
  functions. (**new**)
* Providing instances of `Generic` and `Show` where ever possible and
  reasonable. This is a backwards compatible change. (**new**)
* Internal `ConnectionPool` data type is now more generic because `Socket`
  handle isn't hard-coded in it any more. This change breaks packages depending
  on internal API. (**change**)
* Internal type class `HasConnectionPool` was introduced to simplify access to
  `ConnectionPool` data type wrapped in other types. (**new**)
* Internal modules were heavily reorganized and TCP and UNIX Sockets related
  implementations were moved in to their own modules. This change breaks
  packages depending on internal API. (**change**)
* Heavy inlining of everything. Purpose is to be safe that this library gets
  abstracted away as much as possible. Best result is if only direct references
  to [resource-pool][] and [streaming-commons][] remain. (**change**)
* Uploaded to [Hackage][]:
  <http://hackage.haskell.org/package/connection-pool-0.2>


## Version 0.1.3

* All lenses are now defined as strict, as a consequence lower bound of
  [between][] is now `0.10.0.0` instead of `0.9.0.0`. (**change**)
* Support for user defined read buffer size, this was introduced in
  [streaming-commons][] `== 0.1.13`. Non-internal library API is backwards
  compatible. (**new**)
* Default buffer size changed in [streaming-commons][] `== 0.1.13` to 32kiB,
  this library uses this value as a default even if it's built with
  [streaming-commons][] `< 0.1.13`. For more details see
  <https://github.com/fpco/streaming-commons/issues/22>. (**change**)
* Uploaded to [Hackage][]:
  <http://hackage.haskell.org/package/connection-pool-0.1.3>


## Version 0.1.2.1

* Builds also with [streaming-commons][] `>0.1.5 && <0.1.14`. Tested up to
  [streaming-commons][] version 0.1.13. See also issue #1
  <https://github.com/trskop/connection-pool/issues/1> (**bugfix**)
* Uploaded to [Hackage][]:
  <http://hackage.haskell.org/package/connection-pool-0.1.2.1>


## Version 0.1.2.0

* Builds with GHC 7.10 and base 4.8. (**new**)
* Builds also with [streaming-commons][] `>0.1.5 && <0.1.13`. Tested up to
  [streaming-commons][] version 0.1.12.1. (**new**)
* Uploaded to [Hackage][]:
  <http://hackage.haskell.org/package/connection-pool-0.1.2.0>


## Version 0.1.1.0

* Package is now buildable on Windows. (**new**)
* Introducing function `validateResourcePoolParams`. (**new**)
* Introducing internal function `destroyAllConnections`. (**new**)
* Introducing functions `destroyAllTcpClientConnections` and
  `destroyAllTcpClientConnections` both build on top of
  `destroyAllConnections`. (**new**)
* Corrected some typos in documentation and Haddock markup.
* Small documentation enhancements.
* Uploaded to [Hackage][]:
  <http://hackage.haskell.org/package/connection-pool-0.1.1.0>


## Version 0.1.0.0

* First public release.
* Uploaded to [Hackage][]:
  <http://hackage.haskell.org/package/connection-pool-0.1.0.0>



[between]:
  http://hackage.haskell.org/package/between
  "Function combinator 'between' and derived combinators."
[data-default-class]:
  http://hackage.haskell.org/package/data-default-class
  "Default type class provides a default value (def) of a type."
[Hackage]:
  http://hackage.haskell.org/
  "HackageDB (or just Hackage) is a collection of releases of Haskell packages."
[resource-pool]:
  http://hackage.haskell.org/package/resource-pool
  "A high-performance striped pooling abstraction for managing resources."
[streaming-commons]:
  http://hackage.haskell.org/package/streaming-commons
  "Low-dependency functionality commonly needed by various streaming data libraries"