Skip to content

Releases: szpak/gradle-pitest-plugin

1.19.0-rc.3 - improved additional classpath inputs mapping

19 Jan 19:58
release/1.19.0-rc.3
fb635f0

Choose a tag to compare

  • Properly map additional classpath inputs to not lose task dependencies (also fix regression with "NoClassDefFoundError" in rc.2) - PR by Björn Kautler
  • Remove explicit "dependsOn" for pitest task - #388
  • Use classpath file in PIT by default (e.g. to avoid issues with long classpath on Windows) - #237 - PR by Dávid Szigecsán
  • PIT 1.22.0 by default
  • Improve badges in README

Compatibility notes.

  1. useClasspathFile is enabled by default. It should not be a problem in the majority of cases, but still can be disabled explicitly with:
pitest {
    useClasspathFile = false
}
  1. The pitest task no longer explicitly depends on tasks related to testSourceSets. It should be no longer necessary with #387 merged. In case of new failures, consider adjusting the additionalClasspath property.

Full list of changes: https://github.com/szpak/gradle-pitest-plugin/compare/release/1.19.0-rc.2..release/1.19.0-rc.3

Thanks to all the contributors to this release: @Vampire, @sigee, @luisgomez29.

1.19.0-rc.2 - Gradle 9 configuration cache compatibility

01 Oct 18:53
release/1.19.0-rc.2
18bc35a

Choose a tag to compare

  • pitestReportAggregate task is compatible with configuration cache in Gradle 9 - #381 - PR by Luis Guillermo Gómez Galeano
  • PIT 1.20.3 by default
  • Upgrade Gradle wrapper to 8.14.3

Full list of changes: https://github.com/szpak/gradle-pitest-plugin/compare/release/1.19.0-rc.1..release/1.19.0-rc.2

Thanks to all the contributors to this release: @luisgomez29.

1.19.0-rc.1 - support for modern Gradle and JDK

07 Jun 17:01
release/1.19.0-rc.1
e8dd7a1

Choose a tag to compare

  • Java 17 is minimal supported* version
  • Gradle 8.4 is minimal supported* version
  • PIT 1.19.5 by default
  • Ability to build and run with JDK 24
  • Initial support for Gradle 9 (no warnings with 9.0-m9)
  • Ability to override verbose from command line - #341 - PR by pfoerd
  • Define plugins in build.gradle instead of .properties files - #373 - PR by mitchellmebane
  • Added examples of using plugin with Kotlin DSL - #355 - PR by mfvanek
  • Upgrade Gradle wrapper to 8.14.2

Compatibility notes. Java 17+ and Gradle 8.4+ are the minimal supported versions.

PLEASE NOTE. This version is just a refreshed variant of 1.15.0, compatible with latest Gradle version (8.14/9.0). No PIT 1.19.0 features parity was developed.

Missing features:

  1. Automatic releasing from CI to Maven Central and Gradle Plugins (as previously used CDeliveryBoy is not compatible with Gradle 7+).
  2. Releasing also to Maven Central (not just only to Gradle Plugins).

Full list of changes: https://github.com/szpak/gradle-pitest-plugin/compare/release/1.15.0..release/1.19.0-rc.1

Thanks to all the contributors to this release: @Pfoerd, @mitchellmebane, @ThomGeG, @mfvanek.

1.15.0

28 Sep 19:17
release/1.15.0
74a43fa

Choose a tag to compare

  • Automatically add junit-platform-launcher dependency to testRuntimeOnly for JUnit Platform projects - #337 - help from Björn Kautler
  • Remove deprecated Project.getConvention() usage (in Gradle 8.2+) - #343
  • PIT 1.15.0 by default
  • Basic regression testing with Gradle up to 8.3

Compatibility notes
Starting with PIT 1.14.0 (with pitest-junit-plugin 1.2.0+) junit-platform-launcher is no longer shaded and has to be explicitly added to avoid:
"Minion exited abnormally due to UNKNOWN_ERROR" or "NoClassDefFoundError: org.junit.platform.launcher.core.LauncherFactory".

As an experimental (incubating) feature, junit-platform-launcher is automatically added to the testRuntimeOnly configuration for the JUnit Platform projects.

PLEASE NOTE. This feature is experimental and might not work as expected in some corner cases. In that situation, just disable it with addJUnitPlatformLauncher = false and add the required dependency 'junit-platform-launcher' in a proper version to 'testRuntimeOnly' manually. More information: #337

1.9.11

27 Nov 22:59

Choose a tag to compare

  • Support for thresholds in aggregated metrics (requires PIT 1.9.9+) - #319 - PR by pfoerd
  • Support for verbosity flag, "spinner" disabled by default - #267 - PR by Carsten Otto
  • PIT 1.9.11 by default
  • Do not produce timestamped reports by default for PIT 1.9.6+ - suggestion by Siddardha Bezawada
  • Minimal supported PIT version is 1.7.1 (due to "verbosity" flag used by default)
  • Deprecate verbose flag - verbosity is much more versatile, especially when used from the Gradle plugin

