Scanamo 1.0.0-M12
Notable changes
Hello Magnolia
This milestone introduces a major change by removing Shapeless. Generic derivation is now done with Magnolia instead. Magnolia gives us the ability to have more information about data types and handle more uses cases that were not covered before. Right off the bat, Scanamo now respects default values for class members, an oft-requested feature.
As a side note, the new meta-programming features coming in Dotty are really exciting. The macro framework is much cleaner and more principled, and the multi-stage paradigm opens up the possibility of creating a new meta-language akin to what is describe in the paper "Everything old is new again: Quoted Domain Specific Languages" by Wadler et al.
It is not impossible that Shapeless will make its way back in the future, but if it does it will be secluded to a scanamo-generic-advanced
package.
First stab at transactions
DynamoDB has been supporting transactions for a while now, and I'm happy that Scanamo can now perform multiple puts in a single transaction. There's more to come!
Experiment with Table#put
The type of Table#put
changed to A => F[Unit]
, this matches people's expectations. There's now Table#putAndReturn : A => F[Option[A]]
which allows one to ask for getting either the old or the new item back, which may be useful sometimes.
Updates
By contributors
- Update sbt-microsites by @regiskuckaertz
- Add bloop plugin by @regiskuckaertz
- Transactional writes by @semenodm
- Update scalatest to 3.1.0 by @regiskuckaertz
- Update scalafmt-core by @regiskuckaertz
- Use zio stream provided instances by @regiskuckaertz
- Update scalafmt to v2.2.2 by @regiskuckaertz
- Generic derivation with Magnolia by @regiskuckaertz
By scala-steward
- Update sbt-header to 5.4.0
- Update magnolia to 0.12.6
- Update magnolia to 0.12.5
- Update sbt-ci-release to 1.5.0
- Update sbt to 1.3.6
- Update scalacheck to 1.14.3
- Update sbt to 1.3.5
- Update sbt-scalafmt to 2.3.0
- Update zio-interop-cats to 2.0.0.0-RC10
- Update zio-interop-cats to 2.0.0.0-RC9
- Update sbt to 1.3.4
- Update sbt-scoverage to 1.6.1
- Update zio-interop-cats to 2.0.0.0-RC8
- Update zio, zio-streams to 1.0.0-RC17
- Update monix to 3.1.0
- Update fs2-core to 2.1.0
- Update zio-interop-cats to 2.0.0.0-RC7
- Update zio, zio-streams to 1.0.0-RC16
- Update joda-time to 2.10.5
- Update sbt-scalafmt to 2.2.1
- Update sbt-scalafmt to 2.2.0
- Update scalafmt-core to 2.2.1
- Update scalafmt-core to 2.2.0
- Update zio, zio-streams to 1.0.0-RC15
- Update sbt to 1.3.3
- Update scalafmt-core to 2.1.1
- Update sbt-scalafmt to 2.0.7
- Update akka-stream-alpakka-dynamodb to 1.1.2
- Update zio-interop-cats to 2.0.0.0-RC5
- Update zio, zio-streams to 1.0.0-RC14
- Update sbt-microsites to 0.9.7
- Update tut-plugin to 0.6.13
- Update scalafmt-core to 2.1.0
- Update sbt-scalafmt to 2.0.6
- Update scalacheck to 1.14.2
- Update sbt-microsites to 0.9.6
- Update zio-interop-cats to 2.0.0.0-RC4
- Update sbt-ci-release to 1.4.31