doobie v0.10.0-M2 Release Notes
Release Date: 2020-12-06 // about 4 years ago-
Scala 3
This release adds support for Scala 3.0.0-M2. It will remain a milestone version until all library dependencies are non-milestones.
Differences between Scala 2 and Scala 3 versions
- ๐ The
postgres-circe
,quill
,scalatest
, andspecs2
modules are not yet available for Scala 3, pending releases of upstream dependencies. - Shapeless is not used in the Scala 3 version. Instances are derived via
Tuple
andProduct
rather thanHList
andGeneric
. - ๐
Get
andPut
instances cannot be derived for unaryAnyVal
s in Scala 3. See lampepfl/dotty#7023
Global Changes
Most end users should note:
- ๐ฆ The
enum
package has been renamedenumerated
. For Scala 2 users anenum
object remains behind as a bridge. - ๐ Deprecated JDBC and Postgres Driver methods have been removed from the Free APIs.
Advanced users should note:
- doobie no longer relies on
TypeTag
, it usesTypeName
instead. - Line number macros have been internalized; there is no longer a dependency on
lihaoyi/sourcecode
.
Contributors should note:
- โ Tests have been migrated from specs2 to MUnit.
- ๐ The
Previous changes from v0.8.8
-
This is a follow-up to 0.8.7 which caused some runtime failures due to a change in the way the
java.time.Instant
mapping was defined. Mappings for temporal types now require an explicit import.๐ฆ | Defining Package | Import | | --- | --- | |
java.sql
|import doobie.implicits.javasql._
| |java.time
(JSR-310) |import doobie.implicits.javasql._
|Prior to v0.8.7 there were instances for
Instant
andLocalDate
that were derived via thejava.sql
typesTimestamp
andDate
, respectively. These are now hidden, but if you want the old behavior you can import them.Legacy Instance Import Instant
i mport doobie.implicits.legacy.instant._
LocalDate
import doobie.implicits.legacy.localdate._
Thanks to Andras Zsamboki for sorting this out.
โ Additional contributions:
- ๐ Quill logging now works with doobie. Logs go to a logger called
"DoobieContext"
which can be enabled as described in the Quill documentation. - There is a new trivial example in the
example/
module demonstrating a no-op interpreter.
- ๐ Quill logging now works with doobie. Logs go to a logger called