nixpkgs/maintainers/scripts
Silvan Mosberger 1ea51e1f1a lib.teams: Remove .githubTeams in favor of singular .github
No team was using the feature of having multiple GitHub teams, and this
would make it tricky to try to sync maintainer teams with GitHub teams.
2025-10-08 21:44:39 +02:00
..
auto-rebase treewide: nixfmt-rfc-style -> nixfmt 2025-07-15 22:14:18 +02:00
bootstrap-files treewide: fix typos in md files (#439306) 2025-09-09 08:03:31 +00:00
check-maintainer-usernames
convert-to-import-cargo-lock treewide: remove optional builtins prefixes from prelude functions 2025-09-30 09:05:08 +02:00
doc
haskell Merge branch 'master' into staging-next 2025-10-05 08:18:28 +02:00
kde scripts/kde: handle missing hashes gracefully 2025-07-15 14:14:37 +03:00
pluginupdate-py pluginupdate.py: normalize input for filtering plugins 2025-08-30 12:59:29 +02:00
__init__.py
all-tarballs.nix
build.nix
check-by-name.sh
check-hydra-by-maintainer.nix
check-maintainer-github-handles.sh
convert-to-import-cargo-lock.sh
copy-tarballs.pl copy-tarballs: drop perl bindings 2025-09-30 16:02:29 +02:00
db-to-md.sh
debian-patches.sh
dep-licenses.sh
eval-release.nix
eval-release.sh
feature-freeze-teams.pl lib.teams: Remove .githubTeams in favor of singular .github 2025-10-08 21:44:39 +02:00
fetch-kde-qt.sh
find-tarballs.nix
fix-maintainers.pl
get-maintainer-pings-between.sh
get-maintainer.sh
hydra-eval-failures.py
hydra_eval_check
luarocks-config.lua
luarocks-packages.csv luaPackages.lrexlib-oniguruma: init at 2.9.2-1 2025-06-24 14:23:28 +02:00
nix-call-package
nix-diff.sh
nix-generate-from-cpan.nix
nix-generate-from-cpan.pl
nixpkgs-lint.nix
nixpkgs-lint.pl
patchelf-hints.sh
README.md maintainers: fix typos in md files 2025-09-09 13:14:35 +07:00
rebuild-amount.sh treewide: remove optional builtins prefixes from prelude functions 2025-09-30 09:05:08 +02:00
remove-old-aliases.py
sha-to-sri.py
update-channel-branches.sh
update-dotnet-lockfiles.nix dotnet: remove nuget-to-nix support 2025-08-27 18:25:04 -07:00
update-octave-packages
update-octave-shell.nix
update-python-libraries
update-redirected-urls.sh
update-ruby-packages
update-typst-packages.py
update.nix treewide: remove optional builtins prefixes from prelude functions 2025-09-30 09:05:08 +02:00
update.py maintainers/scripts/update.nix: Run updateScript in development shell 2025-07-18 19:03:12 +02:00
vanity-manual-equalities.txt
vanity.sh

Maintainer scripts

This folder contains various executable scripts for nixpkgs maintainers, and supporting data or nixlang files as needed. These scripts generally aren't a stable interface and may be changed or be removed.

What follows is a (very incomplete) overview of available scripts.

Metadata

get-maintainer.sh

get-maintainer.sh [selector] value returns a JSON object describing a given nixpkgs maintainer, equivalent to lib.maintainers.${x} // { handle = x; }.

This allows looking up a maintainer's attrset (including GitHub and Matrix handles, email address etc.) based on any of their handles, more correctly and robustly than text search through maintainer-list.nix.

 ./get-maintainer.sh nicoo
{
  "email": "nicoo@debian.org",
  "github": "nicoonoclaste",
  "githubId": 1155801,
  "keys": [
    {
      "fingerprint": "E44E 9EA5 4B8E 256A FB73 49D3 EC9D 3708 72BC 7A8C"
    }
  ],
  "name": "nicoo",
  "handle": "nicoo"
}

 ./get-maintainer.sh name 'Silvan Mosberger'
{
  "email": "contact@infinisil.com",
  "github": "infinisil",
  "githubId": 20525370,
  "keys": [
    {
      "fingerprint": "6C2B 55D4 4E04 8266 6B7D  DA1A 422E 9EDA E015 7170"
    }
  ],
  "matrix": "@infinisil:matrix.org",
  "name": "Silvan Mosberger",
  "handle": "infinisil"
}

The maintainer is designated by a selector which must be one of:

  • handle (default): the maintainer's attribute name in lib.maintainers;
  • email, name, github, githubId, matrix, name: attributes of the maintainer's object, matched exactly; see maintainer-list.nix for the fields' definition.

get-maintainer-pings-between.sh

Gets which maintainers would be pinged between two Nixpkgs revisions. Outputs a JSON object on stdout mapping GitHub usernames to the attributes that they would be getting pinged for.

Example:

maintainers/scripts/get-maintainer-pings-between.sh HEAD^ HEAD

Conventions

sha-to-sri.py

sha-to-sri.py path ... (atomically) rewrites hash attributes (named hash or sha(1|256|512)) into the SRI format: hash = "{hash name}-{base64 encoded value}".

path must point to either a nix file, or a directory which will be automatically traversed.

sha-to-sri.py automatically skips files whose first non-empty line contains generated by or do not edit. Moreover, when walking a directory tree, the script will skip files whose name is yarn.nix or contains generated.