The patch provided in the original report still produces malformed YAML. Having played around with the patched version with more than one tuple, seems like I missed that that was not just an accidental line that I deleted. The actual solution should have closed that box after the reasons are printed.
This is the patch that produced a parseable YAML when run on an actual set of packages on my machine with more than one tuple. Index: dose3-7.0.0-6/src/algo/diagnostic.ml =================================================================== --- dose3-7.0.0-6.orig/src/algo/diagnostic.ml +++ dose3-7.0.0-6/src/algo/diagnostic.ml @@ -700,7 +700,6 @@ let fprintf ?(pp = CudfAdd.default_pp) ? "failure: %s@," (String.concat " , " (List.map CudfAdd.string_of_package rl)) ; Format.fprintf fmt "status: broken@," ; - Format.fprintf fmt "@]@," ; if explain then ( Format.fprintf fmt "@[<v 1>reasons:@," ; List.iter @@ -711,7 +710,8 @@ let fprintf ?(pp = CudfAdd.default_pp) ? (print_error ~minimal ~condense pp r) (f ())) rl ; - Format.fprintf fmt "@]@,") + Format.fprintf fmt "@]") ; + Format.fprintf fmt "@]@," | _ -> () let printf ?(pp = CudfAdd.default_pp) ?(failure = false) ?(success = false) -- Regards, Andrey