Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate running Stryker4s process separately from sbt #1342

Open
hugo-vrijswijk opened this issue May 16, 2023 · 0 comments
Open

Investigate running Stryker4s process separately from sbt #1342

hugo-vrijswijk opened this issue May 16, 2023 · 0 comments

Comments

@hugo-vrijswijk
Copy link
Member

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant