sageserpent-open / americium

Generation of test case data for Scala and Java, in the spirit of QuickCheck. When your test fails, it gives you a minimised failing test case and a way of reproducing the failure immediately.
MIT License
15 stars 1 forks source link

Support multiple versions of Scala in the build. #13

Closed sageserpent-open closed 2 years ago

sageserpent-open commented 3 years ago

What it says on the tin.

sageserpent-open commented 2 years ago

Really feeling the need for this now!

sageserpent-open commented 2 years ago

Tried to bring in support for Scala 2.12.13 - although there is a compatibility library to back-port things like LazyList and Factory, plus some other bits of syntax glue, there was just too much effort required - not sure if this is ever going to be feasible without having to write whole chunks of code to do essentially exactly the same thing as the Scala 2.13 form.

Going in the other direction to support Scala 3.1.0 revealed that the Scalamock library seems to be sticking with Scala 2.12 for now, Magnolia has been migrated, but Mercator hasn't. A whole load of compiler errors in addition leads me to think we have a Python 2.2 versus 2.7 versus 3 situation here.

sageserpent-open commented 2 years ago

For now, unless there is some demand one way or another, I'm going to stick with just Scala 2.13. As my current use is largely from Java, which doesn't concern itself with the particular Scala version, I have scant motivation to port in either direction.

I'm going to put this on indefinite hold as a won't-fix until more libraries are supported in Scala 3, and there is demand for such a port. I'm hoping that as a Scala 2.13 library, it can be consumed by Scala 3 code with the likely exception of the Magnolia derivation support - may just cutover to Shapeless if necessary.

A backport to Scala 2.12 is unlikely, as this is a new library, so adopters are likely to be Java or Scala 2.13/3 folk.

sageserpent-open commented 2 years ago

As work on #34 has been quite successful, this issue has been revisited, and there is now a cross build for Scala 2.13 and Scala 3. I'm not convinced that Scala 2.12 can be supported, unless it has acquired the "-Xsource:3" mode that Scala 2.13 has.

sageserpent-open commented 2 years ago

Merged on to master, the first cross release is 1.2.2, commit 29a3a3075d7b303cc325cfe8fa7b29296657b312.