Compatibility notes

  1. Due to the usage of the "verbosity" flag by default, the minimal supported PIT version is 1.7.1 (released 2021-09-29).
  2. Due to the changes in PIT 1.9.6, timestamped reported are not generated by default (with PIT 1.9.6+). It still can be enforced in the GPP configuration.

1.9.0

19 Aug 20:39

Choose a tag to compare

  • PIT 1.9.4 by default (requires pitest-junit5-plugin 1.0.0!)
  • Deprecate support for JDK 8 - #299
  • Support for inputEncoding and outputEncoding (named in plugin inputCharset and outputCharset) - #310
  • Add pitest dependencies only during configuration resolution - #313 - PR by Ian O'Malley
  • Improve build cache hit cache with relative path - #315 - PR by Siddardha Bezawada
  • Remove (optional) dependencyDistance configuration parameter removed in PIT 1.9.0 - #311

Compatibility notes

  1. Due to the plugin API changes in PIT 1.9.0, the new pitest-junit5-plugin 1.0.0 is required (other PIT plugins - if used - also need to be upgraded).
  2. The plugin is released with JDK 11. Source/class compatibility is still set to JDK 8, but this might change without notice.

1.7.4

12 Mar 23:36

Choose a tag to compare

  • Do not pass --testPlugin for PIT 1.6.7+ for forward compatibility - #277
  • Deprecate testPlugin configuration parameter (not needed in PIT 1.6.7+, to be removed in PIT 1.8.0) - #277
  • PIT 1.7.4 by default
  • Upgrade Gradle wrapper to 6.9.2
  • Test for exclusion of certain mutators - #303 - PR by Narendra Pathai

Compatibility notes:

  1. The testPlugin configuration parameter is deprecated and should not be used. In fact, starting with 1.6.7 it is no longer used (it is enough to add the PIT plugin as a buildscript dependency or just set junit5PluginVersion to use the JUnit 5 plugin). In addition, that property is planned to be removed in PIT 1.8.0.
  2. Using junit5PluginVersion no longer internally set testPlugin property. For using with old PIT (<1.6.7) it is required to set it explicitly in configuration.

1.7.0

20 Sep 20:21

Choose a tag to compare

  • Support for Gradle configuration cache - #249 - PR by David Burstrom
  • Turn on cacheability for PitestTask - #67 - PR by David Burstrom
  • PIT 1.7.0 by default
  • Fix deprecation warnings in Gradle 7 - #283 - PR by Mike Duigou
  • Bump minimal supported Gradle version to 6.4 - required to fix deprecation warnings in Gradle 7
  • Remove unused maxMutationsPerClass configuration parameter - #266
  • Regression tests for JUnit Jupiter 5.8 (with JUnit Platform 1.8) and pitest-junit5-plugin 0.15
  • Upgrade Gradle wrapper to 6.9.1
  • Switch CI from defunct travis-ci.org to travis-ci.com

Compatibility notes:

  1. Gradle 6.4+ is required (to fix deprecation warnings in Gradle 7)
  2. Not directly related with this plugin, but keep in mind that JUnit Jupiter 5.8 (JUnit Platform 1.8) requires pitest-junit5-plugin 0.15+, while 5.7 (1.7) requires <=0.14. Set right plugin version for JUnit 5 version used in your project to avoid runtime errors (such as NoSuchMethodError: 'java.util.Optional org.junit.platform.commons.util.AnnotationUtils.findAnnotation(java.lang.Class, java.lang.Class, boolean)' - see #300).
  3. Due to the internal changes in PIT 1.7.0 (#630):
    • all history files should be deleted before upgrading
    • the names of the remove conditionals mutators have changed slightly (it might be needed to update their names in build.gradle, if activated explicitly)

1.6.0

04 Mar 23:38

Choose a tag to compare

  • Report aggregation for multi-project builds - #243 - PR by Mike Safonov
  • Support new configuration property testStrengthThreshold (PIT 1.6.1+) - #247 - PR by Michael Hönnig
  • PIT 1.6.3 by default
  • Regression tests also with Gradle 7 (milestone)
  • Upgrade Gradle wrapper to 6.8.3
  • Remove deprecated mutateStaticInits and includeJarFiles

Sample configuration for the new report aggregation feature:

//in root project configuration
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'info.solidsoft.gradle.pitest:gradle-pitest-plugin:...'
    }
}

apply plugin: 'info.solidsoft.pitest.aggregator' // to 'pitestReportAggregate' appear

subprojects {
    apply plugin: 'info.solidsoft.pitest'

    pitest {
        // export mutations.xml and line coverage for aggregation
        outputFormats = ["XML"]
        exportLineCoverage = true
        ...
    }
}

After the pitest pitestReportAggregate tasks execution, the aggregated report will be placed in the ${PROJECT_DIR}/build/reports/pitest directory.

1.5.2

18 Aug 17:16

Choose a tag to compare

  • Support java-test-fixtures plugin - #223 - PR by Piotr Kubowicz
  • PIT 1.5.2 by default
  • Add functional test with Spock 2 (using JUnit Platform)
  • Bump minimal supported PIT version to 1.4.0 - the first version which required Java 8 (May 2018)
  • Upgrade Gradle wrapper to 6.6