diff --git a/lib/tests/maintainers.nix b/lib/tests/maintainers.nix index 600d42054113..685c968e5b1b 100644 --- a/lib/tests/maintainers.nix +++ b/lib/tests/maintainers.nix @@ -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 = @@ -73,4 +99,4 @@ let exit 1 ''; in -if missingGithubIds == [ ] then success else failure +uniquenessError (if missingGithubIds == [ ] then success else failure) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 8beb66d68cd9..3b725046bc75 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -6942,13 +6942,6 @@ githubId = 126339; name = "Domen Kozar"; }; - DomesticMoth = { - name = "Andrew"; - email = "silkmoth@protonmail.com"; - github = "asciimoth"; - githubId = 91414737; - keys = [ { fingerprint = "7D6B AE0A A98A FDE9 3396 E721 F87E 15B8 3AA7 3087"; } ]; - }; dominikh = { email = "dominik@honnef.co"; github = "dominikh"; @@ -7747,7 +7740,7 @@ name = "Elnu"; }; elpdt852 = { - email = "nix@pdtpartners.com"; + email = "nix+elpdt852@pdtpartners.com"; github = "elpdt852"; githubId = 122112154; name = "Edgar Lee"; @@ -14743,7 +14736,7 @@ name = "Luka Blaskovic"; }; lbpdt = { - email = "nix@pdtpartners.com"; + email = "nix+lbpdt@pdtpartners.com"; github = "lbpdt"; githubId = 45168934; name = "Louis Blin"; @@ -18238,7 +18231,7 @@ keys = [ { fingerprint = "5658 4D09 71AF E45F CC29 6BD7 4CE6 2A90 EFC0 B9B2"; } ]; }; mupdt = { - email = "nix@pdtpartners.com"; + email = "nix+mupdt@pdtpartners.com"; github = "mupdt"; githubId = 25388474; name = "Matej Urbas"; @@ -20434,12 +20427,6 @@ name = "Patrick"; keys = [ { fingerprint = "5E4C 3D74 80C2 35FE 2F0B D23F 7DD6 A72E C899 617D"; } ]; }; - patricksjackson = { - email = "patrick@jackson.dev"; - github = "arcuru"; - githubId = 160646; - name = "Patrick Jackson"; - }; patryk27 = { email = "pwychowaniec@pm.me"; github = "Patryk27";