LTS? 7.9.3 JaCoCo .exec coverage not longer supported?

The latest point release (7.9.3) on the LTS line breaks the JaCoCo .exec coverage support, not just deprecates it, as was the case in the 7.9.1 release.

One of our development groups recently purchased a Developers Edition license for SonarQube. That involves reinstalling the tool, and since the 7.9.1 release of the Developers Edition was not readily available, it being a LTS line, I figured that we could just use the latest point release.

This is particularly an issue for TeamCity users, where the default JaCoCo plugin only creates the .exec format.

I thought the point of an LTS line was to avoid user visible changes, and this is most certainly a user
visible change.

From the LTS FAQ

I need a feature that was added after the LTS. Will it be backported?

Only fixes for Blocker bugs and vulnerabilities are backported to the LTS. One of the benefits of adopting the LTS is the guarantee of stability in features and user experience.

Hi,

Did you perhaps upgrade your Java analyzer? It (not the platform!) dropped support for the .exec format in 6.0.

 
HTH,
Ann

Yes, I had also applied the updates to the plugins, thinking that they were abiding by the same LTS concept. Particularly the plugins that are supplied by SonarSource.

I guess that my expectations of general stability around the LTS need some refinement.

It would be helpful if the actual plugin changes were not so buried as to make it difficult to assess the impact of applying the change. That being said, I will be much more hesitant to apply any updates.
In the meantime we will either be coding in a workaround to convert the .exec files to a .xml or rolling back the plugin to the 5.14 version .

1 Like

Hi Steven,

If you upgrade to SonarQube >= 8.2, or if you update the java analyzer to 6.1, the native format of JaCoCo (.exec) is not anymore supported. Providing to SonarQube 7.9 LTS the possibility to update the java analyzer up to 6.3, has been done to resolve some performance issues and at the same time introduces some breaking changes like the support of JaCoCo native format. Introducing breaking changes in an LTS is, of course, something that we don’t want. It leads us to completely rethink the way we will ship following SonarQube and language analyzer versions.

About JaCoCo coverage, we have a strong motivation to stop the support of JaCoCo .exec files. It’s a binary format that evolves, so staying compatible with all versions is too difficult.
I have no knowledge about how to generate the JaCoCo XML report using the default JaCoCo plugin provided by TeamCity, so I started this thread on TeamCity Community Forum:
Importing JaCoCo XML report into SonarQube>=8.2/SonarCloud

Hi @sconners,

Apparently, TeamCity JaCoCo plugin has been updated to automatically generate XML report to supply to SonarQube: TW-65441

My understanding of this comment is:

  • Using TeamCity 2020.1: TeamCity JaCoCo plugin automatically produces the XML report.
  • Using TeamCity 2019.1: A new JaCoCo plugin is available and needs to be installed to automatically produce the XML report.
  • The XML report path is .teamcity/coverage_jacoco/coverage.zip!jacocoReport.xml

This poses a big problem for our Company, since the the XML format is missing critical functionality that was available in the binary format. With the XML Format there is no reasonable way to consolidate coverage in multi module maven projects, as described in this open jacoco issue:

Is it possible to create exec and xml Format with jacoco?

Hi Tom,

One solution is to split the maven command in two:

$ mvn clean install
$ mvn jacoco:report sonar:sonar

The report is generated after all module tests, so you can merge all the coverage even with the XML format. (see: Jacoco XML format cannot work as good as the binary format for multi-module maven )

Hi Jan,

The exec format is always created, it’s a binary format. The xml format is generated from the exec format on demand by the jacoco:report goal.

1 Like