-
Notifications
You must be signed in to change notification settings - Fork 55
Description
We have decided to transition to using the JaCoCo agent for Kotlin Coverage.
As part of this change, the current IntelliJ agent, used in the existing Kover Gradle and Maven plugins as well as the CLI, will be deprecated.
This will be carried out as part of the transformation of Kover from a separate plugin into a part of Kotlin.
Motivation
Over time, IntelliJ agent differs less and less from JaCoCo and after supporting inline functions, the JaCoCo agent will be equivalent to the IntelliJ agent in its set of capabilities.
It doesn't make sense to support two different agents with different infrastructure and incompatible execution file formats.
Using another agent forces to use incompatible tools (like reporter and plugins), change build scripts and plugins and pipelines on CI.
Instead of providing alternatives with mandatory migration to products with a different workflow, we decided to integrate as much as possible with an existing and proven product, while adding additional features that will improve the experience with Kotlin.
Changes in approach
- The JaCoCo agent will replace the IntelliJ agent
- XML reports will generating using the JaCoCo distribution
- JaCoCo HTML report will be generating via the JaCoCo distributive
Migration to Kotlin Gradle Plugin
Migrated functionality should only use only the JaCoCo agent.
Following Kotlin-specific changes
- a Kotlin-specific HTML report generator will be built on top of the JaCoCo agent
- a Kotlin Coverage report for exporting data will be built on top of the JaCoCo agent
- these reporters will also consume execution files generated by the JaCoCo agent
- these reporters will be distributed separately in the form of CLI and kotlin JVM dependency
- if necessary, we will create a fork of JaCoCo to implement bug fixes or add features specific to Kotlin. To prevent agents from starting to disperse, we are simultaneously creating a PR in JaCoCo so that these changes become available to the entire community