Skip to content

Releases: stryker-mutator/stryker4s

Stryker4s v0.13.0

11 Aug 22:15
v0.13.0
510dc4f
Compare
Choose a tag to compare

Welcome to Stryker4s v0.13.0!

Stryker4s is a mutation testing framework. It tests your tests by temporarily inserting small bugs, or mutants, into your production code. Your tests are run for each mutant. If your tests fail, then the mutant is killed. If your tests passed, the mutant survived. The higher the percentage of mutants killed, the more effective your tests are. See the website for more information.

This release changes how Stryker4s handles your source files in two ways. The first, it fixes a long-standing bug that caused Stryker4s to not work on Play Framework projects or other setups with mixed Java and Scala sources in the same location (#923). If you have a Play Framework project that did not work before, try this new release!

The second change is a large refactor in how Stryker4s handles source files (#929). All file I/O is now done using the amazing fs2 library. This gives Stryker4s more speed, lower overhead, more parallelism and 1 dependency that could be removed. Not only is Stryker4s now faster in the setup phase, it also has a much better way of finding your source files, using information from sbt by default. This means that in almost all cases, Stryker4s will work as expected without any setup needed for the mutate or files config options (this pairs very nicely with the fix for Play Framework 😎).

🚀 Features

🐛 Bugfixes

🧰 Maintenance

Stryker4s v0.12.2

22 Jul 15:17
3ddecfe
Compare
Choose a tag to compare

Stryker4s v0.12.1

19 May 18:56
b467533
Compare
Choose a tag to compare

🐛 Bugfixes

Stryker4s v0.12.0

17 May 11:54
aca2bb3
Compare
Choose a tag to compare

Welcome to Stryker4s v0.12.0. Wow what a big changelog!

Stryker4s is a mutation testing framework. It tests your tests by temporarily inserting small bugs, or mutants, into your production code. Your tests are run for each mutant. If your tests fail then the mutant is killed. If your tests passed, the mutant survived. The higher the percentage of mutants killed, the more effective your tests are. See the website for more information.

The main new feature in this release is the addition of concurrency for the sbt plugin. Until now, Stryker4s has done almost everything single-threaded. With this new feature, Stryker4s will start multiple testrunners to give a nice performance boost. Be careful with this feature: you can get worse performance if you set it too high! If you have questions about this feature, or want to share your experience for running Stryker4s with concurrency, be sure to drop a message!

This release also supports the newly released Scala 3, fixes a bug where timeouts would never actually time-out, and fixes a couple of parsing issues.

Go try it out now!

🚀 Features

🐛 Bugfixes

🧰 Maintenance

📖 Documentation

Stryker4s v0.11.3

09 Apr 07:30
d3b2126
Compare
Choose a tag to compare

The only change in this release is an upgrade to cats-effect 3. This does not impact functionality, but is a dependency update of Stryker4s. Because cats-effect 3 is not binary compatible with cats-effect 2, it's possible that Stryker4s v0.11.3 conflicts with another installed sbt plugin that also uses cats-effect but is not yet updated to cats-effect 3.

  • If you have other plugins installed that are still on cats-effect 2, updating is not recommended until those plugins are also up-to-date.
  • If you have no other plugins installed that have cats-effect as a dependency, or all your other sbt plugins are on cats-effect 3, feel free to upgrade.

v0.11.3 and future Stryker4s versions will all use cats-effect 3.

NOTE: This problem only occurs if your sbt plugins have a dependency on cats-effect 2.x. So direct dependencies of your project are still safe.

🧰 Maintenance

Stryker4s v0.11.2

31 Mar 14:52
f16f340
Compare
Choose a tag to compare

Update Scala 3 to 3.0.0-RC2 (#787)

Stryker4s v0.11.1

24 Mar 13:56
ec5e3b0
Compare
Choose a tag to compare

This release supports Scala 3.0.0-RC1. It also updates the HTML reporter to the new dark theme!

🚀 Features

🧰 Maintenance

Stryker4s v0.11.0

03 Feb 13:53
5bbe91e
Compare
Choose a tag to compare

Welcome to Stryker4s 0.11.0! The big feature in this release is a new kind of mutator: regular expressions (#699)! We're using the awesome Weapon regeX library to mutate regular expressions. If you're curious how this works, take a look at the demo page.

One other noteworthy change is in #696. To reduce maintenance and external dependencies in Stryker4s, the dashboard reporter will no longer work on JDK 10 or lower. If you are using the dashboard reporter on Java 10 or lower, Stryker4s will not upload your report and throw an exception. You won't run into this restriction when not using the dashboard reporter or if you are running Stryker4s on a recent JDK.

🚀 Features

🐛 Bugfixes

🧰 Maintenance

💥 Breaking change

Stryker4s v0.10.1

04 Jan 12:10
e84032b
Compare
Choose a tag to compare

🚀 Features

🐛 Bugfixes

🧰 Maintenance

📖 Documentation

Stryker4s v0.10.0

18 Dec 22:37
68ce385
Compare
Choose a tag to compare

Stryker4s is a mutation testing framework. It tests your tests by temporarily inserting small bugs, or mutants, into your production code. Your tests are run for each mutant. If your tests fail then the mutant is killed. If your tests passed, the mutant survived. The higher the percentage of mutants killed, the more effective your tests are. See the website for more information.

We are excited to release Stryker4s v0.10.0. If you haven't been following along, this is a big one! The sbt testrunner has been completely reworked to be a lot faster. So much faster I am not even sure how to put it into words! For perspective, running Stryker4s on itself took around 40 minutes on 0.9.2. On 0.10.0 it takes just a little over 2 minutes! This massive improvement is possible due to the new testrunner (#492), which is able to run your tests in rapid-fire without restarting any processes. We believe the Stryker4s sbt plugin is now fast enough for daily use, and probably even faster than some mutation testing frameworks in other languages! If performance has been keeping you from trying Stryker4s be sure to give it a try and let us know your results Slack.

Another big feature and performance boost since 0.10.0-RC3 is that coverage analysis is now supported (#666). Tests will now be skipped and reported as NoCoverage if no test hits that mutant. It also adds support for detecting 'static' mutants which has been an issue since the 0.10.0-RC releases.

Note that due to these changes it is very likely that your mutation score will be a little different than it was in 0.9.2!

Next up on the roadmap is further speed improvements by only running tests that a specific mutant covers, adding concurrent testrunners, and bringing these awesome speed improvements to the Maven plugin.

🚀 Features

🧰 Maintenance

📖 Documentation

  • docs(configuration): fancify the configuration docs (#642) @nicojs
  • docs(sidebar): add custom sidebar (#640) @nicojs