let nixpkgs = import ../../..; inherit (nixpkgs { }) haskellPackages lib; maintainedPkgs = lib.filterAttrs ( _: v: builtins.length (v.meta.maintainers or [ ]) > 0 ) haskellPackages; brokenPkgs = lib.filterAttrs (_: v: v.meta.broken) maintainedPkgs; transitiveBrokenPkgs = lib.filterAttrs ( _: v: !(builtins.tryEval (v.outPath or null)).success && !v.meta.broken ) maintainedPkgs; infoList = pkgs: lib.concatStringsSep "\n" ( lib.mapAttrsToList (name: drv: "${name} ${(builtins.elemAt drv.meta.maintainers 0).github}") pkgs ); in { report = '' BROKEN: ${infoList brokenPkgs} TRANSITIVE BROKEN: ${infoList transitiveBrokenPkgs} ''; transitiveErrors = builtins.attrValues transitiveBrokenPkgs; }