doobie v0.2.3 Release Notes

  • This release includes more performance work and some usability improvements, as well as documentation improvements here and there. This release should be source-compatible for most users, but is not binary compatible with 0.2.2 or any other release. Let me know if you run into source compatibilty problems. Special thanks to @mdmoss for build improvements, @fommil and @non for help with Sonatype, and everyone else for your continued interest and contributions!

    👌 Improvements:

    • doobie is now published on Sonatype and no longer requires a Bintray resolver.
    • The free modules now provide natural transformations of the form FooIO ~> Kleisli[M, Foo, ?] and Foo => FooIO ~> M, which should make life easier when using doobie with existing JDBC resources (your own Connection for example).
    • 🆕 New optimized column-vector reads and accumulators for IList and standard library collections via CanBuildFrom yield performance generally indistinguishable from raw JDBC. The Query/Query0 operations to, list, and vector are now very fast. Result handling via Process benefits to a lesser extent.
    • Composite instances are now available for shapeless record types.
    • Atom instances are now available for single-element product types (thanks @wedens and @refried).
    • DriverManagerTransactor now includes constructors corresponding to all getConnection methods on DriverManager.
    • 🐎 free algebras and interpreters have been re-implemented to use method dispatch rather than large match expressions, resulting in minor performance improvements throughout. This completes the work started in 0.2.2.
    • 👀 The sql interpolator now supports interpolated sequences for SQL IN clauses. See Chapter 5 for more information.
    • The book of doobie now includes a FAQ Chapter.
    • The example project now includes some PostgreSQL CopyManager examples (thanks @wedens).

    🛠 Big Fixes:

    • 🛠 The PostGIS dependency was pulling in unnecessary transitive dependencies that caused problems with sbt-assembly. This has been fixed.

    ⬆️ Upgrades:

    • ⚡️ Updated to Scala 2.11.7
    • ⚡️ Updated to shapeless 2.2.5
    • ⚡️ Updated to scalaz-stream 0.7.2a
    • ⚡️ Updated to specs2-core 3.6
    • ⚡️ Updated to tut 0.4.0 (build-time dependency only)
    • ⚡️ Updated to sbt 0.13.8 (build-time dependency only)
    • ⚡️ Updated to kind-projector 0.7.1 (build-time dependency only)