Tofu 0.10.4
Changes
CE2 & CE3 support
This is a first release with a partial support of Cats Effect 3.
Nevertheless, the support of Cats Effect 2 is still here due to the new concept called Carriers
. In short there is a macro that will use the correct instances for the tofu
typeclasses depending on the version of cats-effect-interop module.
Note that IntelliJ IDEA could possibly show some false errors when using this new concept.
Sadly, tofu doesn't fully support CE3 yet: some of the typeclasses (mostly concurrent ones) are still in progress of migrating.
New packages
There is the new cats-effect-free package tofu-kernel
, along with tofu-core
& tofu-core3
which work with CE2 & CE3 respectively.
So if you are using cats-effect-3 in your app, then add "tf.tofu" %% "tofu-core3" % "0.10.4"
in your deps, and for CE2 users nothing changes: tofu-core
works just fine.
Kernel now also has an important typeclass Delay
which is able to delay some computation (like the part of Sync without Monad and such).
Many of the old packages (such as logging ones) are now cats-effect-free too, so you can use them with whatever runtime you want.
🚀 Features
- Better documentation for logging @FunFunFine (#731)
- Kernelize agent @FunFunFine (#740)
- Introduce
tofu-doobie-logging
,examples
and improve doobie example @FunFunFine (#724) - add causeWith logging interpolators @vilunov (#730)
- Switch context syntax to With* typeclasses @catostrophe (#726)
- Kernel Interop for CE3 @Odomontois (#720)
- Add collections and parallel syntax @Odomontois (#723)
- Move catsmtl interop @Ssstlis (#719)
- present Time & Clock in kernel @Odomontois (#711)
- Move logging to kernel-only dependency @Odomontois (#710)
- Kernelize Atom and QVar @Odomontois (#709)
- Add CalcM.tailrecEither @Odomontois (#712)
🐛 Bug Fixes
- Fix tapError signature in EnvBio @Paulymorph (#735)
- Fix QVar implementation for MVar-less runtime @Odomontois (#722)
- lower priority of zioTofuErrorsToInstance @Odomontois (#713)
🧰 Maintenance
- Update scalafmt-core to 3.0.3 @scala-steward (#752)
- Update scalafmt-core to 3.0.2 @scala-steward (#748)
- Update groovy to 3.0.9 @scala-steward (#750)
- Update logback-classic to 1.2.6 @scala-steward (#751)
- Update kind-projector to 0.13.2 @scala-steward (#749)
- Update sbt-sonatype to 3.9.10 @scala-steward (#744)
- Update kind-projector to 0.13.1 @scala-steward (#745)
- Update mdoc, sbt-mdoc to 2.2.23 @scala-steward (#746)
- Update zio to 1.0.11 @scala-steward (#742)
- Update sbt-scalafix to 0.9.30 @scala-steward (#739)
- Update sbt-sonatype to 3.9.9 @scala-steward (#738)
- Update sbt-github-actions to 0.13.0 @scala-steward (#737)
- Update sbt-updates to 0.6.0 @scala-steward (#733)
- Update cats-effect to 2.5.3 @scala-steward (#734)
- Update zio to 1.0.10 @scala-steward (#728)
- Update cats-effect to 2.5.2 @scala-steward (#729)
- Update logback-classic to 1.2.5 @scala-steward (#725)
- Update mdoc, sbt-mdoc to 2.2.22 @scala-steward (#721)
- Update slf4j-api to 1.7.32 @scala-steward (#717)
- Update refined to 0.9.27 @scala-steward (#715)
- Update logback-classic to 1.2.4 @scala-steward (#714)