nixpkgs/maintainers/scripts
Artturin e0464e4788 treewide: replace stdenv.is with stdenv.hostPlatform.is
In preparation for the deprecation of `stdenv.isX`.

These shorthands are not conducive to cross-compilation because they
hide the platforms.

Darwin might get cross-compilation for which the continued usage of `stdenv.isDarwin` will get in the way

One example of why this is bad and especially affects compiler packages
https://www.github.com/NixOS/nixpkgs/pull/343059

There are too many files to go through manually but a treewide should
get users thinking when they see a `hostPlatform.isX` in a place where it
doesn't make sense.

```
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv.is" "stdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenv'.is" "stdenv'.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "clangStdenv.is" "clangStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "gccStdenv.is" "gccStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "stdenvNoCC.is" "stdenvNoCC.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "inherit (stdenv) is" "inherit (stdenv.hostPlatform) is"
fd --type f "\.nix" | xargs sd --fixed-strings "buildStdenv.is" "buildStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "effectiveStdenv.is" "effectiveStdenv.hostPlatform.is"
fd --type f "\.nix" | xargs sd --fixed-strings "originalStdenv.is" "originalStdenv.hostPlatform.is"
```
2024-09-25 00:04:37 +03: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
haskell hydra: rename from hydra_unstable 2024-08-29 13:56:32 +10:00
kde maintainers/scripts/kde: fix for nixfmt style 2024-09-20 08:56:56 +03:00
pluginupdate-py packages luarocks updater as pyproject package (#343584) 2024-09-22 21:15:41 +02:00
__init__.py vimPluginsUpdater: make development easier 2024-07-15 10:31:28 +02:00
all-tarballs.nix
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
check-maintainer-github-handles.sh
check-maintainers-sorted.nix
convert-to-import-cargo-lock.sh
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
find-tarballs.nix
fix-maintainers.pl
get-maintainer.sh
hydra-eval-failures.py
hydra_eval_check
luarocks-config.lua
luarocks-packages.csv luaPackages.neorg: init at 9.1.1-1 2024-09-24 10:06:58 +02:00
nix-call-package
nix-diff.sh
nix-generate-from-cpan.nix
nix-generate-from-cpan.pl
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
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: add startWith flag 2024-09-17 01:14:28 -03:00
update-octave-packages
update-octave-shell.nix
update-python-libraries
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.py: Fix worktree cleanup on failure 2024-07-13 15:48:17 +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 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.