Releases: szpak/gradle-pitest-plugin
1.19.0-rc.3 - improved additional classpath inputs mapping
- 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
pitesttask - #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.
useClasspathFileis enabled by default. It should not be a problem in the majority of cases, but still can be disabled explicitly with:
pitest {
useClasspathFile = false
}- The
pitesttask no longer explicitly depends on tasks related totestSourceSets. It should be no longer necessary with #387 merged. In case of new failures, consider adjusting theadditionalClasspathproperty.
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
- 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
- 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:
- Automatic releasing from CI to Maven Central and Gradle Plugins (as previously used CDeliveryBoy is not compatible with Gradle 7+).
- 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
- Automatically add
junit-platform-launcherdependency totestRuntimeOnlyfor 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
- Support for thresholds in aggregated metrics (requires PIT 1.9.9+) - #319 - PR by pfoerd
- Support for
verbosityflag, "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
verboseflag -verbosityis much more versatile, especially when used from the Gradle plugin
Compatibility notes
- Due to the usage of the "verbosity" flag by default, the minimal supported PIT version is 1.7.1 (released 2021-09-29).
- 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
- PIT 1.9.4 by default (requires pitest-junit5-plugin 1.0.0!)
- Deprecate support for JDK 8 - #299
- Support for
inputEncodingandoutputEncoding(named in plugininputCharsetandoutputCharset) - #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)
dependencyDistanceconfiguration parameter removed in PIT 1.9.0 - #311
Compatibility notes
- 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).
- 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
- Do not pass
--testPluginfor PIT 1.6.7+ for forward compatibility - #277 - Deprecate
testPluginconfiguration 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:
- The
testPluginconfiguration 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 setjunit5PluginVersionto use the JUnit 5 plugin). In addition, that property is planned to be removed in PIT 1.8.0. - Using
junit5PluginVersionno longer internally settestPluginproperty. For using with old PIT (<1.6.7) it is required to set it explicitly in configuration.
1.7.0
- 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
maxMutationsPerClassconfiguration 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:
- Gradle 6.4+ is required (to fix deprecation warnings in Gradle 7)
- 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). - 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
- 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
mutateStaticInitsandincludeJarFiles
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
- 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