1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-06-08 02:38:11 +09:00
nixpkgs/maintainers/scripts
Wolfgang Walther ad4b36d2d2
ci/check-cherry-picks: move from maintainers/scripts
The script is part of CI and changes to it should be reviewed by the CI
owners. Thus moving it to ci/ is the most sensible thing to do.
2025-05-28 12:52:36 +02:00
..
auto-rebase maintainers/scripts/auto-rebase: init 2025-01-21 20:29:25 +01:00
bootstrap-files maintainers/scripts/bootstrap-files: Add loongarch64 to CROSS_TARGETS 2025-04-23 22:57:38 +08:00
check-maintainer-usernames maintainers/scripts: add check-maintainer-usernames 2024-12-06 14:18:06 +01:00
convert-to-import-cargo-lock treewide: format all inactive Nix files 2024-12-10 20:26:33 +01:00
doc
haskell maintainers/scripts/haskell/regenerate-hackage-packages.sh: run nixfmt without --fast as well 2025-04-06 11:35:14 +02:00
kde maintainers/scripts/kde: fix Rust update logic 2025-05-08 15:04:52 +03:00
pluginupdate-py pluginupdate: fix AttributeError when handling HTTPResponse objects 2025-05-18 09:06:48 -05:00
__init__.py
all-tarballs.nix treewide: format all inactive Nix files 2024-12-10 20:26:33 +01:00
build.nix treewide: format all inactive Nix files 2024-12-10 20:26:33 +01:00
check-by-name.sh nixpkgs-vet: update CI, docs, and release to 0.1.4 2024-09-03 13:53:25 -07:00
check-hydra-by-maintainer.nix treewide: format all inactive Nix files 2024-12-10 20:26:33 +01:00
check-maintainer-github-handles.sh
convert-to-import-cargo-lock.sh
copy-tarballs.pl
db-to-md.sh
debian-patches.sh
dep-licenses.sh
eval-release.nix treewide: format all inactive Nix files 2024-12-10 20:26:33 +01:00
eval-release.sh
feature-freeze-teams.pl
fetch-kde-qt.sh maintainers/scripts/fetch-kde-qt.sh: hardcode path instead of using $0 2024-10-08 14:21:49 +03:00
find-tarballs.nix treewide: format all inactive Nix files 2024-12-10 20:26:33 +01:00
fix-maintainers.pl
get-maintainer-pings-between.sh maintainers/scripts: add get-maintainer-pings-between.sh 2025-04-17 23:54:30 -07:00
get-maintainer.sh
hydra-eval-failures.py
hydra_eval_check
luarocks-config.lua
luarocks-packages.csv Merge staging-next into staging 2025-05-01 06:06:34 +00:00
nix-call-package
nix-diff.sh
nix-generate-from-cpan.nix treewide: format all inactive Nix files 2024-12-10 20:26:33 +01:00
nix-generate-from-cpan.pl
nixpkgs-lint.nix maintainers/scripts: remove with lib from meta 2025-01-07 14:27:16 -03:00
nixpkgs-lint.pl
patchelf-hints.sh
README.md treewide: maintainers-list.nix -> maintainer-list.nix (#409585) 2025-05-22 15:42:16 +05:30
rebuild-amount.sh
remove-old-aliases.py
sha-to-sri.py maintainers/scripts/sha-to-sri: ignore gemset.nix files 2024-09-15 11:24:30 +02:00
update-channel-branches.sh
update-dotnet-lockfiles.nix update-dotnet-lockfiles: update comment to mention nuget-to-json 2024-12-17 19:46:36 -03:00
update-octave-packages
update-octave-shell.nix treewide: format all inactive Nix files 2024-12-10 20:26:33 +01:00
update-python-libraries update-python-libraries: fix helper script after by-name migration 2024-12-05 23:26:00 +01:00
update-redirected-urls.sh
update-ruby-packages
update-typst-packages.py typst: add support to instantiate typst with a set of typst packages 2025-04-06 09:02:03 +02:00
update.nix maintainers/scripts/update: Allow updating in (reverse) topological order 2025-03-03 00:46:17 +01:00
update.py maintainers/scripts/update.nix: Fix reverse toposort with independent packages 2025-05-07 00:49:25 +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 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": "nbraud",
  "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.