nixpkgs/maintainers/scripts
PerchunPak a6fe798a01
pluginupdate.py: fix bugs and add improvements
I fixed many hidden bugs and made some small improvements. The main
reason this was separated from #336137 is to fix the sorting issue.

Before this commit, sorting for Vim plugins was broken and worked by
what was fetched first. This is because the sorting was done by empty
strings (the default value in CSV is not None but an empty string). This
PR fixes it and also moves sorting from the user to the library (from
`vim/plugins/update.py` to `pluginupdate.py`) to prevent such weird
issues and duplication of code.
2024-11-09 00:20:38 +01:00
..
bootstrap-files maintainers/scripts/bootstrap-files: Add s390x to CROSS_TARGETS 2024-08-05 13:02:00 +02:00
convert-to-import-cargo-lock treewide: replace stdenv.is with stdenv.hostPlatform.is 2024-09-25 00:04:37 +03:00
doc doc/manpage-urls.json: Add *all* systemd manpages 2023-12-12 23:06:11 +00:00
haskell hydra: rename from hydra_unstable 2024-08-29 13:56:32 +10:00
kde kdePackages: Plasma 6.1.5 -> 6.2.0 2024-10-08 15:31:24 +03:00
pluginupdate-py pluginupdate.py: fix bugs and add improvements 2024-11-09 00:20:38 +01:00
__init__.py vimPluginsUpdater: make development easier 2024-07-15 10:31:28 +02:00
all-tarballs.nix release.nix: namespace bootstrap tools with triples 2023-10-07 19:38:01 +00:00
build.nix maintainers: add targeted fix for missing pkgs/by-name/.../package.nix files to maintainers/scripts/build.nix 2024-09-10 08:41:15 -07: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-cherry-picks.sh check-cherry-picks.sh maintainer script: add clarifying message regarding differences found 2024-04-10 22:21:08 +01:00
check-hydra-by-maintainer.nix maintainers/scripts/check-hydra-by-maintainer: remove pkgs.lib use 2023-05-22 23:28:53 +02:00
check-maintainer-github-handles.sh
check-maintainers-sorted.nix maintainers: add script and workflows to check sortedness 2023-03-15 11:07:54 +01:00
convert-to-import-cargo-lock.sh maintainers/scripts/convert-to-import-cargo-lock: init 2023-03-26 00:02:15 +01:00
copy-tarballs.pl maintainers/scripts/copy-tarballs.pl: switch nix version 2024-06-14 09:23:21 +02:00
db-to-md.sh
debian-patches.sh
dep-licenses.sh
eval-release.nix maintainers/scripts/eval-release: don't special case xbursttools 2024-04-22 22:43:29 +03: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 Avoid with lib; at the top level in maintainers/scripts/find-tarballs.nix 2024-03-06 12:10:16 -08:00
fix-maintainers.pl maintainers/fix-maintainers.pl: error on unset GH_TOKEN 2023-10-09 09:05:38 -04:00
get-maintainer.sh maintainers-list.nix: Document (current) invitation process, add get-maintainer.sh (#267084) 2023-12-08 02:57:38 +01:00
hydra_eval_check
hydra-eval-failures.py
luarocks-config.lua
luarocks-packages.csv luarocks-packages.csv: fix sorting 2024-10-23 23:17:02 -05:00
nix-call-package
nix-diff.sh
nix-generate-from-cpan.nix treewide: add meta.mainProgram to packages with a single binary 2024-03-19 03:14:51 +01:00
nix-generate-from-cpan.pl nix-generate-from-cpan: generate SRI hashes 2023-07-16 15:43:23 +01:00
nixpkgs-lint.nix nixpkgs-lint: refactor to pname+version and dontBuild 2024-05-25 01:04:33 +02:00
nixpkgs-lint.pl
patchelf-hints.sh
README.md maintainers/scripts: document sha-to-sri 2024-09-13 10:15:19 +00:00
rebuild-amount.sh rebuild-amount: Fix 'SC2155 (warning): Declare and assign separately to avoid masking return values.' 2024-06-20 14:37:25 +12:00
remove-old-aliases.py maintainers/scripts/remove-old-aliases: Drop pkgs. prefix if present 2023-09-12 11:41:36 +00:00
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: add startWith flag 2024-09-17 01:14:28 -03:00
update-octave-packages octavePackages: add automatic updating script based on Python's 2023-03-15 15:58:01 +02:00
update-octave-shell.nix octavePackages: add automatic updating script based on Python's 2023-03-15 15:58:01 +02:00
update-python-libraries update-python-libraries: Add support for fetchgit 2023-02-27 02:21:07 +00:00
update-redirected-urls.sh
update-ruby-packages
update.nix treewide: remove executable bit from .nix files 2024-09-14 13:08:57 +02:00
update.py maintainers/scripts/update.nix: avoid deadlock 2024-10-14 18:47:31 -03: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 maintainers-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.

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.