Git Gradle Plugins
Reduce Declared Dependencies
Section titled “Reduce Declared Dependencies”Release omitted due to deployment error
Shade Dependencies
Section titled “Shade Dependencies”Dependencies are now shaded to allow the GitHub plugin to be used on a shared classpath without version conflicts.
Downgrade GitHub Api Dependency
Section titled “Downgrade GitHub Api Dependency”Revert upgrade due to potential classpath issues.
Remove Check run Link
Section titled “Remove Check run Link”Previous releases added a link to pitest to the GitHub check run, however for some repository configurations the link was displayed against each mutant implying it contained mutant specific information.
To avoid this confusing behaviour, the link is no longer set.
Upgrade GitHub Api Dependency
Section titled “Upgrade GitHub Api Dependency”Bug Fix: Error Serializing Config Cache
Section titled “Bug Fix: Error Serializing Config Cache”On some versions of Java, gradle was unable to serialize the arcmutate tasks when the configuration cache was enabled.
Trailing / in GitHub API URL
Section titled “Trailing / in GitHub API URL”If a trailing ‘/’ was included in the configured URL for GitHub the plugin previously failed when authenticating. URLs both with and without trailing ‘/’ are now supported.
Switch Maven Central Publishing
Section titled “Switch Maven Central Publishing”This release moves Arcmutate to Sonatype’s new publishing infrastructure. It contains no functional changes.
Enhancement: Configurable Bitbucket Report Keys
Section titled “Enhancement: Configurable Bitbucket Report Keys”The title and key for Bitbucket Code Insights reports can now be explicitly set. This allows multiple reports to be produced by different pipelines without them overwriting each other.
Note, this release requires pitest 1.19.0 or above.
Enhancement: Mutation Links
Section titled “Enhancement: Mutation Links”Links to additional information about mutations will now be included in mutant descriptions for the following providers
- BitBucket
- Gitlab
This behaviour is enabled by default, but can be disabled using a provider specific flag.
Bug Fix: BitBucket Data Center Base URL
Section titled “Bug Fix: BitBucket Data Center Base URL”Previously, the bitbucket.url parameter could not be set in a way that worked for both the comment and Code Insights api.
The URL should now be set to
If the URL has been set to
The comments api will continue to work with this release, but the configuration will need to be updated in order to use the Code Insights api.
Enhancement: Bitbucket Code Insights Support
Section titled “Enhancement: Bitbucket Code Insights Support”Arcmutate now supports two modes of uploading mutation testing results to Bitbucket Cloud and Data Centre instances.
Results can be uploaded as comments as before, or as a Code Insights report via new gradle tasks.
Breaking Change: Default To Access Token For Self Hosted Bitbucket
Section titled “Breaking Change: Default To Access Token For Self Hosted Bitbucket”For consistency with other plugins, all bitbucket-server tasks now default to using access tokens when authenticating. If you wish to use an App Password, the useAppPassword property must be explicitly set to true.
Bug Fix: Declare Common Code As Dependency
Section titled “Bug Fix: Declare Common Code As Dependency”The ‘common’ module used by the various plugin implementations is now declared as a transitive dependency, so it no longer needs to be explicitly declared in user build scripts.
Enhancement: Gitci File Format Changes
Section titled “Enhancement: Gitci File Format Changes”This release adds support for the changes made to the gitci file format in release to of the pitest git plugin.
It is incompatible with earlier version of the pitest git plugin.
Bug Fix: Integer Overflow for GitLab
Section titled “Bug Fix: Integer Overflow for GitLab”The mergeRequest id was previously incorrectly typed as an int, causing an overflow for teams with large numbers of builds.
This is now correctly typed as a long. This change may require updates to existing build scripts.
Bug Fix: Errors with Gradle < 8.2
Section titled “Bug Fix: Errors with Gradle < 8.2”Older versions of gradle throw errors in the 1.2.0 release due to the inclusion of a multi release jar dependency. Gradle was attempting to scan all classes in the jar using a version of ASM that did not support recent bytecode versions.
When upgrading, the pitest-git-plugin should also be upgraded to 1.3.1.
Requires pitest 1.16.0 or above and pitest-git-plugin 1.3.0 or above
Breaking Change: Extend Internal Json Format
Section titled “Breaking Change: Extend Internal Json Format”The simplified Json output from which pull request summaries are generated is expanded in this release to include additional data. The files previously took the form of simple arrays, they are now Json objects.
Although the Json file format is an undocumented internal implementation detail, it is possible that teams have created build steps based on it. These will need to be updated when upgrading.
As both the gradle plugin and the git plugin access this json file, the two must be upgraded at the same time.
Enhancement: Report Build Issues
Section titled “Enhancement: Report Build Issues”Build issues reported by pitest and its plugins are now displayed on pull request summaries. This includes notifications of licence expiry.
Enhancement: Remove Use of Deprecated Gradle Method
Section titled “Enhancement: Remove Use of Deprecated Gradle Method”The plugins no longer use the deprecated getBuildDir method.
Known Issue With Gradle < 8.2
Section titled “Known Issue With Gradle < 8.2”Gradle 8.2 or above is required to use this release due to a bug in earlier versions, which attempt to scan all class files within multi release jars. The scan fails when gradle encounters classes compiled for versions of Java more recent than its embedded version of ASM supports.
We will attempt to work around this issue in a future release.
Enhancement: Bitbucket Cloud Access Tokens
Section titled “Enhancement: Bitbucket Cloud Access Tokens”Previous released supported authenticating with Bitbucket cloud only via app passwords. By default, the maven plugin now expects an access token to be supplied in the bitbucket.token field.
App passwords are still supported, but discouraged. To use an app password the parameter bitbucket.useAppPassword must bet set to true.
A configuration change must therefore be made when upgrading
When an access token is used to authenticate, the bitbucket.user parameter no longer needs to be set. This parameter is required only when using app passwords.
Relocate Maven Co-ordinates
Section titled “Relocate Maven Co-ordinates”This release moves the plugins to com.arcmutate. Previous releases were published as com.groupcdg.
1.0.7 Enhancement: Support Deletion of Resolved Comments
Section titled “1.0.7 Enhancement: Support Deletion of Resolved Comments”Arcmutate now supports deleting Bitbucket server comments that have been marked as resolved by a user. Previously these read-only comments were left in place.
Bug Fix: Do No Error for Resolved Comments
Section titled “Bug Fix: Do No Error for Resolved Comments”Recent versions of Bitbucket server allow comment threads to be marked as resolved and placed in a read only state. If a user resolved a comment created by Arcmutate, the plugin threw an error when attempting to delete or update the resolved comment.
Enhancement: Optionally Create Tasks on Bitbucket Server
Section titled “Enhancement: Optionally Create Tasks on Bitbucket Server”When the gitci level is set to error, mutations will now be created as tasks on bitbucket server.
Enhancement: Retain Outdated Mutant Descriptions
Section titled “Enhancement: Retain Outdated Mutant Descriptions”For Bitbucket server, when a mutation comment cannot be deleted due to replies, the original text will now be retained when marking the comment as outdated.
Enhancement: Report Number of Covering Tests
Section titled “Enhancement: Report Number of Covering Tests”Previously the pull request integrations reported the number of tests run against each mutant. This did not work well when a history file was also used, as the number of executed tests would be zero after the first analysis if the code and tests around a mutant were not changed.
The number of covering tests for each mutant is now reported instead. This is a stable figure, even when a history file is in use, and arguably more useful information to be presented with when assessing a surviving mutant.
Bug Fix: Correct Input Annotation for Gradle 8
Section titled “Bug Fix: Correct Input Annotation for Gradle 8”Use of @Input annotation on RegularFilePropertyt is an error when using gradle 8 and above.
Bug Fix: Broken Table For Bitbucket Server
Section titled “Bug Fix: Broken Table For Bitbucket Server”When all mutations were killed, the table failed to render correctly on bitbucket server which requires additional whitespace in the markdown.
Bug Fix: Handle Comments With Replies
Section titled “Bug Fix: Handle Comments With Replies”Comments with replies cannot be deleted on BitBucket Server, which could cause the plugin to fail when updating an MR (BitBucket cloud is unaffected).
The plugin will now replace the contents of comment that cannot be deleted with a fixed message.
Enhancement: Delete Summaries In GitHub
Section titled “Enhancement: Delete Summaries In GitHub”Adds the option to delete past summary comments in GitHub PRs. This is controlled by a new deleteOldSummaries parameter which defaults to false.
Enhancement: Explicit Pitest Report Paths
Section titled “Enhancement: Explicit Pitest Report Paths”A new optional parameter has been introduced for all git integrations. This allows the directories in which the plugin looks for output files to be set explicitly. When set this override the default behaviour of seaching the output directories of tasks named pitest.