From b54233e11c70b7297611a35454c7616c96439fd3 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Mon, 9 Feb 2026 21:51:01 +0100 Subject: [PATCH 1/2] lib.maintainers: Enforce unique github[Id], email, matrix --- lib/tests/maintainers.nix | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) 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) From 35b5ba55704493f0099b5bfb7c047bccf2282126 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Mon, 9 Feb 2026 21:51:55 +0100 Subject: [PATCH 2/2] maintainers: Fix duplicate values @patricksjackson -> @arcuru was done in https://github.com/NixOS/nixpkgs/pull/263460, but https://github.com/NixOS/nixpkgs/pull/240329 accidentally undid it @DomesticMoth -> @asciimoth was done in https://github.com/NixOS/nixpkgs/pull/203290, but the old entry wasn't dropped The nix@pdtpartners.com email is used by three users. According to @mupdt, `nix+@pdtpartners.com` should work instead: https://github.com/NixOS/nixpkgs/pull/488851#issuecomment-3884975021 --- maintainers/maintainer-list.nix | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index e955832cb55b..72604c09eaa6 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -6944,13 +6944,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"; @@ -7738,7 +7731,7 @@ name = "Elnu"; }; elpdt852 = { - email = "nix@pdtpartners.com"; + email = "nix+elpdt852@pdtpartners.com"; github = "elpdt852"; githubId = 122112154; name = "Edgar Lee"; @@ -14703,7 +14696,7 @@ name = "Luka Blaskovic"; }; lbpdt = { - email = "nix@pdtpartners.com"; + email = "nix+lbpdt@pdtpartners.com"; github = "lbpdt"; githubId = 45168934; name = "Louis Blin"; @@ -18198,7 +18191,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"; @@ -20381,12 +20374,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";