Skip to content

DotCov 1.0.0

Latest

Choose a tag to compare

@ANcpLua ANcpLua released this 18 Sep 23:01
· 6 commits to main since this release

DotCov 1.0.0

This major release replaces the NUKE integration with Fallout and separates
report discovery from XML parsing. Requires .NET 10.

Packages

  • DotCov 1.0.0: coverage parsing, aggregation, gates, diffs, and CRAP analysis.
  • DotCov.Tool 1.0.0: the dotcov CLI, with native packages for macOS ARM64,
    Linux x64/ARM64, and a portable fallback for other supported platforms.
  • DotCov.Fallout 1.0.0: replaces DotCov.Nuke. There is no NUKE compatibility
    facade and no DotCov.Nuke 1.0.0 package in this release.

Upgrade a NUKE build

  1. Follow the Fallout migration guide.
    Run its dry run before applying changes.
  2. Replace the DotCov.Nuke package reference with DotCov.Fallout at 1.0.0,
    including central package versions when used. Replace using DotCov.Nuke;
    with using DotCov.Fallout; and keep ICoverageReport on the migrated build.
  3. Run fallout ReportCoverage against reports from the intended measurement
    run. Missing inputs, no measured data, and disabled thresholds fail the gate;
    parser warnings remain visible.

Previously published DotCov.Nuke versions remain separate packages. Installing
or updating that ID does not migrate the build or install DotCov.Fallout.

Upgrade library callers

The parser's ParseFile, ParseDirectory, ParsePath, and corresponding
ParseMethods* path methods were removed. Resolve inputs first:

var inputs = ReportResolver.Resolve("TestResults/");
var report = CoberturaParser.Parse(inputs);
var methods = CoberturaParser.ParseMethods(inputs);
// methods.Methods, methods.Warnings, methods.SourceRoots

For a single named file, use ReportInput.FromFile(path). ParseMethods now
returns MethodCoverageReport, not a method list; use its Methods property.
Malformed XML from a ReportInput throws ReportParseException with the source
name, line, position, and original XML exception. Direct stream overloads leave
streams owned by the caller; streams opened through ReportInput are disposed
by the parser.

Construct file diffs with FileDelta.Removed, Added, or Compared instead
of the former positional constructor; movement and classification are derived
from the supplied measurements.

Other changes

  • File/directory discovery includes hidden directories and timestamped Cobertura
    reports via the default **/*cobertura*.xml pattern.
  • Async parsing performs asynchronous reads and observes cancellation.
  • CRAP analysis no longer labels matching metrics as unmatched when embedded
    complexity takes precedence.
  • Removed measured files count as regressions, including 0% files; zero deltas
    no longer render as negative zero.
  • The test suite uses TUnit on Microsoft.Testing.Platform, with stream, upload,
    merge, CLI, and real Fallout-consumer scenarios.

The CLI command remains dotcov; coverage collection is still the test runner's
job. Use a fresh run directory so reporting does not combine stale measurements.