nixpkgs/maintainers/scripts
2026-02-27 21:55:08 +00:00
..
audit-ruby-packages rubyPackages: Add command to audit packages 2025-09-18 13:58:53 +02:00
auto-rebase treewide: nixfmt-rfc-style -> nixfmt 2025-07-15 22:14:18 +02:00
bootstrap-files treewide: fix typos (#479869) 2026-01-24 21:36:44 +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 maintainers/haskell/upload-nixos-package-list: ignore aliases 2026-02-25 13:24:54 +01:00
kde scripts/kde: handle missing hashes gracefully 2025-07-15 14:14:37 +03:00
__init__.py
all-tarballs.nix
build.nix
check-by-name.sh
check-hydra-by-maintainer.nix maintainers/scripts/check-hydra-by-maintainer: use concatStringsSep 2025-11-18 10:32:36 +00:00
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 debian-patches.sh: fix lib prefix in url 2025-12-27 16:59:29 +08:00
dep-licenses.sh
eval-release.nix
eval-release.sh
feature-freeze-teams.pl lib.teams: Remove dummy Nixpkgs committers team and hardcode into feature freeze script 2025-10-27 19:33:06 +01:00
fetch-kde-qt.sh
find-tarballs.nix
fix-maintainers.pl
get-maintainer.sh
hydra-eval-failures.py
hydra_eval_check
luarocks-config.lua
luarocks-packages.csv luaPackages.luaposix: 34.1.1-1 -> 36.3-1 (#494581) 2026-02-27 21:55:08 +00:00
nix-call-package
nix-diff.sh
nix-generate-from-cpan.nix maintainers: drop eelco 2026-01-10 22:50:43 +01:00
nix-generate-from-cpan.pl
nixpkgs-lint.nix maintainers: drop eelco 2026-01-10 22:50:43 +01:00
nixpkgs-lint.pl
patchelf-hints.sh
README.md treewide: fix typos 2026-01-13 14:45:11 -05:00
rebuild-amount.sh treewide: remove optional builtins prefixes from prelude functions 2025-09-30 09:05:08 +02:00
remove-old-aliases.py aliases: add warnAlias 2025-10-28 18:38:09 +00:00
sha-to-sri.py
update-channel-branches.sh treewide: switch to channels.nixos.org 2025-11-17 23:41:39 +01:00
update-dotnet-lockfiles.nix dotnet: remove nuget-to-nix support 2025-08-27 18:25:04 -07:00
update-octave-packages update-octave-packages: update tag instead of rev 2026-01-15 18:27:43 +01:00
update-octave-shell.nix
update-python-libraries
update-redirected-urls.sh
update-ruby-packages maintainers/scripts/update-ruby-packages: Add version regression checks 2025-11-14 22:11:37 -05:00
update-ruby-packages.checks.nix maintainers/scripts/update-ruby-packages: Add version regression checks 2025-11-14 22:11:37 -05:00
update-typst-packages.py maintainers/scripts/update-typst-packages.py: Skip packages that cannot be found in the registry 2025-09-22 17:32:02 -04:00
update.nix treewide: remove optional builtins prefixes from prelude functions 2025-09-30 09:05:08 +02:00
update.py maintainers/scripts/update.nix: Print stderr on instantiation failure 2025-11-03 10:50:00 +01: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: attributes of the maintainer's object, matched exactly; see maintainer-list.nix for the fields' definition.

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.