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 = pkgs: lib.concatStringsSep "\n" (lib.mapAttrsToList (name: drv: "${name} ${(builtins.elemAt drv.meta.maintainers 0).github}") pkgs);
12in {
13 report = ''
14 BROKEN:
15 ${infoList brokenPkgs}
16
17 TRANSITIVE BROKEN:
18 ${infoList transitiveBrokenPkgs}
19 '';
20 transitiveErrors =
21 builtins.attrValues transitiveBrokenPkgs;
22}