Skip to content

Releases: jacoco/jacoco

0.8.13

02 Apr 17:43
v0.8.13
78d5eff
Compare
Choose a tag to compare

New Features

  • JaCoCo now officially supports Java 23 and Java 24 (GitHub #1757, #1631, #1867).
  • Experimental support for Java 25 class files (GitHub #1807).
  • Calculation of line coverage for Kotlin inline functions (GitHub #1670).
  • Calculation of line coverage for Kotlin inline functions with reified type parameter (GitHub #1670, #1700).
  • Calculation of coverage for Kotlin JvmSynthetic functions (GitHub #1700).
  • Part of bytecode generated by the Kotlin Compose compiler plugin is filtered out during generation of report (GitHub #1616).
  • Part of bytecode generated by the Kotlin compiler for inline value classes is filtered out during generation of report (GitHub #1475).
  • Part of bytecode generated by the Kotlin compiler for suspending lambdas without suspension points is filtered out during generation of report (GitHub #1283).
  • Part of bytecode generated by the Kotlin compiler for when expressions and statements with nullable enum subject is filtered out during generation of report (GitHub #1774).
  • Part of bytecode generated by the Kotlin compiler for when expressions and statements with nullable String subject is filtered out during generation of report (GitHub #1769).
  • Part of bytecode generated by the Kotlin compiler for chains of safe call operators is filtered out during generation of report (GitHub #1810, #1818).
  • Method getEntries generated by the Kotlin compiler for enum classes is filtered out during generation of report (GitHub #1625).
  • Methods generated by the Kotlin compiler for constructors and functions with JvmOverloads annotation are filtered out (GitHub #1768).

Fixed bugs

  • Fixed interpretation of Kotlin SMAP (GitHub #1525).
  • File extensions are preserved in HTML report in case of clashes of normalized file names (GitHub #1660).

Non-functional Changes

  • JaCoCo build now uses Maven Wrapper and requires at least Maven 3.9.9 (GitHub #1708, #1707, #1681).
  • JaCoCo now depends on ASM 9.8 (GitHub #1862).
  • More context information when IllegalArgumentException occurs during reading of zip file (GitHub #1833).

0.8.12

02 Apr 16:21
v0.8.12
Compare
Choose a tag to compare

New Features

  • JaCoCo now officially supports Java 22 (GitHub #1596).
  • Experimental support for Java 23 class files (GitHub #1553).

Fixed bugs

  • Branches added by the Kotlin compiler for functions with default arguments and having more than 32 parameters are filtered out during generation of report (GitHub #1556).
  • Branch added by the Kotlin compiler version 1.5.0 and above for reading from lateinit property is filtered out during generation of report (GitHub #1568).

Non-functional Changes

  • JaCoCo now depends on ASM 9.7 (GitHub #1600).

0.8.11

16 Oct 12:52
v0.8.11
Compare
Choose a tag to compare

New Features

  • JaCoCo now officially supports Java 21 (GitHub #1520).
  • Experimental support for Java 22 class files (GitHub #1479).
  • Part of bytecode generated by the Java compilers for exhaustive switch expressions is filtered out during generation of report (GitHub #1472).
  • Part of bytecode generated by the Java compilers for record patterns is filtered out during generation of report (GitHub #1473).

Fixed bugs

  • Instrumentation should not cause VerifyError when the last local variable of method parameters is overridden in the method body to store a value of type long or double (GitHub #893).
  • Restore exec file compatibility with versions from 0.7.5 to 0.8.8 in case of class files with zero line numbers (GitHub #1492).

Non-functional Changes

  • jacoco-maven-plugin now requires at least Java 8 (GitHub #1466, #1468).
  • JaCoCo build now requires at least Maven 3.5.4 (GitHub #1467).
  • Maven 3.9.2 should not produce warnings for jacoco-maven-plugin (GitHub #1468).
  • JaCoCo build now requires JDK 17 (GitHub #1482).
  • JaCoCo now depends on ASM 9.6 (GitHub #1518).

0.8.10

25 Apr 12:32
v0.8.10
Compare
Choose a tag to compare

Fixed bugs

  • Agent should not require configuration of permissions for SecurityManager outside of its codeBase (GitHub #1425).

0.8.9

03 Apr 08:39
v0.8.9
Compare
Choose a tag to compare

New Features

  • JaCoCo now officially supports Java 19 and 20 (GitHub #1371, #1386).
  • Experimental support for Java 21 class files (GitHub #1386).
  • Add parameter to include the current project in the report-aggregate Maven goal (GitHub #1007).
  • Component accessors generated by the Java compilers for records are filtered out during generation of report. Contributed by Tesla Zhang (GitHub #1393).

Fixed bugs

  • Agent should not open java.lang package to unnamed module of the application class loader (GitHub #1334).

Non-functional Changes

  • JaCoCo now depends on ASM 9.5 (GitHub #1299, #1368, #1416).
  • JaCoCo build now requires JDK 11 (GitHub #1413).

0.8.8

05 Apr 09:37
v0.8.8
Compare
Choose a tag to compare

New Features

  • JaCoCo now officially supports Java 17 and 18 (GitHub #1282, #1198).
  • Experimental support for Java 19 class files (GitHub #1264).
  • Part of bytecode generated by the Java compilers for assert statement is filtered out during generation of report (GitHub #1196).
  • Branch added by the Kotlin compiler version 1.6.0 and above for "unsafe" cast operator is filtered out during generation of report (GitHub #1266).
  • Improved support for multiple JaCoCo runtimes in the same VM (GitHub #1057).

Fixed bugs

  • Fixed NullPointerException during filtering (GitHub #1189).
  • Fix range for debug symbols of method parameters (GitHub #1246).

Non-functional Changes

  • JaCoCo now depends on ASM 9.2 (GitHub #1206).
  • Messages of exceptions occurring during analysis or instrumentation now include JaCoCo version (GitHub #1217).

0.8.7

04 May 23:42
v0.8.7
Compare
Choose a tag to compare

New Features

  • JaCoCo now officially supports Java 15 and 16 (GitHub #1094, #1097, #1176).
  • Experimental support for Java 17 class files (GitHub #1132).
  • New formats parameter for Maven report goals to specify the generated report formats. Contributed by troosan. (GitHub #1175).
  • Branch added by the Kotlin compiler version 1.4.0 and above for "unsafe" cast operator is filtered out during generation of report (GitHub #1143, #1178).
  • synthetic methods added by the Kotlin compiler version 1.5.0 and above for private suspending functions are filtered out (GitHub #1174).
  • Branches added by the Kotlin compiler version 1.4.20 and above for suspending lambdas are filtered out during generation of report (GitHub #1149).
  • Branches added by the Kotlin compiler version 1.5.0 and above for functions with default arguments are filtered out during generation of report (GitHub #1162).
  • Branch added by the Kotlin compiler version 1.5.0 and above for reading from lateinit property is filtered out during generation of report (GitHub #1166).
  • Additional bytecode generated by the Kotlin compiler version 1.5.0 and above for when expressions on kotlin.String values is filtered out during generation of report (GitHub #1172).
  • Improved filtering of bytecode generated by Kotlin compiler versions below 1.5.0 for when expressions on kotlin.String values (GitHub #1156).

Fixed bugs

  • Fixed parsing of SMAP generated by Kotlin compiler version 1.5.0 and above (GitHub #1164).

Non-functional Changes

  • JaCoCo now depends on ASM 9.1 (GitHub #1094, #1097, #1153).
  • Maven plug-in has no dependency on maven-reporting-impl any more (GitHub #1121).

0.8.6

15 Sep 22:05
v0.8.6
Compare
Choose a tag to compare

New Features

  • JaCoCo now officially supports Java 14.
  • Experimental support for Java 15 class files (GitHub #992).
  • Experimental support for Java 16 class files (GitHub #1059).
  • Methods toString, hashCode and equals generated by compiler for records are filtered out during generation of report (GitHub #990).
  • Bridge methods are filtered out during generation of report (GitHub #1010).
  • Methods generated by Kotlin compiler for non-overridden non-abstract methods of interfaces are filtered out during generation of report (GitHub #1012).
  • Branches added by the Kotlin compiler version 1.3.60 for suspending functions with tail call optimization are filtered out during generation of report (GitHub #1016).

Fixed bugs

  • Compression method of zip entries is now preserved when instrumenting archives. This allows to use JaCoCo with frameworks that expect uncompressed entries (GitHub #1018).

Non-functional Changes

  • Support for Pack200 was removed in JDK 14. JaCoCo will now throw a detailed exception when Pack200 archives are processed with the latest JDKs (GitHub #984).
  • JaCoCo now depends on ASM 8.0.1 (GitHub #1032, #1043).

API Changes

  • URLStreamHandlerRuntime removed (GitHub #471).

All Resolved Issues

0.8.5

12 Oct 12:27
v0.8.5
Compare
Choose a tag to compare

New Features

  • JaCoCo now officially supports Java 13
  • Experimental support for Java 14 class files (GitHub #897).
  • Branches added by the Kotlin compiler for open functions with default arguments are filtered out during generation of report (GitHub #887).

Fixed bugs

  • synthetic constructors that contain values of default arguments in Kotlin should not be ignored (GitHub #888).
  • Instrumentation should update indexes of local variables in annotations (GitHub #894).
  • Branches added by the Kotlin compiler for functions with default arguments and containing arguments of type long or double should be filtered out during generation of report (GitHub #908).
  • synthetic methods that contain bodies of anonymous functions in Scala should not be ignored (GitHub #912).
  • To avoid failures with invalid class files report generation now checks that source references are actually files (GitHub #941).
  • NullPointerException during filtering (GitHub #942, #944).

Non-functional Changes

  • JaCoCo now distributed under the terms and conditions of the Eclipse Public License Version 2.0 (GitHub #943).
  • Prevent startup when JaCoCo runtime cannot be initialized to avoid subsequent faults (GitHub #910).
  • JaCoCo now depends on ASM 7.2 (GitHub #947).

API Changes

  • The coverage check API and tools (Ant, Maven) now report an error, when a coverage ratio limit is configured outside the range [0,1] to avoid common configuration mistakes (GitHub #783).
  • Unsupported class file versions are now consistently reported as exceptions by all methods of Analyzer and Instrumenter and thus also during report generation and offline instrumentation (GitHub #952).

All Resolved Issues

0.8.4

10 May 17:30
v0.8.4
Compare
Choose a tag to compare

New Features

  • JaCoCo now officially supports Java 12.
  • Instrumentation does not add synthetic field to Java 11+ class files, however still adds synthetic method (GitHub #845).
  • Branches added by the Kotlin compiler version 1.3.30 for suspending lambdas and functions are filtered out during generation of report (GitHub #849).

Fixed bugs

  • Fixed incorrect update of frames caused by bug in ASM library in case of arrays with more than 7 dimensions (GitHub #839).
  • Fixed regression, which was introduced in 0.8.3 - module-info.class should be excluded from analysis to not cause IllegalStateException (GitHub #859).

API Changes

  • Methods Instrumenter.instrument(org.objectweb.asm.ClassReader) and Analyzer.analyzeClass(org.objectweb.asm.ClassReader) were removed (GitHub #850).

Non-functional Changes

  • JaCoCo now depends on ASM 7.1 (GitHub #851).

All Resolved Issues