This PR migrates everything to Scala 3 (no cross building for 2.13). My initial goal was to cross build, but I decided we wouldn't lose much by not supporting Scala 2.13 and it is simpler to only support Scala 3.
I only changed what was necessary to compile without warnings. There are more things that will need to be changed for the future (compile with -source:future-migration). I did not change things to use Scala 3 features unless it helped fix issues.
Larger changes:
I reimplemented everything using Scala reflection with Java reflection and added tests.
Sample became an opaque type so I could reimplement the SampleOps implicit class as extension methods. For reasons I don't understand the implicit class didn't work anymore. This changed how Sample was used in a few places.
Pureconfig auto derivation doesn't work on Scala 3, so I manually implemented the ConfigReaders and added tests.
This PR migrates everything to Scala 3 (no cross building for 2.13). My initial goal was to cross build, but I decided we wouldn't lose much by not supporting Scala 2.13 and it is simpler to only support Scala 3.
I only changed what was necessary to compile without warnings. There are more things that will need to be changed for the future (compile with
-source:future-migration
). I did not change things to use Scala 3 features unless it helped fix issues.Larger changes:
Sample
became an opaque type so I could reimplement theSampleOps
implicit class as extension methods. For reasons I don't understand the implicit class didn't work anymore. This changed howSample
was used in a few places.ConfigReader
s and added tests.