Loading lib/tests/maintainers.nix +27 −1 Original line number Diff line number Diff line Loading @@ -54,6 +54,32 @@ let missingGithubIds = lib.concatLists (lib.mapAttrsToList checkMaintainer lib.maintainers); uniqueFields = [ "github" "githubId" "email" "matrix" ]; nonUniqueFields = lib.filterAttrs (field: nonUnique: nonUnique != { }) ( lib.genAttrs uniqueFields ( field: lib.pipe lib.maintainers [ (lib.mapAttrsToList (handle: m: m // { inherit handle; })) (lib.groupBy (m: toString (m.${field} or null))) (lib.filterAttrs (v: ms: v != "" && lib.length ms > 1)) (lib.mapAttrs (v: ms: map (m: m.handle) ms)) ] ) ); uniquenessError = value: if nonUniqueFields == { } then value else throw "lib.maintainers has non-unique fields: ${lib.generators.toPretty { } nonUniqueFields}"; success = pkgs.runCommand "checked-maintainers-success" { } "mkdir $out"; failure = Loading @@ -73,4 +99,4 @@ let exit 1 ''; in if missingGithubIds == [ ] then success else failure uniquenessError (if missingGithubIds == [ ] then success else failure) Loading
lib/tests/maintainers.nix +27 −1 Original line number Diff line number Diff line Loading @@ -54,6 +54,32 @@ let missingGithubIds = lib.concatLists (lib.mapAttrsToList checkMaintainer lib.maintainers); uniqueFields = [ "github" "githubId" "email" "matrix" ]; nonUniqueFields = lib.filterAttrs (field: nonUnique: nonUnique != { }) ( lib.genAttrs uniqueFields ( field: lib.pipe lib.maintainers [ (lib.mapAttrsToList (handle: m: m // { inherit handle; })) (lib.groupBy (m: toString (m.${field} or null))) (lib.filterAttrs (v: ms: v != "" && lib.length ms > 1)) (lib.mapAttrs (v: ms: map (m: m.handle) ms)) ] ) ); uniquenessError = value: if nonUniqueFields == { } then value else throw "lib.maintainers has non-unique fields: ${lib.generators.toPretty { } nonUniqueFields}"; success = pkgs.runCommand "checked-maintainers-success" { } "mkdir $out"; failure = Loading @@ -73,4 +99,4 @@ let exit 1 ''; in if missingGithubIds == [ ] then success else failure uniquenessError (if missingGithubIds == [ ] then success else failure)