DotCov 1.0.0
This major release replaces the NUKE integration with Fallout and separates
report discovery from XML parsing. Requires .NET 10.
Packages
DotCov1.0.0: coverage parsing, aggregation, gates, diffs, and CRAP analysis.DotCov.Tool1.0.0: thedotcovCLI, with native packages for macOS ARM64,
Linux x64/ARM64, and a portable fallback for other supported platforms.DotCov.Fallout1.0.0: replacesDotCov.Nuke. There is no NUKE compatibility
facade and noDotCov.Nuke1.0.0 package in this release.
Upgrade a NUKE build
- Follow the Fallout migration guide.
Run its dry run before applying changes. - Replace the
DotCov.Nukepackage reference withDotCov.Falloutat1.0.0,
including central package versions when used. Replaceusing DotCov.Nuke;
withusing DotCov.Fallout;and keepICoverageReporton the migrated build. - Run
fallout ReportCoverageagainst 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.SourceRootsFor 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*.xmlpattern. - 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.