Merge pull request #82461 from Infinisil/checked-maintainers

Checked maintainers
This commit is contained in:
Silvan Mosberger 2020-04-13 17:55:15 +02:00 committed by GitHub
commit 56f78c1ca4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 234 additions and 23 deletions

View File

@ -193,14 +193,7 @@ rec {
(showOption ["foo" "bar" "baz"]) == "foo.bar.baz" (showOption ["foo" "bar" "baz"]) == "foo.bar.baz"
(showOption ["foo" "bar.baz" "tux"]) == "foo.\"bar.baz\".tux" (showOption ["foo" "bar.baz" "tux"]) == "foo.\"bar.baz\".tux"
*/ */
showOption = parts: let showOption = parts: concatMapStringsSep "." escapeNixIdentifier parts;
escapeOptionPart = part:
let
escaped = lib.strings.escapeNixString part;
in if escaped == "\"${part}\""
then part
else escaped;
in (concatStringsSep ".") (map escapeOptionPart parts);
showFiles = files: concatStringsSep " and " (map (f: "`${f}'") files); showFiles = files: concatStringsSep " and " (map (f: "`${f}'") files);
unknownModule = "<unknown-file>"; unknownModule = "<unknown-file>";

View File

@ -315,6 +315,21 @@ rec {
*/ */
escapeNixString = s: escape ["$"] (builtins.toJSON s); escapeNixString = s: escape ["$"] (builtins.toJSON s);
/* Quotes a string if it can't be used as an identifier directly.
Type: string -> string
Example:
escapeNixIdentifier "hello"
=> "hello"
escapeNixIdentifier "0abc"
=> "\"0abc\""
*/
escapeNixIdentifier = s:
# Regex from https://github.com/NixOS/nix/blob/d048577909e383439c2549e849c5c2f2016c997e/src/libexpr/lexer.l#L91
if builtins.match "[a-zA-Z_][a-zA-Z0-9_'-]*" s != null
then s else escapeNixString s;
# Obsolete - use replaceStrings instead. # Obsolete - use replaceStrings instead.
replaceChars = builtins.replaceStrings or ( replaceChars = builtins.replaceStrings or (
del: new: s: del: new: s:

75
lib/tests/maintainers.nix Normal file
View File

@ -0,0 +1,75 @@
# to run these tests:
# nix-build nixpkgs/lib/tests/maintainers.nix
# If nothing is output, all tests passed
{ pkgs ? import ../.. {} }:
let
inherit (pkgs) lib;
inherit (lib) types;
maintainerModule = { config, ... }: {
options = {
name = lib.mkOption {
type = types.str;
};
email = lib.mkOption {
type = types.str;
};
github = lib.mkOption {
type = types.nullOr types.str;
default = null;
};
githubId = lib.mkOption {
type = types.nullOr types.ints.unsigned;
default = null;
};
keys = lib.mkOption {
type = types.listOf (types.submodule {
options.longkeyid = lib.mkOption { type = types.str; };
options.fingerprint = lib.mkOption { type = types.str; };
});
default = [];
};
};
};
checkMaintainer = handle: uncheckedAttrs:
let
prefix = [ "lib" "maintainers" handle ];
checkedAttrs = (lib.modules.evalModules {
inherit prefix;
modules = [
maintainerModule
{
_file = toString ../../maintainers/maintainer-list.nix;
config = uncheckedAttrs;
}
];
}).config;
checkGithubId = lib.optional (checkedAttrs.github != null && checkedAttrs.githubId == null) ''
echo ${lib.escapeShellArg (lib.showOption prefix)}': If `github` is specified, `githubId` must be too.'
# Calling this too often would hit non-authenticated API limits, but this
# shouldn't happen since such errors will get fixed rather quickly
info=$(curl -sS https://api.github.com/users/${checkedAttrs.github})
id=$(jq -r '.id' <<< "$info")
echo "The GitHub ID for GitHub user ${checkedAttrs.github} is $id:"
echo -e " githubId = $id;\n"
'';
in lib.deepSeq checkedAttrs checkGithubId;
missingGithubIds = lib.concatLists (lib.mapAttrsToList checkMaintainer lib.maintainers);
success = pkgs.runCommandNoCC "checked-maintainers-success" {} ">$out";
failure = pkgs.runCommandNoCC "checked-maintainers-failure" {
nativeBuildInputs = [ pkgs.curl pkgs.jq ];
outputHash = "sha256:${lib.fakeSha256}";
outputHAlgo = "sha256";
outputHashMode = "flat";
SSL_CERT_FILE = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
} ''
${lib.concatStringsSep "\n" missingGithubIds}
exit 1
'';
in if missingGithubIds == [] then success else failure

View File

@ -3,7 +3,10 @@
# This script is used to test that the module system is working as expected. # This script is used to test that the module system is working as expected.
# By default it test the version of nixpkgs which is defined in the NIX_PATH. # By default it test the version of nixpkgs which is defined in the NIX_PATH.
cd ./modules # https://stackoverflow.com/a/246128/6605742
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
cd "$DIR"/modules
pass=0 pass=0
fail=0 fail=0

View File

@ -1,7 +1,7 @@
{ pkgs ? import ((import ../.).cleanSource ../..) {} }: { pkgs ? import ../.. {} }:
pkgs.runCommandNoCC "nixpkgs-lib-tests" { pkgs.runCommandNoCC "nixpkgs-lib-tests" {
buildInputs = [ pkgs.nix (import ./check-eval.nix) ]; buildInputs = [ pkgs.nix (import ./check-eval.nix) (import ./maintainers.nix { inherit pkgs; }) ];
NIX_PATH = "nixpkgs=${toString pkgs.path}"; NIX_PATH = "nixpkgs=${toString pkgs.path}";
} '' } ''
datadir="${pkgs.nix}/share" datadir="${pkgs.nix}/share"
@ -17,8 +17,8 @@ pkgs.runCommandNoCC "nixpkgs-lib-tests" {
cacheDir=$TEST_ROOT/binary-cache cacheDir=$TEST_ROOT/binary-cache
nix-store --init nix-store --init
cd ${pkgs.path}/lib/tests cp -r ${../.} lib
bash ./modules.sh bash lib/tests/modules.sh
touch $out touch $out
'' ''

View File

@ -100,6 +100,7 @@
abbradar = { abbradar = {
email = "ab@fmap.me"; email = "ab@fmap.me";
github = "abbradar"; github = "abbradar";
githubId = 1174810;
name = "Nikolay Amiantov"; name = "Nikolay Amiantov";
}; };
abhi18av = { abhi18av = {
@ -135,6 +136,7 @@
acairncross = { acairncross = {
email = "acairncross@gmail.com"; email = "acairncross@gmail.com";
github = "acairncross"; github = "acairncross";
githubId = 1517066;
name = "Aiken Cairncross"; name = "Aiken Cairncross";
}; };
acowley = { acowley = {
@ -146,6 +148,7 @@
adamt = { adamt = {
email = "mail@adamtulinius.dk"; email = "mail@adamtulinius.dk";
github = "adamtulinius"; github = "adamtulinius";
githubId = 749381;
name = "Adam Tulinius"; name = "Adam Tulinius";
}; };
adelbertc = { adelbertc = {
@ -229,6 +232,7 @@
aforemny = { aforemny = {
email = "alexanderforemny@googlemail.com"; email = "alexanderforemny@googlemail.com";
github = "aforemny"; github = "aforemny";
githubId = 610962;
name = "Alexander Foremny"; name = "Alexander Foremny";
}; };
afranchuk = { afranchuk = {
@ -276,6 +280,7 @@
ak = { ak = {
email = "ak@formalprivacy.com"; email = "ak@formalprivacy.com";
github = "alexanderkjeldaas"; github = "alexanderkjeldaas";
githubId = 339369;
name = "Alexander Kjeldaas"; name = "Alexander Kjeldaas";
}; };
akavel = { akavel = {
@ -383,6 +388,7 @@
alunduil = { alunduil = {
email = "alunduil@gmail.com"; email = "alunduil@gmail.com";
github = "alunduil"; github = "alunduil";
githubId = 169249;
name = "Alex Brandt"; name = "Alex Brandt";
}; };
alva = { alva = {
@ -404,6 +410,7 @@
ambrop72 = { ambrop72 = {
email = "ambrop7@gmail.com"; email = "ambrop7@gmail.com";
github = "ambrop72"; github = "ambrop72";
githubId = 2626481;
name = "Ambroz Bizjak"; name = "Ambroz Bizjak";
}; };
amiddelk = { amiddelk = {
@ -473,11 +480,13 @@
andreabedini = { andreabedini = {
email = "andrea@kzn.io"; email = "andrea@kzn.io";
github = "andreabedini"; github = "andreabedini";
githubId = 69135;
name = "Andrea Bedini"; name = "Andrea Bedini";
}; };
andres = { andres = {
email = "ksnixos@andres-loeh.de"; email = "ksnixos@andres-loeh.de";
github = "kosmikus"; github = "kosmikus";
githubId = 293191;
name = "Andres Loeh"; name = "Andres Loeh";
}; };
andrestylianos = { andrestylianos = {
@ -507,6 +516,7 @@
andsild = { andsild = {
email = "andsild@gmail.com"; email = "andsild@gmail.com";
github = "andsild"; github = "andsild";
githubId = 3808928;
name = "Anders Sildnes"; name = "Anders Sildnes";
}; };
aneeshusa = { aneeshusa = {
@ -560,6 +570,7 @@
antono = { antono = {
email = "self@antono.info"; email = "self@antono.info";
github = "antono"; github = "antono";
githubId = 7622;
name = "Antono Vasiljev"; name = "Antono Vasiljev";
}; };
antonxy = { antonxy = {
@ -742,7 +753,8 @@
}; };
auntie = { auntie = {
email = "auntieNeo@gmail.com"; email = "auntieNeo@gmail.com";
github = "auntie"; github = "auntieNeo";
githubId = 574938;
name = "Jonathan Glines"; name = "Jonathan Glines";
}; };
avaq = { avaq = {
@ -760,6 +772,7 @@
averelld = { averelld = {
email = "averell+nixos@rxd4.com"; email = "averell+nixos@rxd4.com";
github = "averelld"; github = "averelld";
githubId = 687218;
name = "averelld"; name = "averelld";
}; };
avitex = { avitex = {
@ -815,11 +828,13 @@
backuitist = { backuitist = {
email = "biethb@gmail.com"; email = "biethb@gmail.com";
github = "backuitist"; github = "backuitist";
githubId = 1017537;
name = "Bruno Bieth"; name = "Bruno Bieth";
}; };
badi = { badi = {
email = "abdulwahidc@gmail.com"; email = "abdulwahidc@gmail.com";
github = "badi"; github = "badi";
githubId = 35324;
name = "Badi' Abdul-Wahid"; name = "Badi' Abdul-Wahid";
}; };
balajisivaraman = { balajisivaraman = {
@ -943,6 +958,7 @@
berdario = { berdario = {
email = "berdario@gmail.com"; email = "berdario@gmail.com";
github = "berdario"; github = "berdario";
githubId = 752835;
name = "Dario Bertini"; name = "Dario Bertini";
}; };
bergey = { bergey = {
@ -1024,6 +1040,7 @@
bluescreen303 = { bluescreen303 = {
email = "mathijs@bluescreen303.nl"; email = "mathijs@bluescreen303.nl";
github = "bluescreen303"; github = "bluescreen303";
githubId = 16330;
name = "Mathijs Kwik"; name = "Mathijs Kwik";
}; };
bobakker = { bobakker = {
@ -1053,6 +1070,7 @@
boothead = { boothead = {
email = "ben@perurbis.com"; email = "ben@perurbis.com";
github = "boothead"; github = "boothead";
githubId = 87764;
name = "Ben Ford"; name = "Ben Ford";
}; };
borisbabic = { borisbabic = {
@ -1473,6 +1491,7 @@
coconnor = { coconnor = {
email = "coreyoconnor@gmail.com"; email = "coreyoconnor@gmail.com";
github = "coreyoconnor"; github = "coreyoconnor";
githubId = 34317;
name = "Corey O'Connor"; name = "Corey O'Connor";
}; };
codsl = { codsl = {
@ -1566,6 +1585,7 @@
cransom = { cransom = {
email = "cransom@hubns.net"; email = "cransom@hubns.net";
github = "cransom"; github = "cransom";
githubId = 1957293;
name = "Casey Ransom"; name = "Casey Ransom";
}; };
CrazedProgrammer = { CrazedProgrammer = {
@ -1725,6 +1745,7 @@
davidrusu = { davidrusu = {
email = "davidrusu.me@gmail.com"; email = "davidrusu.me@gmail.com";
github = "davidrusu"; github = "davidrusu";
githubId = 1832378;
name = "David Rusu"; name = "David Rusu";
}; };
davidtwco = { davidtwco = {
@ -1818,6 +1839,7 @@
DerGuteMoritz = { DerGuteMoritz = {
email = "moritz@twoticketsplease.de"; email = "moritz@twoticketsplease.de";
github = "DerGuteMoritz"; github = "DerGuteMoritz";
githubId = 19733;
name = "Moritz Heidkamp"; name = "Moritz Heidkamp";
}; };
dermetfan = { dermetfan = {
@ -1835,6 +1857,7 @@
desiderius = { desiderius = {
email = "didier@devroye.name"; email = "didier@devroye.name";
github = "desiderius"; github = "desiderius";
githubId = 1311761;
name = "Didier J. Devroye"; name = "Didier J. Devroye";
}; };
devhell = { devhell = {
@ -1864,6 +1887,7 @@
dgonyeo = { dgonyeo = {
email = "derek@gonyeo.com"; email = "derek@gonyeo.com";
github = "dgonyeo"; github = "dgonyeo";
githubId = 2439413;
name = "Derek Gonyeo"; name = "Derek Gonyeo";
}; };
dhkl = { dhkl = {
@ -1983,6 +2007,7 @@
doublec = { doublec = {
email = "chris.double@double.co.nz"; email = "chris.double@double.co.nz";
github = "doublec"; github = "doublec";
githubId = 16599;
name = "Chris Double"; name = "Chris Double";
}; };
dpaetzel = { dpaetzel = {
@ -2048,6 +2073,7 @@
dxf = { dxf = {
email = "dingxiangfei2009@gmail.com"; email = "dingxiangfei2009@gmail.com";
github = "dingxiangfei2009"; github = "dingxiangfei2009";
githubId = 6884440;
name = "Ding Xiang Fei"; name = "Ding Xiang Fei";
}; };
dysinger = { dysinger = {
@ -2113,6 +2139,7 @@
edanaher = { edanaher = {
email = "nixos@edanaher.net"; email = "nixos@edanaher.net";
github = "edanaher"; github = "edanaher";
githubId = 984691;
name = "Evan Danaher"; name = "Evan Danaher";
}; };
edef = { edef = {
@ -2262,6 +2289,7 @@
emmanuelrosa = { emmanuelrosa = {
email = "emmanuel_rosa@aol.com"; email = "emmanuel_rosa@aol.com";
github = "emmanuelrosa"; github = "emmanuelrosa";
githubId = 13485450;
name = "Emmanuel Rosa"; name = "Emmanuel Rosa";
}; };
endgame = { endgame = {
@ -2279,7 +2307,7 @@
Enteee = { Enteee = {
email = "nix@duckpond.ch"; email = "nix@duckpond.ch";
github = "Enteee"; github = "Enteee";
githubid = 5493775; githubId = 5493775;
name = "Ente"; name = "Ente";
}; };
enzime = { enzime = {
@ -2337,6 +2365,7 @@
ericsagnes = { ericsagnes = {
email = "eric.sagnes@gmail.com"; email = "eric.sagnes@gmail.com";
github = "ericsagnes"; github = "ericsagnes";
githubId = 367880;
name = "Eric Sagnes"; name = "Eric Sagnes";
}; };
ericson2314 = { ericson2314 = {
@ -2376,6 +2405,7 @@
ertes = { ertes = {
email = "esz@posteo.de"; email = "esz@posteo.de";
github = "ertes"; github = "ertes";
githubId = 1855930;
name = "Ertugrul Söylemez"; name = "Ertugrul Söylemez";
}; };
esclear = { esclear = {
@ -2485,6 +2515,7 @@
fare = { fare = {
email = "fahree@gmail.com"; email = "fahree@gmail.com";
github = "fare"; github = "fare";
githubId = 8073;
name = "Francois-Rene Rideau"; name = "Francois-Rene Rideau";
}; };
farlion = { farlion = {
@ -2496,6 +2527,7 @@
fdns = { fdns = {
email = "fdns02@gmail.com"; email = "fdns02@gmail.com";
github = "fdns"; github = "fdns";
githubId = 541748;
name = "Felipe Espinoza"; name = "Felipe Espinoza";
}; };
ffinkdevs = { ffinkdevs = {
@ -2622,6 +2654,7 @@
fragamus = { fragamus = {
email = "innovative.engineer@gmail.com"; email = "innovative.engineer@gmail.com";
github = "fragamus"; github = "fragamus";
githubId = 119691;
name = "Michael Gough"; name = "Michael Gough";
}; };
@ -2640,11 +2673,13 @@
freezeboy = { freezeboy = {
email = "freezeboy@users.noreply.github.com"; email = "freezeboy@users.noreply.github.com";
github = "freezeboy"; github = "freezeboy";
githubId = 13279982;
name = "freezeboy"; name = "freezeboy";
}; };
Fresheyeball = { Fresheyeball = {
email = "fresheyeball@gmail.com"; email = "fresheyeball@gmail.com";
github = "fresheyeball"; github = "Fresheyeball";
githubId = 609279;
name = "Isaac Shapira"; name = "Isaac Shapira";
}; };
fridh = { fridh = {
@ -2748,6 +2783,7 @@
garbas = { garbas = {
email = "rok@garbas.si"; email = "rok@garbas.si";
github = "garbas"; github = "garbas";
githubId = 20208;
name = "Rok Garbas"; name = "Rok Garbas";
}; };
garrison = { garrison = {
@ -2759,6 +2795,7 @@
gavin = { gavin = {
email = "gavin.rogers@holo.host"; email = "gavin.rogers@holo.host";
github = "gavinrogers"; github = "gavinrogers";
githubId = 2430469;
name = "Gavin Rogers"; name = "Gavin Rogers";
}; };
gazally = { gazally = {
@ -2906,6 +2943,7 @@
gridaphobe = { gridaphobe = {
email = "eric@seidel.io"; email = "eric@seidel.io";
github = "gridaphobe"; github = "gridaphobe";
githubId = 201997;
name = "Eric Seidel"; name = "Eric Seidel";
}; };
guibert = { guibert = {
@ -3035,6 +3073,7 @@
name = "Guanpeng Xu"; name = "Guanpeng Xu";
}; };
hexa = { hexa = {
email = "hexa@darmstadt.ccc.de";
github = "mweinelt"; github = "mweinelt";
githubId = 131599; githubId = 131599;
name = "Martin Weinelt"; name = "Martin Weinelt";
@ -3053,6 +3092,7 @@
email = "me@hkjn.me"; email = "me@hkjn.me";
name = "Henrik Jonsson"; name = "Henrik Jonsson";
github = "hkjn"; github = "hkjn";
githubId = 287215;
keys = [{ keys = [{
longkeyid = "rsa4096/0x03EFBF839A5FDC15"; longkeyid = "rsa4096/0x03EFBF839A5FDC15";
fingerprint = "D618 7A03 A40A 3D56 62F5 4B46 03EF BF83 9A5F DC15"; fingerprint = "D618 7A03 A40A 3D56 62F5 4B46 03EF BF83 9A5F DC15";
@ -3225,6 +3265,7 @@
name = "Michele Catalano"; name = "Michele Catalano";
}; };
isgy = { isgy = {
name = "isgy";
email = "isgy@teiyg.com"; email = "isgy@teiyg.com";
github = "isgy"; github = "isgy";
githubId = 13622947; githubId = 13622947;
@ -3263,7 +3304,7 @@
email = "ivar.scholten@protonmail.com"; email = "ivar.scholten@protonmail.com";
github = "IvarWithoutBones"; github = "IvarWithoutBones";
githubId = 41924494; githubId = 41924494;
Name = "Ivar"; name = "Ivar";
}; };
ivegotasthma = { ivegotasthma = {
email = "ivegotasthma@protonmail.com"; email = "ivegotasthma@protonmail.com";
@ -3302,6 +3343,7 @@
jasoncarr = { jasoncarr = {
email = "jcarr250@gmail.com"; email = "jcarr250@gmail.com";
github = "jasoncarr0"; github = "jasoncarr0";
githubId = 6874204;
name = "Jason Carr"; name = "Jason Carr";
}; };
j-keck = { j-keck = {
@ -3313,6 +3355,7 @@
j03 = { j03 = {
email = "github@johannesloetzsch.de"; email = "github@johannesloetzsch.de";
github = "johannesloetzsch"; github = "johannesloetzsch";
githubId = 175537;
name = "Johannes Lötzsch"; name = "Johannes Lötzsch";
}; };
jagajaga = { jagajaga = {
@ -3439,7 +3482,8 @@
}; };
jeschli = { jeschli = {
email = "jeschli@gmail.com"; email = "jeschli@gmail.com";
github = "jeschli"; github = "Jeschli";
githubId = 10786794;
name = "Markus Hihn"; name = "Markus Hihn";
}; };
jethro = { jethro = {
@ -3451,6 +3495,7 @@
jfb = { jfb = {
email = "james@yamtime.com"; email = "james@yamtime.com";
github = "tftio"; github = "tftio";
githubId = 143075;
name = "James Felix Black"; name = "James Felix Black";
}; };
jflanglois = { jflanglois = {
@ -3510,6 +3555,7 @@
jitwit = { jitwit = {
email = "jrn@bluefarm.ca"; email = "jrn@bluefarm.ca";
github = "jitwit"; github = "jitwit";
githubId = 51518420;
name = "jitwit"; name = "jitwit";
}; };
jlesquembre = { jlesquembre = {
@ -3551,6 +3597,7 @@
joamaki = { joamaki = {
email = "joamaki@gmail.com"; email = "joamaki@gmail.com";
github = "joamaki"; github = "joamaki";
githubId = 1102396;
name = "Jussi Maki"; name = "Jussi Maki";
}; };
joelburget = { joelburget = {
@ -3573,6 +3620,7 @@
email = "admin@cryto.net"; email = "admin@cryto.net";
name = "Sven Slootweg"; name = "Sven Slootweg";
github = "joepie91"; github = "joepie91";
githubId = 1663259;
}; };
joesalisbury = { joesalisbury = {
email = "salisbury.joseph@gmail.com"; email = "salisbury.joseph@gmail.com";
@ -3646,6 +3694,7 @@
jonathanmarler = { jonathanmarler = {
email = "johnnymarler@gmail.com"; email = "johnnymarler@gmail.com";
github = "marler8997"; github = "marler8997";
githubId = 304904;
name = "Jonathan Marler"; name = "Jonathan Marler";
}; };
jonathanreeve = { jonathanreeve = {
@ -3751,6 +3800,7 @@
juliendehos = { juliendehos = {
email = "dehos@lisic.univ-littoral.fr"; email = "dehos@lisic.univ-littoral.fr";
github = "juliendehos"; github = "juliendehos";
githubId = 11947756;
name = "Julien Dehos"; name = "Julien Dehos";
}; };
jumper149 = { jumper149 = {
@ -3784,6 +3834,7 @@
jyp = { jyp = {
email = "jeanphilippe.bernardy@gmail.com"; email = "jeanphilippe.bernardy@gmail.com";
github = "jyp"; github = "jyp";
githubId = 27747;
name = "Jean-Philippe Bernardy"; name = "Jean-Philippe Bernardy";
}; };
jzellner = { jzellner = {
@ -3797,7 +3848,7 @@
email = "KAction@disroot.org"; email = "KAction@disroot.org";
github = "kaction"; github = "kaction";
githubId = 44864956; githubId = 44864956;
key = [{ keys = [{
longkeyid = "ed25519/0x749FD4DFA2E94236"; longkeyid = "ed25519/0x749FD4DFA2E94236";
fingerprint = "3F87 0A7C A7B4 3731 2F13 6083 749F D4DF A2E9 4236"; fingerprint = "3F87 0A7C A7B4 3731 2F13 6083 749F D4DF A2E9 4236";
}]; }];
@ -3833,6 +3884,7 @@
kampfschlaefer = { kampfschlaefer = {
email = "arnold@arnoldarts.de"; email = "arnold@arnoldarts.de";
github = "kampfschlaefer"; github = "kampfschlaefer";
githubId = 3831860;
name = "Arnold Krille"; name = "Arnold Krille";
}; };
karantan = { karantan = {
@ -3990,6 +4042,7 @@
email = "adrian@kummerlaender.eu"; email = "adrian@kummerlaender.eu";
name = "Adrian Kummerlaender"; name = "Adrian Kummerlaender";
github = "KnairdA"; github = "KnairdA";
githubId = 498373;
}; };
knedlsepp = { knedlsepp = {
email = "josef.kemetmueller@gmail.com"; email = "josef.kemetmueller@gmail.com";
@ -4012,6 +4065,7 @@
kolbycrouch = { kolbycrouch = {
email = "kjc.devel@gmail.com"; email = "kjc.devel@gmail.com";
github = "kolbycrouch"; github = "kolbycrouch";
githubId = 6346418;
name = "Kolby Crouch"; name = "Kolby Crouch";
}; };
konimex = { konimex = {
@ -4023,6 +4077,7 @@
koral = { koral = {
email = "koral@mailoo.org"; email = "koral@mailoo.org";
github = "k0ral"; github = "k0ral";
githubId = 524268;
name = "Koral"; name = "Koral";
}; };
kovirobi = { kovirobi = {
@ -4064,7 +4119,7 @@
kristian-brucaj = { kristian-brucaj = {
email = "kbrucaj@gmail.com"; email = "kbrucaj@gmail.com";
github = "kristian-brucaj"; github = "kristian-brucaj";
githubID = "8893110"; githubId = 8893110;
name = "Kristian Brucaj"; name = "Kristian Brucaj";
}; };
kristoff3r = { kristoff3r = {
@ -4124,6 +4179,7 @@
laikq = { laikq = {
email = "gwen@quasebarth.de"; email = "gwen@quasebarth.de";
github = "laikq"; github = "laikq";
githubId = 55911173;
name = "Gwendolyn Quasebarth"; name = "Gwendolyn Quasebarth";
}; };
lasandell = { lasandell = {
@ -4141,6 +4197,7 @@
lassulus = { lassulus = {
email = "lassulus@gmail.com"; email = "lassulus@gmail.com";
github = "Lassulus"; github = "Lassulus";
githubId = 621759;
name = "Lassulus"; name = "Lassulus";
}; };
lattfein = { lattfein = {
@ -4195,6 +4252,7 @@
lebastr = { lebastr = {
email = "lebastr@gmail.com"; email = "lebastr@gmail.com";
github = "lebastr"; github = "lebastr";
githubId = 887072;
name = "Alexander Lebedev"; name = "Alexander Lebedev";
}; };
ledif = { ledif = {
@ -4230,6 +4288,7 @@
leonardoce = { leonardoce = {
email = "leonardo.cecchi@gmail.com"; email = "leonardo.cecchi@gmail.com";
github = "leonardoce"; github = "leonardoce";
githubId = 1572058;
name = "Leonardo Cecchi"; name = "Leonardo Cecchi";
}; };
leshainc = { leshainc = {
@ -4393,6 +4452,7 @@
lovek323 = { lovek323 = {
email = "jason@oconal.id.au"; email = "jason@oconal.id.au";
github = "lovek323"; github = "lovek323";
githubId = 265084;
name = "Jason O'Conal"; name = "Jason O'Conal";
}; };
lovesegfault = { lovesegfault = {
@ -4432,6 +4492,7 @@
ltavard = { ltavard = {
email = "laure.tavard@univ-grenoble-alpes.fr"; email = "laure.tavard@univ-grenoble-alpes.fr";
github = "ltavard"; github = "ltavard";
githubId = 8555953;
name = "Laure Tavard"; name = "Laure Tavard";
}; };
luc65r = { luc65r = {
@ -4495,6 +4556,7 @@
lumi = { lumi = {
email = "lumi@pew.im"; email = "lumi@pew.im";
github = "lumi-me-not"; github = "lumi-me-not";
githubId = 26020062;
name = "lumi"; name = "lumi";
}; };
luz = { luz = {
@ -4678,6 +4740,7 @@
matthewbauer = { matthewbauer = {
email = "mjbauer95@gmail.com"; email = "mjbauer95@gmail.com";
github = "matthewbauer"; github = "matthewbauer";
githubId = 19036;
name = "Matthew Bauer"; name = "Matthew Bauer";
}; };
matthiasbeyer = { matthiasbeyer = {
@ -4695,6 +4758,7 @@
matti-kariluoma = { matti-kariluoma = {
email = "matti@kariluo.ma"; email = "matti@kariluo.ma";
github = "matti-kariluoma"; github = "matti-kariluoma";
githubId = 279868;
name = "Matti Kariluoma"; name = "Matti Kariluoma";
}; };
maurer = { maurer = {
@ -4820,6 +4884,7 @@
melsigl = { melsigl = {
email = "melanie.bianca.sigl@gmail.com"; email = "melanie.bianca.sigl@gmail.com";
github = "melsigl"; github = "melsigl";
githubId = 15093162;
name = "Melanie B. Sigl"; name = "Melanie B. Sigl";
}; };
melkor333 = { melkor333 = {
@ -4888,6 +4953,7 @@
michaelpj = { michaelpj = {
email = "michaelpj@gmail.com"; email = "michaelpj@gmail.com";
github = "michaelpj"; github = "michaelpj";
githubId = 1699466;
name = "Michael Peyton Jones"; name = "Michael Peyton Jones";
}; };
michalrus = { michalrus = {
@ -4899,6 +4965,7 @@
michelk = { michelk = {
email = "michel@kuhlmanns.info"; email = "michel@kuhlmanns.info";
github = "michelk"; github = "michelk";
githubId = 1404919;
name = "Michel Kuhlmann"; name = "Michel Kuhlmann";
}; };
michojel = { michojel = {
@ -4972,6 +5039,7 @@
mirdhyn = { mirdhyn = {
email = "mirdhyn@gmail.com"; email = "mirdhyn@gmail.com";
github = "mirdhyn"; github = "mirdhyn";
githubId = 149558;
name = "Merlin Gaillard"; name = "Merlin Gaillard";
}; };
mirrexagon = { mirrexagon = {
@ -5007,6 +5075,7 @@
mkf = { mkf = {
email = "m@mikf.pl"; email = "m@mikf.pl";
github = "mkf"; github = "mkf";
githubId = 7753506;
name = "Michał Krzysztof Feiler"; name = "Michał Krzysztof Feiler";
keys = [{ keys = [{
longkeyid = "rsa4096/0xE35C2D7C2C6AC724"; longkeyid = "rsa4096/0xE35C2D7C2C6AC724";
@ -5056,6 +5125,7 @@
mmlb = { mmlb = {
email = "manny@peekaboo.mmlb.icu"; email = "manny@peekaboo.mmlb.icu";
github = "mmlb"; github = "mmlb";
githubId = 708570;
name = "Manuel Mendez"; name = "Manuel Mendez";
}; };
mnacamura = { mnacamura = {
@ -5085,6 +5155,7 @@
Mogria = { Mogria = {
email = "m0gr14@gmail.com"; email = "m0gr14@gmail.com";
github = "mogria"; github = "mogria";
githubId = 754512;
name = "Mogria"; name = "Mogria";
}; };
monsieurp = { monsieurp = {
@ -5142,6 +5213,7 @@
MP2E = { MP2E = {
email = "MP2E@archlinux.us"; email = "MP2E@archlinux.us";
github = "MP2E"; github = "MP2E";
githubId = 167708;
name = "Cray Elliott"; name = "Cray Elliott";
}; };
mpcsh = { mpcsh = {
@ -5165,6 +5237,7 @@
mpscholten = { mpscholten = {
email = "marc@mpscholten.de"; email = "marc@mpscholten.de";
github = "mpscholten"; github = "mpscholten";
githubId = 2072185;
name = "Marc Scholten"; name = "Marc Scholten";
}; };
mpsyco = { mpsyco = {
@ -5182,6 +5255,7 @@
mredaelli = { mredaelli = {
email = "massimo@typish.io"; email = "massimo@typish.io";
github = "mredaelli"; github = "mredaelli";
githubId = 3073833;
name = "Massimo Redaelli"; name = "Massimo Redaelli";
}; };
mrkkrp = { mrkkrp = {
@ -5249,6 +5323,7 @@
MtP = { MtP = {
email = "marko.nixos@poikonen.de"; email = "marko.nixos@poikonen.de";
github = "MtP76"; github = "MtP76";
githubId = 2176611;
name = "Marko Poikonen"; name = "Marko Poikonen";
}; };
mtreskin = { mtreskin = {
@ -5314,6 +5389,7 @@
nand0p = { nand0p = {
email = "nando@hex7.com"; email = "nando@hex7.com";
github = "nand0p"; github = "nand0p";
githubId = 1916245;
name = "Fernando Jose Pando"; name = "Fernando Jose Pando";
}; };
Nate-Devv = { Nate-Devv = {
@ -5587,6 +5663,7 @@
olynch = { olynch = {
email = "owen@olynch.me"; email = "owen@olynch.me";
github = "olynch"; github = "olynch";
githubId = 4728903;
name = "Owen Lynch"; name = "Owen Lynch";
}; };
omnipotententity = { omnipotententity = {
@ -5610,6 +5687,7 @@
orbitz = { orbitz = {
email = "mmatalka@gmail.com"; email = "mmatalka@gmail.com";
github = "orbitz"; github = "orbitz";
githubId = 75299;
name = "Malcolm Matalka"; name = "Malcolm Matalka";
}; };
orivej = { orivej = {
@ -5745,6 +5823,7 @@
pcarrier = { pcarrier = {
email = "pc@rrier.ca"; email = "pc@rrier.ca";
github = "pcarrier"; github = "pcarrier";
githubId = 8641;
name = "Pierre Carrier"; name = "Pierre Carrier";
}; };
periklis = { periklis = {
@ -5890,6 +5969,7 @@
plchldr = { plchldr = {
email = "mail@oddco.de"; email = "mail@oddco.de";
github = "plchldr"; github = "plchldr";
githubId = 11639001;
name = "Jonas Beyer"; name = "Jonas Beyer";
}; };
plcplc = { plcplc = {
@ -5913,6 +5993,7 @@
pmeunier = { pmeunier = {
email = "pierre-etienne.meunier@inria.fr"; email = "pierre-etienne.meunier@inria.fr";
github = "P-E-Meunier"; github = "P-E-Meunier";
githubId = 17021304;
name = "Pierre-Étienne Meunier"; name = "Pierre-Étienne Meunier";
}; };
pmiddend = { pmiddend = {
@ -5942,6 +6023,7 @@
polyrod = { polyrod = {
email = "dc1mdp@gmail.com"; email = "dc1mdp@gmail.com";
github = "polyrod"; github = "polyrod";
githubId = 24878306;
name = "Maurizio Di Pietro"; name = "Maurizio Di Pietro";
}; };
pombeirp = { pombeirp = {
@ -6121,11 +6203,13 @@
raboof = { raboof = {
email = "arnout@bzzt.net"; email = "arnout@bzzt.net";
github = "raboof"; github = "raboof";
githubId = 131856;
name = "Arnout Engelen"; name = "Arnout Engelen";
}; };
rafaelgg = { rafaelgg = {
email = "rafael.garcia.gallego@gmail.com"; email = "rafael.garcia.gallego@gmail.com";
github = "rafaelgg"; github = "rafaelgg";
githubId = 1016742;
name = "Rafael García"; name = "Rafael García";
}; };
raquelgb = { raquelgb = {
@ -6297,6 +6381,7 @@
rickynils = { rickynils = {
email = "rickynils@gmail.com"; email = "rickynils@gmail.com";
github = "rickynils"; github = "rickynils";
githubId = 16779;
name = "Rickard Nilsson"; name = "Rickard Nilsson";
}; };
rika = { rika = {
@ -6374,11 +6459,13 @@
rob = { rob = {
email = "rob.vermaas@gmail.com"; email = "rob.vermaas@gmail.com";
github = "rbvermaa"; github = "rbvermaa";
githubId = 353885;
name = "Rob Vermaas"; name = "Rob Vermaas";
}; };
robberer = { robberer = {
email = "robberer@freakmail.de"; email = "robberer@freakmail.de";
github = "robberer"; github = "robberer";
githubId = 6204883;
name = "Longrin Wischnewski"; name = "Longrin Wischnewski";
}; };
robbinch = { robbinch = {
@ -6498,6 +6585,7 @@
rvolosatovs = { rvolosatovs = {
email = "rvolosatovs@riseup.net"; email = "rvolosatovs@riseup.net";
github = "rvolosatovs"; github = "rvolosatovs";
githubId = 12877905;
name = "Roman Volosatovs"; name = "Roman Volosatovs";
}; };
ryanartecona = { ryanartecona = {
@ -6509,6 +6597,7 @@
ryansydnor = { ryansydnor = {
email = "ryan.t.sydnor@gmail.com"; email = "ryan.t.sydnor@gmail.com";
github = "ryansydnor"; github = "ryansydnor";
githubId = 1832096;
name = "Ryan Sydnor"; name = "Ryan Sydnor";
}; };
ryantm = { ryantm = {
@ -6600,6 +6689,7 @@
sander = { sander = {
email = "s.vanderburg@tudelft.nl"; email = "s.vanderburg@tudelft.nl";
github = "svanderburg"; github = "svanderburg";
githubId = 1153271;
name = "Sander van der Burg"; name = "Sander van der Burg";
}; };
sargon = { sargon = {
@ -6635,6 +6725,7 @@
scalavision = { scalavision = {
email = "scalavision@gmail.com"; email = "scalavision@gmail.com";
github = "scalavision"; github = "scalavision";
githubId = 3958212;
name = "Tom Sorlie"; name = "Tom Sorlie";
}; };
schmitthenner = { schmitthenner = {
@ -6644,8 +6735,10 @@
name = "Fabian Schmitthenner"; name = "Fabian Schmitthenner";
}; };
schmittlauch = { schmittlauch = {
name = "Trolli Schmittlauch";
email = "t.schmittlauch+nixos@orlives.de"; email = "t.schmittlauch+nixos@orlives.de";
github = "schmittlauch"; github = "schmittlauch";
githubId = 1479555;
}; };
schneefux = { schneefux = {
email = "schneefux+nixos_pkg@schneefux.xyz"; email = "schneefux+nixos_pkg@schneefux.xyz";
@ -6684,6 +6777,7 @@
scubed2 = { scubed2 = {
email = "scubed2@gmail.com"; email = "scubed2@gmail.com";
github = "scubed2"; github = "scubed2";
githubId = 7401858;
name = "Sterling Stein"; name = "Sterling Stein";
}; };
sdier = { sdier = {
@ -6743,7 +6837,7 @@
servalcatty = { servalcatty = {
email = "servalcat@pm.me"; email = "servalcat@pm.me";
github = "servalcatty"; github = "servalcatty";
githubid = 51969817; githubId = 51969817;
name = "Serval"; name = "Serval";
keys = [{ keys = [{
longkeyid = "rsa4096/0x4A2AAAA382F8294C"; longkeyid = "rsa4096/0x4A2AAAA382F8294C";
@ -6789,6 +6883,7 @@
shazow = { shazow = {
email = "andrey.petrov@shazow.net"; email = "andrey.petrov@shazow.net";
github = "shazow"; github = "shazow";
githubId = 6292;
name = "Andrey Petrov"; name = "Andrey Petrov";
}; };
sheenobu = { sheenobu = {
@ -6812,16 +6907,19 @@
shlevy = { shlevy = {
email = "shea@shealevy.com"; email = "shea@shealevy.com";
github = "shlevy"; github = "shlevy";
githubId = 487050;
name = "Shea Levy"; name = "Shea Levy";
}; };
shmish111 = { shmish111 = {
email = "shmish111@gmail.com"; email = "shmish111@gmail.com";
github = "shmish111"; github = "shmish111";
githubId = 934267;
name = "David Smith"; name = "David Smith";
}; };
shnarazk = { shnarazk = {
email = "shujinarazaki@protonmail.com"; email = "shujinarazaki@protonmail.com";
github = "shnarazk"; github = "shnarazk";
githubId = 997855;
name = "Narazaki Shuji"; name = "Narazaki Shuji";
}; };
shou = { shou = {
@ -6909,6 +7007,7 @@
sjmackenzie = { sjmackenzie = {
email = "setori88@gmail.com"; email = "setori88@gmail.com";
github = "sjmackenzie"; github = "sjmackenzie";
githubId = 158321;
name = "Stewart Mackenzie"; name = "Stewart Mackenzie";
}; };
sjourdois = { sjourdois = {
@ -7042,6 +7141,7 @@
sprock = { sprock = {
email = "rmason@mun.ca"; email = "rmason@mun.ca";
github = "sprock"; github = "sprock";
githubId = 6391601;
name = "Roger Mason"; name = "Roger Mason";
}; };
spwhitt = { spwhitt = {
@ -7053,6 +7153,7 @@
srghma = { srghma = {
email = "srghma@gmail.com"; email = "srghma@gmail.com";
github = "srghma"; github = "srghma";
githubId = 7573215;
name = "Sergei Khoma"; name = "Sergei Khoma";
}; };
srgom = { srgom = {
@ -7270,6 +7371,7 @@
taha = { taha = {
email = "xrcrod@gmail.com"; email = "xrcrod@gmail.com";
github = "tgharib"; github = "tgharib";
githubId = 6457015;
name = "Taha Gharib"; name = "Taha Gharib";
}; };
tailhook = { tailhook = {
@ -7353,6 +7455,7 @@
tckmn = { tckmn = {
email = "andy@tck.mn"; email = "andy@tck.mn";
github = "tckmn"; github = "tckmn";
githubId = 2389333;
name = "Andy Tockman"; name = "Andy Tockman";
}; };
teh = { teh = {
@ -7382,11 +7485,13 @@
tesq0 = { tesq0 = {
email = "mikolaj.galkowski@gmail.com"; email = "mikolaj.galkowski@gmail.com";
github = "tesq0"; github = "tesq0";
githubId = 26417242;
name = "Mikolaj Galkowski"; name = "Mikolaj Galkowski";
}; };
teto = { teto = {
email = "mcoudron@hotmail.com"; email = "mcoudron@hotmail.com";
github = "teto"; github = "teto";
githubId = 886074;
name = "Matthieu Coudron"; name = "Matthieu Coudron";
}; };
tex = { tex = {
@ -7428,6 +7533,7 @@
the-kenny = { the-kenny = {
email = "moritz@tarn-vedra.de"; email = "moritz@tarn-vedra.de";
github = "the-kenny"; github = "the-kenny";
githubId = 31167;
name = "Moritz Ulrich"; name = "Moritz Ulrich";
}; };
thedavidmeister = { thedavidmeister = {
@ -7515,11 +7621,13 @@
timbertson = { timbertson = {
email = "tim@gfxmonk.net"; email = "tim@gfxmonk.net";
github = "timbertson"; github = "timbertson";
githubId = 14172;
name = "Tim Cuthbertson"; name = "Tim Cuthbertson";
}; };
timma = { timma = {
email = "kunduru.it.iitb@gmail.com"; email = "kunduru.it.iitb@gmail.com";
github = "ktrsoft"; github = "ktrsoft";
githubId = 12712927;
name = "Timma"; name = "Timma";
}; };
timokau = { timokau = {
@ -7571,6 +7679,7 @@
tnias = { tnias = {
email = "phil@grmr.de"; email = "phil@grmr.de";
github = "tnias"; github = "tnias";
githubId = 9853194;
name = "Philipp Bartsch"; name = "Philipp Bartsch";
}; };
tobim = { tobim = {
@ -7666,6 +7775,7 @@
tscholak = { tscholak = {
email = "torsten.scholak@googlemail.com"; email = "torsten.scholak@googlemail.com";
github = "tscholak"; github = "tscholak";
githubId = 1568873;
name = "Torsten Scholak"; name = "Torsten Scholak";
}; };
tstrobel = { tstrobel = {
@ -7687,6 +7797,7 @@
tvestelind = { tvestelind = {
email = "tomas.vestelind@fripost.org"; email = "tomas.vestelind@fripost.org";
github = "tvestelind"; github = "tvestelind";
githubId = 699403;
name = "Tomas Vestelind"; name = "Tomas Vestelind";
}; };
tvorog = { tvorog = {
@ -7698,11 +7809,13 @@
tweber = { tweber = {
email = "tw+nixpkgs@360vier.de"; email = "tw+nixpkgs@360vier.de";
github = "thorstenweber83"; github = "thorstenweber83";
githubId = 9413924;
name = "Thorsten Weber"; name = "Thorsten Weber";
}; };
twey = { twey = {
email = "twey@twey.co.uk"; email = "twey@twey.co.uk";
github = "twey"; github = "Twey";
githubId = 101639;
name = "James Twey Kay"; name = "James Twey Kay";
}; };
twhitehead = { twhitehead = {
@ -7766,6 +7879,7 @@
uwap = { uwap = {
email = "me@uwap.name"; email = "me@uwap.name";
github = "uwap"; github = "uwap";
githubId = 2212422;
name = "uwap"; name = "uwap";
}; };
va1entin = { va1entin = {
@ -7783,12 +7897,13 @@
valebes = { valebes = {
email = "valebes@gmail.com"; email = "valebes@gmail.com";
github = "valebes"; github = "valebes";
githubid = 10956211; githubId = 10956211;
name = "Valerio Besozzi"; name = "Valerio Besozzi";
}; };
valeriangalliat = { valeriangalliat = {
email = "val@codejam.info"; email = "val@codejam.info";
github = "valeriangalliat"; github = "valeriangalliat";
githubId = 3929133;
name = "Valérian Galliat"; name = "Valérian Galliat";
}; };
valodim = { valodim = {
@ -7836,6 +7951,7 @@
vcanadi = { vcanadi = {
email = "vito.canadi@gmail.com"; email = "vito.canadi@gmail.com";
github = "vcanadi"; github = "vcanadi";
githubId = 8889722;
name = "Vitomir Čanadi"; name = "Vitomir Čanadi";
}; };
vcunat = { vcunat = {
@ -7898,6 +8014,7 @@
viric = { viric = {
email = "viric@viric.name"; email = "viric@viric.name";
github = "viric"; github = "viric";
githubId = 66664;
name = "Lluís Batlle i Rossell"; name = "Lluís Batlle i Rossell";
}; };
virusdave = { virusdave = {
@ -7909,6 +8026,7 @@
vizanto = { vizanto = {
email = "danny@prime.vc"; email = "danny@prime.vc";
github = "vizanto"; github = "vizanto";
githubId = 326263;
name = "Danny Wilson"; name = "Danny Wilson";
}; };
vklquevs = { vklquevs = {
@ -7938,6 +8056,7 @@
vmchale = { vmchale = {
email = "tmchale@wisc.edu"; email = "tmchale@wisc.edu";
github = "vmchale"; github = "vmchale";
githubId = 13259982;
name = "Vanessa McHale"; name = "Vanessa McHale";
}; };
volhovm = { volhovm = {
@ -8061,6 +8180,7 @@
wscott = { wscott = {
email = "wsc9tt@gmail.com"; email = "wsc9tt@gmail.com";
github = "wscott"; github = "wscott";
githubId = 31487;
name = "Wayne Scott"; name = "Wayne Scott";
}; };
wucke13 = { wucke13 = {
@ -8114,6 +8234,7 @@
xnaveira = { xnaveira = {
email = "xnaveira@gmail.com"; email = "xnaveira@gmail.com";
github = "xnaveira"; github = "xnaveira";
githubId = 2534411;
name = "Xavier Naveira"; name = "Xavier Naveira";
}; };
xnwdd = { xnwdd = {
@ -8155,6 +8276,7 @@
y0no = { y0no = {
email = "y0no@y0no.fr"; email = "y0no@y0no.fr";
github = "y0no"; github = "y0no";
githubId = 2242427;
name = "Yoann Ono"; name = "Yoann Ono";
}; };
yarny = { yarny = {
@ -8236,6 +8358,7 @@
yvesf = { yvesf = {
email = "yvesf+nix@xapek.org"; email = "yvesf+nix@xapek.org";
github = "yvesf"; github = "yvesf";
githubId = 179548;
name = "Yves Fischer"; name = "Yves Fischer";
}; };
yvt = { yvt = {
@ -8265,6 +8388,7 @@
zalakain = { zalakain = {
email = "ping@umazalakain.info"; email = "ping@umazalakain.info";
github = "umazalakain"; github = "umazalakain";
githubId = 1319905;
name = "Uma Zalakain"; name = "Uma Zalakain";
}; };
zaninime = { zaninime = {
@ -8425,6 +8549,7 @@
name = "Nicholas Gerstle"; name = "Nicholas Gerstle";
email = "ngerstle@gmail.com"; email = "ngerstle@gmail.com";
github = "ngerstle"; github = "ngerstle";
githubId = 1023752;
}; };
xavierzwirtz = { xavierzwirtz = {
email = "me@xavierzwirtz.com"; email = "me@xavierzwirtz.com";