Skip to content

v1.5.0

Latest

Choose a tag to compare

@boumenot boumenot released this 18 May 15:37

What's Changed

This release focuses on more accurate Cobertura output, better diagnostics for CI failures, and a much stronger regression safety net.

Added

  • Added -path DIR to resolve packages from an explicit project directory, which helps monorepos and CI jobs that run gocover-cobertura outside the module root.
  • Added -strict to fail the conversion when profiles are skipped because package or module information cannot be resolved.
  • Added support for package-level variable functions in coverage output.
  • Added optional -ignore-non-code-lines behavior and regression goldens so comment-only and other non-code lines can be excluded from coverage calculations.

Fixed

  • Deduplicate overlapping coverage blocks correctly, including -coverpkg cases where multiple blocks map to the same line.
  • Improve missing package/module diagnostics by including the affected filename.
  • Improve inconsistent NumStmt errors by including the relevant file and line range.
  • Avoid a panic when package loading returns packages with nil module information.
  • Improve hit aggregation for count coverage mode and multi-file coverage profiles.

Documentation

  • Documented -path, -strict, build tag handling, Windows stdin redirection, troubleshooting for skipped profiles, and why branch coverage is reported as zero.

Maintenance

  • Added a Linux-only regression suite with real coverage profiles from gorilla/mux, spf13/cobra, approvals/go-approval-tests, junegunn/fzf, stretchr/testify, prometheus, and kubernetes.
  • Updated CI to GitHub Actions checkout@v4 and setup-go@v5, with Go 1.25.
  • Refreshed module dependencies and vendored dependencies for Go 1.25.
  • Removed the unused Travis configuration and dead Boundary/Boundaries code.

Contributors

Thanks to @ajuckel, @tony2001, @adombeck, @secDre4mer, and @thatcode for contributions included in this release.

Full Changelog: v1.4.0...v1.5.0