scalalandio / chimney

Scala library for boilerplate-free, type-safe data transformations
https://chimney.readthedocs.io
Apache License 2.0
1.17k stars 94 forks source link

Internal code refactor and API simplicifaction #239

Closed MateuszKubuszok closed 1 year ago

MateuszKubuszok commented 1 year ago

Currently, the internals got complicated and hard to maintain. If we want to be able to support this library certain simplifications and refactoring will be necessary.

For version 0.7.0 we might provide API necessary to unblock the simplifications:

Major work for partial transformers is being done in https://github.com/scalalandio/chimney/pull/235 while benchmarks were kicked-off in https://github.com/scalalandio/chimney/pull/226.

For following versions (possibly 0.8.0):

Migration for DSL-related macros was researched in https://github.com/jchyb/chimney/tree/scala-3-migration while ways of sharing logic between macros and internal structure for macro errors aggregation was researched in https://github.com/MateuszKubuszok/pipez.

Incorporating these findings would unblock https://github.com/scalalandio/chimney/issues/201 and this issue will be used to trace work preceding #201.

Currently planned work:

krzemin commented 1 year ago

migrate tests to MUnit to unblock S3

It may no longer be a blocker: utest supports scala 3 since 0.7.10: https://github.com/com-lihaoyi/utest#changelog

MateuszKubuszok commented 1 year ago

Done on #320