Skip to content

v0.2.1 — The validation report carries a summary and its worst severity

Latest

Choose a tag to compare

@danafitkowski danafitkowski released this 29 Sep 22:42

A patch release. The bundled ValidationReport serialises with the summary CPP's internal report carries, so a caller can read a report's worst severity from it.

Added

  • ValidationReport.to_dict()['summary']: block, warn, info and pass (the number of findings at each severity), total, and worst_severity, the worst severity present, ranked BLOCK > WARN > INFO > PASS, and PASS for a report with no findings. The keys and values are the internal report's, in its order. cpp-critical-path-validator reads summary['worst_severity'] from its embedded DCMA-14 report.
  • ValidationReport.worst_severity, the property the summary reads, and count() with no argument, the number of all findings.

count, worst_severity, the summary block and the severity ranking are AST-identical to the internal module without docstrings.

Nothing moves

The release adds a key, a property and an optional argument, and changes no existing value. to_dict() still carries counts and lists findings in the order they were added (the internal report sorts them worst first), and count(severity) is unchanged. xer_parser.py and config_profiles.py are unchanged.

Why a patch. Before 1.0 this project moves the minor number for a release that changes results a caller already reads, as v0.2.0 did, and the patch number for one that only adds.

Testing

tests/test_report_summary_2026_09_29.py has 9 synthetic tests; all 9 fail against v0.2.0's validation.py, and 7 mutants of the port are each killed. pytest tests/ is 109 tests across 11 files: 108 pass and the engine-parity test skips, and all 109 pass with cpp-cpm-engine's python_reference on sys.path. CI is green on Linux, macOS and Windows against Python 3.10, 3.11 and 3.12.

See CHANGELOG.md.