You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently, the sbt plugin runs directly inside sbt. This means the classpath is shared with all other sbt plugins (and Scala itself). This can cause classpath conflicts when another plugin uses an incompatible version of the same dependency as Stryker4s does. It also means that the plugin is locked to Scala 2.12, which is what sbt plugins use. The Scala ecosystem is moving away from 2.12, and more and more libraries are starting to drop 2.12 support with new versions.
Possible solution
It should be possible to start a new process inside the sbt plugin, which is possible for actually running Stryker4s. This plugin would have its own jvm classpath, freeing Stryker4s from any dependency conflict, and allowing us to run any Scala version we want (even Scala 3).
Another option might be to give the plugin its own classloader. The advantage of this is not having to start and manage a new process, and communication between sbt and stryker4s would be simpler (java interfaces).
Problem
Currently, the sbt plugin runs directly inside sbt. This means the classpath is shared with all other sbt plugins (and Scala itself). This can cause classpath conflicts when another plugin uses an incompatible version of the same dependency as Stryker4s does. It also means that the plugin is locked to Scala 2.12, which is what sbt plugins use. The Scala ecosystem is moving away from 2.12, and more and more libraries are starting to drop 2.12 support with new versions.
Possible solution
It should be possible to start a new process inside the sbt plugin, which is possible for actually running Stryker4s. This plugin would have its own jvm classpath, freeing Stryker4s from any dependency conflict, and allowing us to run any Scala version we want (even Scala 3).
Another option might be to give the plugin its own classloader. The advantage of this is not having to start and manage a new process, and communication between sbt and stryker4s would be simpler (java interfaces).
See also the discussion here: sbt/sbt#5569
The text was updated successfully, but these errors were encountered: