1let
2 nixpkgs = import ../../..;
3 inherit (nixpkgs { }) haskellPackages lib;
4 maintainedPkgs = lib.filterAttrs (
5 _: v: builtins.length (v.meta.maintainers or [ ]) > 0
6 ) haskellPackages;
7 brokenPkgs = lib.filterAttrs (_: v: v.meta.broken) maintainedPkgs;
8 transitiveBrokenPkgs = lib.filterAttrs (
9 _: v: !(builtins.tryEval (v.outPath or null)).success && !v.meta.broken
10 ) maintainedPkgs;
11 infoList =
12 pkgs:
13 lib.concatStringsSep "\n" (
14 lib.mapAttrsToList (name: drv: "${name} ${(builtins.elemAt drv.meta.maintainers 0).github}") pkgs
15 );
16in
17{
18 report = ''
19 BROKEN:
20 ${infoList brokenPkgs}
21
22 TRANSITIVE BROKEN:
23 ${infoList transitiveBrokenPkgs}
24 '';
25 transitiveErrors = builtins.attrValues transitiveBrokenPkgs;
26}