From 51ddcb481f73e90137a19b2948a77185d885b794 Mon Sep 17 00:00:00 2001 From: Marcel Date: Sat, 12 Apr 2025 02:53:40 +0200 Subject: [PATCH 01/84] prometheus-mailman3-exporter: init at 0.9.1 --- .../prometheus-mailman3-exporter/package.nix | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 pkgs/by-name/pr/prometheus-mailman3-exporter/package.nix diff --git a/pkgs/by-name/pr/prometheus-mailman3-exporter/package.nix b/pkgs/by-name/pr/prometheus-mailman3-exporter/package.nix new file mode 100644 index 000000000000..b15a356c6e37 --- /dev/null +++ b/pkgs/by-name/pr/prometheus-mailman3-exporter/package.nix @@ -0,0 +1,63 @@ +{ + lib, + python3, + stdenv, + fetchFromGitHub, + fetchpatch2, +}: + +let + python = python3.withPackages ( + pp: with pp; [ + certifi + charset-normalizer + idna + prometheus-client + requests + six + urllib3 + ] + ); +in +stdenv.mkDerivation rec { + pname = "mailman3-exporter"; + version = "0.9.1"; + + src = fetchFromGitHub { + owner = "rivimey"; + repo = "mailman3_exporter"; + tag = version; + hash = "sha256-IupfZ3/MXBYpIyH8kJRc+WYabzSZyIu1WDITKTB5+Zc="; + }; + + patches = [ + # https://github.com/rivimey/mailman3_exporter/pull/3 + (fetchpatch2 { + url = "https://github.com/MarcelCoding/mailman3_exporter/commit/65070106451c6aafe8956387111343e490e34df8.patch?full_index=1"; + hash = "sha256-2XM0ktLC4+7/PEgeToVR84Gfjx1UKxl/+jo6JGnVZMw="; + }) + # https://github.com/rivimey/mailman3_exporter/pull/4 + (fetchpatch2 { + url = "https://github.com/MarcelCoding/mailman3_exporter/commit/a7850a1e9ce65f91683eef67eb1c6537c2c2eb77.patch?full_index=1"; + hash = "sha256-bBIin/7Y1bWrvxCuw1kJG8gaoKjkKdQnxfqpRipvyFs="; + }) + ]; + + buildInputs = [ + python + ]; + + installPhase = '' + install -D mailman_exporter.py $out/bin/mailman3_exporter + ''; + + meta = { + description = "Mailman3 Exporter for Prometheus"; + homepage = "https://github.com/rivimey/mailman3_exporter"; + # no license in repo + license = lib.licenses.unfree; + maintainers = with lib.maintainers; [ marcel ]; + mainProgram = "mailman3_exporter"; + platforms = lib.platforms.all; + }; +} From d33d1dda8f50f1cf681ff8806bede4c9b5e8d599 Mon Sep 17 00:00:00 2001 From: Marcel Date: Sat, 12 Apr 2025 03:42:54 +0200 Subject: [PATCH 02/84] nixos/prometheus-mailman3-exporter: init module --- .../monitoring/prometheus/exporters.nix | 1 + .../prometheus/exporters/mailman3.nix | 77 +++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 nixos/modules/services/monitoring/prometheus/exporters/mailman3.nix diff --git a/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixos/modules/services/monitoring/prometheus/exporters.nix index 258d13e3c7c7..0e92249ccba8 100644 --- a/nixos/modules/services/monitoring/prometheus/exporters.nix +++ b/nixos/modules/services/monitoring/prometheus/exporters.nix @@ -85,6 +85,7 @@ let "libvirt" "lnd" "mail" + "mailman3" "mikrotik" "modemmanager" "mongodb" diff --git a/nixos/modules/services/monitoring/prometheus/exporters/mailman3.nix b/nixos/modules/services/monitoring/prometheus/exporters/mailman3.nix new file mode 100644 index 000000000000..cbfede2bb9e2 --- /dev/null +++ b/nixos/modules/services/monitoring/prometheus/exporters/mailman3.nix @@ -0,0 +1,77 @@ +{ + config, + lib, + pkgs, + ... +}: + +let + cfg = config.services.prometheus.exporters.mailman3; +in +{ + port = 9934; + extraOpts = { + logLevel = lib.mkOption { + type = lib.types.enum [ + "debug" + "info" + "warning" + "error" + "critical" + ]; + default = "info"; + description = '' + Detail level to log. + ''; + }; + + mailman = { + addr = lib.mkOption { + type = lib.types.str; + default = "http://127.0.0.1:8001"; + description = '' + Mailman3 Core REST API address. + ''; + }; + + user = lib.mkOption { + type = lib.types.str; + default = "restadmin"; + description = '' + Mailman3 Core REST API username. + ''; + }; + + passFile = lib.mkOption { + type = lib.types.str; + default = config.services.mailman.restApiPassFile; + defaultText = lib.literalExpression "config.services.mailman.restApiPassFile"; + description = '' + Mailman3 Core REST API password. + ''; + }; + }; + }; + serviceOpts = { + serviceConfig = { + LoadCredential = [ + "password:${cfg.mailman.passFile}" + ]; + ExecStart = + let + addr = "${ + if (lib.hasInfix ":" cfg.listenAddress) then "[${cfg.listenAddress}]" else cfg.listenAddress + }:${toString cfg.port}"; + in + '' + ${lib.getExe pkgs.prometheus-mailman3-exporter} \ + --log-level ${cfg.logLevel} \ + --web.listen ${addr} \ + --mailman.address ${cfg.mailman.addr} \ + --mailman.user ${cfg.mailman.user} \ + --mailman.password-file %d/password \ + ${lib.concatStringsSep " \\\n " cfg.extraFlags} + ''; + }; + }; +} From 73e01a9113ed3733e8343b90d22a3961486a1aec Mon Sep 17 00:00:00 2001 From: wuyoli Date: Fri, 16 May 2025 01:16:32 +0200 Subject: [PATCH 03/84] [kicad]: also wrap kicad-cli --- pkgs/applications/science/electronics/kicad/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix index 50afc63be481..89e3d6350203 100644 --- a/pkgs/applications/science/electronics/kicad/default.nix +++ b/pkgs/applications/science/electronics/kicad/default.nix @@ -266,13 +266,13 @@ stdenv.mkDerivation rec { "pcb_calculator" "pl_editor" "bitmap2component" + "kicad-cli" ]; utils = [ "dxf2idf" "idf2vrml" "idfcyl" "idfrect" - "kicad-cli" ]; in (concatStringsSep "\n" (flatten [ From aa610261842ec098eb88a0cbe3258e71f8e87ddf Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 30 May 2025 00:24:04 +0000 Subject: [PATCH 04/84] python3Packages.mistral-common: 1.5.4 -> 1.5.6 --- pkgs/development/python-modules/mistral-common/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/mistral-common/default.nix b/pkgs/development/python-modules/mistral-common/default.nix index c3b3ecabe620..b9693f537fa5 100644 --- a/pkgs/development/python-modules/mistral-common/default.nix +++ b/pkgs/development/python-modules/mistral-common/default.nix @@ -16,13 +16,13 @@ buildPythonPackage rec { pname = "mistral-common"; - version = "1.5.4"; + version = "1.5.6"; pyproject = true; src = fetchPypi { pname = "mistral_common"; inherit version; - hash = "sha256-CvQSSrCdFAl2HpHsYWgUdogtRvlBjuqJCNOcASIuD2s="; + hash = "sha256-TauSQwaEMhFKFfLEb/SRagViCnIrDfjetJ3POD+34r8="; }; pythonRelaxDeps = [ From 1a3c2131ac9d4b652796b74178b8c8376f0269b4 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 1 Jun 2025 02:04:55 +0000 Subject: [PATCH 05/84] python3Packages.hiredis: 3.1.1 -> 3.2.1 --- pkgs/development/python-modules/hiredis/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/hiredis/default.nix b/pkgs/development/python-modules/hiredis/default.nix index 9cffa09895f9..a36fc0735ca3 100644 --- a/pkgs/development/python-modules/hiredis/default.nix +++ b/pkgs/development/python-modules/hiredis/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "hiredis"; - version = "3.1.1"; + version = "3.2.1"; pyproject = true; disabled = pythonOlder "3.6"; @@ -23,7 +23,7 @@ buildPythonPackage rec { repo = "hiredis-py"; tag = "v${version}"; fetchSubmodules = true; - hash = "sha256-z28fBGqZE88vQuJfb39AEN3hGEZMz5gq71IdlpO5VAg="; + hash = "sha256-WaHjqp/18FquYU2H9ftPQSyunLMG29FVpu3maB3/0bs="; }; build-system = [ setuptools ]; From b62037b798fe29dc8ef1bcc7323682bb25e09506 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 6 Jun 2025 02:33:46 +0000 Subject: [PATCH 06/84] python3Packages.python-gitlab: 5.6.0 -> 6.0.0 --- pkgs/development/python-modules/python-gitlab/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/python-gitlab/default.nix b/pkgs/development/python-modules/python-gitlab/default.nix index c7c6a4489503..77fac81541e3 100644 --- a/pkgs/development/python-modules/python-gitlab/default.nix +++ b/pkgs/development/python-modules/python-gitlab/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "python-gitlab"; - version = "5.6.0"; + version = "6.0.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -21,7 +21,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "python_gitlab"; inherit version; - hash = "sha256-vFMei6PlZBtgQJRF1JGazmiiwYyw7G1I+87WYWuVQWY="; + hash = "sha256-cEv1SMJY8c/i8JuOzprxzI+mroKKxv5qHL6VfJhDFBQ="; }; build-system = [ setuptools ]; From 45d7516fb70f3a88e8692b76cd8c34561a161adb Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 11 Jun 2025 17:45:14 +0000 Subject: [PATCH 07/84] python3Packages.dendropy: 5.0.6 -> 5.0.8 --- pkgs/development/python-modules/dendropy/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/dendropy/default.nix b/pkgs/development/python-modules/dendropy/default.nix index 3e9646a4aeb7..fed1a487d2bb 100644 --- a/pkgs/development/python-modules/dendropy/default.nix +++ b/pkgs/development/python-modules/dendropy/default.nix @@ -16,7 +16,7 @@ let in buildPythonPackage rec { pname = "dendropy"; - version = "5.0.6"; + version = "5.0.8"; pyproject = true; build-system = [ setuptools ]; @@ -25,7 +25,7 @@ buildPythonPackage rec { owner = "jeetsukumaran"; repo = "dendropy"; tag = "v${version}"; - hash = "sha256-pZ6vVN9vGUpdLvvVZLYUj3yWgn+9qd7D0wq5NxM8UiY="; + hash = "sha256-AmKm9V4XZQRuAfe0R5r5/wicno9iTZ6nbwHyHvMijz0="; }; postPatch = '' From d5a7aff28885b1ec5f877013d5d9805708634faf Mon Sep 17 00:00:00 2001 From: Marcel Date: Thu, 12 Jun 2025 12:12:01 +0200 Subject: [PATCH 08/84] fishPlugins.fishbang: init at 0-unstable-2025-01-10 --- pkgs/shells/fish/plugins/default.nix | 2 ++ pkgs/shells/fish/plugins/fishbang.nix | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+) create mode 100644 pkgs/shells/fish/plugins/fishbang.nix diff --git a/pkgs/shells/fish/plugins/default.nix b/pkgs/shells/fish/plugins/default.nix index 6036ddb40aa5..22c9dc819e73 100644 --- a/pkgs/shells/fish/plugins/default.nix +++ b/pkgs/shells/fish/plugins/default.nix @@ -32,6 +32,8 @@ lib.makeScope newScope ( fifc = callPackage ./fifc.nix { }; + fishbang = callPackage ./fishbang.nix { }; + fish-bd = callPackage ./fish-bd.nix { }; # Fishtape 2.x and 3.x aren't compatible, diff --git a/pkgs/shells/fish/plugins/fishbang.nix b/pkgs/shells/fish/plugins/fishbang.nix new file mode 100644 index 000000000000..0efced780dca --- /dev/null +++ b/pkgs/shells/fish/plugins/fishbang.nix @@ -0,0 +1,24 @@ +{ + lib, + buildFishPlugin, + fetchFromGitHub, +}: + +buildFishPlugin { + pname = "fishbang"; + version = "0-unstable-2025-01-10"; + + src = fetchFromGitHub { + owner = "BrewingWeasel"; + repo = "fishbang"; + rev = "f8d2721ac5508dbda54a666ebf12f1492c478277"; + hash = "sha256-VHtjt3Xobvs0DTXJ1mFU8i84EEsNQv3yqbhjs7c1mNE="; + }; + + meta = { + description = "Bash bang commands for fish"; + homepage = "https://github.com/BrewingWeasel/fishbang"; + license = lib.licenses.bsd3; + maintainers = [ lib.maintainers.marcel ]; + }; +} From c29aadf46d5eee560db30dd041e328b45350a634 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 13 Jun 2025 18:54:20 +0000 Subject: [PATCH 09/84] python3Packages.pymunk: 6.11.1 -> 7.0.1 --- pkgs/development/python-modules/pymunk/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pymunk/default.nix b/pkgs/development/python-modules/pymunk/default.nix index 7e0ccf74f6c9..7153797e706f 100644 --- a/pkgs/development/python-modules/pymunk/default.nix +++ b/pkgs/development/python-modules/pymunk/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "pymunk"; - version = "6.11.1"; + version = "7.0.1"; pyproject = true; disabled = pythonOlder "3.8"; src = fetchPypi { inherit pname version; - hash = "sha256-GReEn2Ph9pnfIdah9dHCUK3duuJenBJPC+12UVTJTvg="; + hash = "sha256-lqOOgSP02J+IILQ2QPH2I9aETx+X7qCcRmDwMXgKn/g="; }; nativeBuildInputs = [ cffi ]; From 79b1610132f83ba8b344cfb5e8c6c3e3d5af56c1 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 13 Jun 2025 19:55:18 +0000 Subject: [PATCH 10/84] python3Packages.dramatiq: 1.17.1 -> 1.18.0 --- pkgs/development/python-modules/dramatiq/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/dramatiq/default.nix b/pkgs/development/python-modules/dramatiq/default.nix index 60055e50e3eb..5e06f15f01f4 100644 --- a/pkgs/development/python-modules/dramatiq/default.nix +++ b/pkgs/development/python-modules/dramatiq/default.nix @@ -17,7 +17,7 @@ buildPythonPackage rec { pname = "dramatiq"; - version = "1.17.1"; + version = "1.18.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -26,7 +26,7 @@ buildPythonPackage rec { owner = "Bogdanp"; repo = "dramatiq"; tag = "v${version}"; - hash = "sha256-NeUGhG+H6r+JGd2qnJxRUbQ61G7n+3tsuDugTin3iJ4="; + hash = "sha256-noq2tWi7IUdYmRB9N3MN9oWrnNaYBgXFumOpcGw8Jn0="; }; build-system = [ setuptools ]; From 5927e844788cfd1a1ab86d014f50eec4e83563a9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Mon, 16 Jun 2025 21:58:27 +0000 Subject: [PATCH 11/84] python3Packages.pyfiglet: 1.0.2 -> 1.0.3 --- pkgs/development/python-modules/pyfiglet/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pyfiglet/default.nix b/pkgs/development/python-modules/pyfiglet/default.nix index a236951c493c..388628925c34 100644 --- a/pkgs/development/python-modules/pyfiglet/default.nix +++ b/pkgs/development/python-modules/pyfiglet/default.nix @@ -5,13 +5,13 @@ }: buildPythonPackage rec { - version = "1.0.2"; + version = "1.0.3"; format = "setuptools"; pname = "pyfiglet"; src = fetchPypi { inherit pname version; - hash = "sha256-dYeIAYq4+q3cCYTh6gX/Mw08ZL5mPFE8wfEF9qMGbas="; + hash = "sha256-utO1XS7Msw1Gk8z9lFc8KjR33XX4ag5UZc6lG9v+KHU="; }; doCheck = false; From cb40ffffebc264a791701282f355cce4edcc97f0 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 17 Jun 2025 16:30:03 +0000 Subject: [PATCH 12/84] python3Packages.optimum: 1.25.3 -> 1.26.1 --- pkgs/development/python-modules/optimum/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/optimum/default.nix b/pkgs/development/python-modules/optimum/default.nix index 3ff806860f45..c86b3c501445 100644 --- a/pkgs/development/python-modules/optimum/default.nix +++ b/pkgs/development/python-modules/optimum/default.nix @@ -28,7 +28,7 @@ buildPythonPackage rec { pname = "optimum"; - version = "1.25.3"; + version = "1.26.1"; pyproject = true; disabled = pythonOlder "3.9"; @@ -37,7 +37,7 @@ buildPythonPackage rec { owner = "huggingface"; repo = "optimum"; tag = "v${version}"; - hash = "sha256-SVyGtWFI5GjfxbaVKICf+QSSMYI62dDVMzphu8TngvY="; + hash = "sha256-GfUlvz7b0DlqBPibndRzUkszGnbYXg6E8u144ZFAZxA="; }; build-system = [ setuptools ]; From 639d4e2503a9557d28504e0a36f12918c0296e98 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 17 Jun 2025 20:07:40 +0000 Subject: [PATCH 13/84] python3Packages.azure-keyvault-administration: 4.5.0 -> 4.6.0 --- .../python-modules/azure-keyvault-administration/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/azure-keyvault-administration/default.nix b/pkgs/development/python-modules/azure-keyvault-administration/default.nix index fc667dbcbf1e..27a1763dc54d 100644 --- a/pkgs/development/python-modules/azure-keyvault-administration/default.nix +++ b/pkgs/development/python-modules/azure-keyvault-administration/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { pname = "azure-keyvault-administration"; - version = "4.5.0"; + version = "4.6.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -19,7 +19,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "azure_keyvault_administration"; inherit version; - hash = "sha256-ZTlnbspwVgrXaruNW9OviuyxcVgX7ZFe5gCGfyZbfpU="; + hash = "sha256-1YMCni76oJ4eHEb3wBuxvB+JA4isvyNUpC0fM3n3NOQ="; }; nativeBuildInputs = [ setuptools ]; From 763ada20518ada52fae7bdd9d63a7fa98daf0117 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 17 Jun 2025 22:05:04 +0000 Subject: [PATCH 14/84] python3Packages.azure-keyvault-secrets: 4.9.0 -> 4.10.0 --- .../python-modules/azure-keyvault-secrets/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/azure-keyvault-secrets/default.nix b/pkgs/development/python-modules/azure-keyvault-secrets/default.nix index 72f6d68ecc0b..333477b5f007 100644 --- a/pkgs/development/python-modules/azure-keyvault-secrets/default.nix +++ b/pkgs/development/python-modules/azure-keyvault-secrets/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { pname = "azure-keyvault-secrets"; - version = "4.9.0"; + version = "4.10.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -19,7 +19,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "azure_keyvault_secrets"; inherit version; - hash = "sha256-KgO7L/2aDWyK0cMw2dAxAROYWp3gZgfs43j9cqWIn+E="; + hash = "sha256-Zm+kKJL5zudJVj5VGpDwYENauHiXfJUmUXOoJG1UajY="; }; nativeBuildInputs = [ setuptools ]; From dfce67ef7e3d6ef2a70970760bb78ed6f7b856d9 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 18 Jun 2025 00:11:45 +0000 Subject: [PATCH 15/84] python3Packages.pathvalidate: 3.2.3 -> 3.3.1 --- pkgs/development/python-modules/pathvalidate/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pathvalidate/default.nix b/pkgs/development/python-modules/pathvalidate/default.nix index 0927f880fd46..f4c8a5133500 100644 --- a/pkgs/development/python-modules/pathvalidate/default.nix +++ b/pkgs/development/python-modules/pathvalidate/default.nix @@ -8,14 +8,14 @@ buildPythonPackage rec { pname = "pathvalidate"; - version = "3.2.3"; + version = "3.3.1"; pyproject = true; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-WbW5J44wOC1tITSXYjBD6+Y/EOKQVb5EGanATHIXOcs="; + hash = "sha256-sYwHISv+rWJDRbuOHWFBzc8Vo5c2mU6guUA1rSsboXc="; }; build-system = [ setuptools-scm ]; From bbc61e99c389b0a09dd10bbfa4fd88b834a37671 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 19 Jun 2025 22:09:15 +0000 Subject: [PATCH 16/84] python3Packages.podman: 5.4.0.1 -> 5.5.0 --- pkgs/development/python-modules/podman/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/podman/default.nix b/pkgs/development/python-modules/podman/default.nix index bd374b0f521b..fec217fcd05a 100644 --- a/pkgs/development/python-modules/podman/default.nix +++ b/pkgs/development/python-modules/podman/default.nix @@ -15,7 +15,7 @@ buildPythonPackage rec { pname = "podman"; - version = "5.4.0.1"; + version = "5.5.0"; pyproject = true; disabled = pythonOlder "3.9"; @@ -24,7 +24,7 @@ buildPythonPackage rec { owner = "containers"; repo = "podman-py"; tag = "v${version}"; - hash = "sha256-6K6wBLCJCIAHbJQuY7JPnkmuq8OwrxCaSAHWeFDwH10="; + hash = "sha256-c8uU5WZsZufi/QNJkXh2Z1bmoM/oOm6+rggm4J+pnIc="; }; build-system = [ setuptools ]; From f10ca05101dc2a41470f373955bade4e5c8e80c7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 20 Jun 2025 04:35:11 +0000 Subject: [PATCH 17/84] python3Packages.pyscard: 2.2.1 -> 2.2.2 --- pkgs/development/python-modules/pyscard/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/pyscard/default.nix b/pkgs/development/python-modules/pyscard/default.nix index 859bd2d17b18..e7b789029583 100644 --- a/pkgs/development/python-modules/pyscard/default.nix +++ b/pkgs/development/python-modules/pyscard/default.nix @@ -12,14 +12,14 @@ buildPythonPackage rec { pname = "pyscard"; - version = "2.2.1"; + version = "2.2.2"; pyproject = true; src = fetchFromGitHub { owner = "LudovicRousseau"; repo = "pyscard"; tag = version; - hash = "sha256-RXCz6Npb/MrykHxtUsYlghCPeTwjDC6s9258iLA7OKs="; + hash = "sha256-oaKmWLydwfWPnED11dbJKob9vxkl+pgOS0mvhL6XWrM="; }; build-system = [ setuptools ]; @@ -45,7 +45,7 @@ buildPythonPackage rec { meta = { description = "Smartcard library for python"; homepage = "https://pyscard.sourceforge.io/"; - changelog = "https://github.com/LudovicRousseau/pyscard/releases/tag/${version}"; + changelog = "https://github.com/LudovicRousseau/pyscard/releases/tag/${src.tag}"; license = lib.licenses.lgpl21Plus; maintainers = with lib.maintainers; [ layus ]; }; From 983b4ccddff7cd06fe6fa53ed13e386c93b62c0e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Fri, 20 Jun 2025 09:55:54 +0000 Subject: [PATCH 18/84] python3Packages.pymupdf: 1.26.0 -> 1.26.1 --- pkgs/development/python-modules/pymupdf/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pymupdf/default.nix b/pkgs/development/python-modules/pymupdf/default.nix index 86e0fbf6a7a0..9cd4b74ee0ed 100644 --- a/pkgs/development/python-modules/pymupdf/default.nix +++ b/pkgs/development/python-modules/pymupdf/default.nix @@ -46,7 +46,7 @@ let in buildPythonPackage rec { pname = "pymupdf"; - version = "1.26.0"; + version = "1.26.1"; pyproject = true; disabled = pythonOlder "3.9"; @@ -55,7 +55,7 @@ buildPythonPackage rec { owner = "pymupdf"; repo = "PyMuPDF"; tag = version; - hash = "sha256-juBjlS9/ykpji9RbDcyOjAu+cVSDaFc3HAmxYHTylt8="; + hash = "sha256-Z+TO4MaLFmgNSRMTltY77bHnA5RHc4Ii45sDjJsFZto="; }; # swig is not wrapped as Python package From d8b4467a2f4262a460fe76c4d81a56ced4619aab Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 21 Jun 2025 16:05:27 +0000 Subject: [PATCH 19/84] python3Packages.awscrt: 0.27.2 -> 0.27.4 --- pkgs/development/python-modules/awscrt/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/awscrt/default.nix b/pkgs/development/python-modules/awscrt/default.nix index 52020fc6caf0..4702171f0a50 100644 --- a/pkgs/development/python-modules/awscrt/default.nix +++ b/pkgs/development/python-modules/awscrt/default.nix @@ -11,14 +11,14 @@ buildPythonPackage rec { pname = "awscrt"; - version = "0.27.2"; + version = "0.27.4"; pyproject = true; disabled = pythonOlder "3.8"; src = fetchPypi { inherit pname version; - hash = "sha256-DJYLxI3mDxG6jJsyzhoepJhd8QtmXgpDDML5CjIib7A="; + hash = "sha256-yyPLdnyi48AAfImbKJ1mjSiusFVTTfNadBhHE19s2Rw="; }; build-system = [ setuptools ]; From 07bac1abbb8305156b38e6337b27cbb96254a66a Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 21 Jun 2025 16:06:40 +0000 Subject: [PATCH 20/84] python3Packages.radio-beam: 0.3.8 -> 0.3.9 --- pkgs/development/python-modules/radio-beam/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/radio-beam/default.nix b/pkgs/development/python-modules/radio-beam/default.nix index 54e8fb62bde7..e4ab1116273a 100644 --- a/pkgs/development/python-modules/radio-beam/default.nix +++ b/pkgs/development/python-modules/radio-beam/default.nix @@ -14,13 +14,13 @@ buildPythonPackage rec { pname = "radio-beam"; - version = "0.3.8"; + version = "0.3.9"; pyproject = true; src = fetchPypi { inherit version; pname = "radio_beam"; # Tarball was uploaded with an underscore in this version - hash = "sha256-CE/rcYKO3Duz5zwmJ4gEuqOoO3Uy7sjwOi96HP0Y53A="; + hash = "sha256-m1/qe8ybJlQyE3hGM7MugWMMnAhVB3t6v0tGz42E5kQ="; }; nativeBuildInputs = [ setuptools-scm ]; From 222fb398d42dbb15a721741a51aead61f8ca88bb Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 24 Jun 2025 02:26:19 +0000 Subject: [PATCH 21/84] python3Packages.azure-mgmt-appconfiguration: 4.0.0 -> 5.0.0 --- .../python-modules/azure-mgmt-appconfiguration/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix b/pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix index 35f2748f096f..7b7a092de3e2 100644 --- a/pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix +++ b/pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { pname = "azure-mgmt-appconfiguration"; - version = "4.0.0"; + version = "5.0.0"; pyproject = true; disabled = pythonOlder "3.9"; @@ -19,7 +19,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "azure_mgmt_appconfiguration"; inherit version; - hash = "sha256-x9ItR8hiQrj311Lx3BgojaSsQcL2l0C5fe6AI58PDO4="; + hash = "sha256-+PD4G3kNHtd7vAUuzc97EwkfrYixDB8/RxAA29nCCXc="; }; build-system = [ setuptools ]; From 3fb83c139cf2dc946bc970f6efc21073d3bd8e4b Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 24 Jun 2025 06:00:45 +0000 Subject: [PATCH 22/84] python3Packages.langchain-aws: 0.2.25 -> 0.2.26 --- pkgs/development/python-modules/langchain-aws/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/langchain-aws/default.nix b/pkgs/development/python-modules/langchain-aws/default.nix index a37dd0d50802..f6cc8b6ec6a1 100644 --- a/pkgs/development/python-modules/langchain-aws/default.nix +++ b/pkgs/development/python-modules/langchain-aws/default.nix @@ -24,14 +24,14 @@ buildPythonPackage rec { pname = "langchain-aws"; - version = "0.2.25"; + version = "0.2.26"; pyproject = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langchain-aws"; tag = "langchain-aws==${version}"; - hash = "sha256-Qk3D8XtpzV7YgMM0WeainzCp6Sq1uZEaM0PFbGKIO7U="; + hash = "sha256-KuSXevx2beBSMfCM+75RDNIaBRlRWJBxDIm/1dXi110="; }; postPatch = '' From 48fd4d6c82f4d663c2ace363e621cdafbb6fdd4e Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 25 Jun 2025 04:56:14 +0000 Subject: [PATCH 23/84] python3Packages.livekit-protocol: 1.0.3 -> 1.0.4 --- pkgs/development/python-modules/livekit-protocol/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/livekit-protocol/default.nix b/pkgs/development/python-modules/livekit-protocol/default.nix index cd851c25b38b..af1cf54caf20 100644 --- a/pkgs/development/python-modules/livekit-protocol/default.nix +++ b/pkgs/development/python-modules/livekit-protocol/default.nix @@ -9,14 +9,14 @@ buildPythonPackage rec { pname = "livekit-protocol"; - version = "1.0.3"; + version = "1.0.4"; pyproject = true; src = fetchFromGitHub { owner = "livekit"; repo = "python-sdks"; tag = "protocol-v${version}"; - hash = "sha256-iXYxTs87kAe4KZEPSdM6DZKlv98B6sABgyqrhzdr2ug="; + hash = "sha256-W9WmruzN5Nm9vrjG1Kcf3Orst0b2Mxm80hKLjwXowl8="; }; pypaBuildFlags = [ "livekit-protocol" ]; From 33d84b98e51588854dac959361000b5cfb74e06c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 25 Jun 2025 11:00:51 +0000 Subject: [PATCH 24/84] python3Packages.bilibili-api-python: 17.2.0 -> 17.2.1 --- .../python-modules/bilibili-api-python/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/bilibili-api-python/default.nix b/pkgs/development/python-modules/bilibili-api-python/default.nix index 91db287eb3e9..4203dd572bb9 100644 --- a/pkgs/development/python-modules/bilibili-api-python/default.nix +++ b/pkgs/development/python-modules/bilibili-api-python/default.nix @@ -24,13 +24,13 @@ }: buildPythonPackage rec { pname = "bilibili-api-python"; - version = "17.2.0"; + version = "17.2.1"; pyproject = true; src = fetchPypi { pname = "bilibili_api_python"; inherit version; - hash = "sha256-WzNuoVpl2ZDkuGgfWm3surJJyRVdYDUf+MqF5jUil/s="; + hash = "sha256-ln+HNgcw3KPpOF9Ei8Ta4vrb+tGKsE4/vSim/ioKpgI="; }; # The upstream uses requirements.txt, which overly strict version constraints. From 1efe40dba350b754ff9ad1cedfeff27f5da8978c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 26 Jun 2025 04:55:23 +0000 Subject: [PATCH 25/84] python3Packages.pixel-font-knife: 0.0.12 -> 0.0.16 --- pkgs/development/python-modules/pixel-font-knife/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pixel-font-knife/default.nix b/pkgs/development/python-modules/pixel-font-knife/default.nix index 6f3a81554113..b81cd7884fa0 100644 --- a/pkgs/development/python-modules/pixel-font-knife/default.nix +++ b/pkgs/development/python-modules/pixel-font-knife/default.nix @@ -13,7 +13,7 @@ buildPythonPackage rec { pname = "pixel-font-knife"; - version = "0.0.12"; + version = "0.0.16"; pyproject = true; disabled = pythonOlder "3.10"; @@ -21,7 +21,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "pixel_font_knife"; inherit version; - hash = "sha256-raVWoMRHmaVaxAzxo+k1r3ldqSOBMbMvcEyuWHq7AaM="; + hash = "sha256-zF2NKR8/8EhtzxwJFKfP6EZf58QXmbut81kfpLqDDV8="; }; build-system = [ hatchling ]; From 7b96afcf7ef46778e13ee890fe1bec4422d47737 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 26 Jun 2025 07:42:29 +0000 Subject: [PATCH 26/84] python3Packages.google-cloud-error-reporting: 1.11.1 -> 1.12.0 --- .../python-modules/google-cloud-error-reporting/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/google-cloud-error-reporting/default.nix b/pkgs/development/python-modules/google-cloud-error-reporting/default.nix index 845c16d01984..68aab2e774e8 100644 --- a/pkgs/development/python-modules/google-cloud-error-reporting/default.nix +++ b/pkgs/development/python-modules/google-cloud-error-reporting/default.nix @@ -21,14 +21,14 @@ buildPythonPackage rec { pname = "google-cloud-error-reporting"; - version = "1.11.1"; + version = "1.12.0"; pyproject = true; src = fetchFromGitHub { owner = "googleapis"; repo = "python-error-reporting"; tag = "v${version}"; - hash = "sha256-z1ogY4W4RGKv0h2jW0jVpIHUY1X3P0Vw++3jYtnYTRA="; + hash = "sha256-V97V3WbsChc93nqhCOh34O/hn8fqLMwR4/DcHmc9vdU="; }; build-system = [ setuptools ]; @@ -70,7 +70,7 @@ buildPythonPackage rec { meta = { description = "Stackdriver Error Reporting API client library"; homepage = "https://github.com/googleapis/python-error-reporting"; - changelog = "https://github.com/googleapis/python-error-reporting/blob/v${version}/CHANGELOG.md"; + changelog = "https://github.com/googleapis/python-error-reporting/blob/${src.tag}/CHANGELOG.md"; license = lib.licenses.asl20; maintainers = [ lib.maintainers.sarahec ]; }; From 6e14a26b40064d6ea76155cfde200f2e07ea6e50 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 26 Jun 2025 13:39:25 +0000 Subject: [PATCH 27/84] python3Packages.pyviz-comms: 3.0.4 -> 3.0.6 --- pkgs/development/python-modules/pyviz-comms/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pyviz-comms/default.nix b/pkgs/development/python-modules/pyviz-comms/default.nix index c41977d9df07..068022c598fb 100644 --- a/pkgs/development/python-modules/pyviz-comms/default.nix +++ b/pkgs/development/python-modules/pyviz-comms/default.nix @@ -11,13 +11,13 @@ buildPythonPackage rec { pname = "pyviz-comms"; - version = "3.0.4"; + version = "3.0.6"; pyproject = true; src = fetchPypi { pname = "pyviz_comms"; inherit version; - hash = "sha256-1w4XVV9yYsSISmt7ycoZy4FlB6AyozTZy0EbRUbK/0w="; + hash = "sha256-c9ZrYgOQ2XlZssTYosB3jUH+IFgb5HF/AeRrj66MVpU="; }; postPatch = '' From 4e927463ab6f90eb3aceb854f38f247d7d29e8d7 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 28 Jun 2025 05:18:07 +0000 Subject: [PATCH 28/84] python3Packages.langchain-core: 0.3.65 -> 0.3.66 --- pkgs/development/python-modules/langchain-core/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/langchain-core/default.nix b/pkgs/development/python-modules/langchain-core/default.nix index c1951c23e86e..1ed827340d1d 100644 --- a/pkgs/development/python-modules/langchain-core/default.nix +++ b/pkgs/development/python-modules/langchain-core/default.nix @@ -36,14 +36,14 @@ buildPythonPackage rec { pname = "langchain-core"; - version = "0.3.65"; + version = "0.3.66"; pyproject = true; src = fetchFromGitHub { owner = "langchain-ai"; repo = "langchain"; tag = "langchain-core==${version}"; - hash = "sha256-2iEUrLjvjVpArOPXzF5Z6ZeeQbIGZxuZUTC2buYTOCQ="; + hash = "sha256-k9B2ApNyX3w6RTt/XdOl2FvU87NuZSi96vvfJOnBltM="; }; sourceRoot = "${src.name}/libs/core"; From 7c48977c0c139bd16121cb882861f31ebc73180d Mon Sep 17 00:00:00 2001 From: Tom van Dijk <18gatenmaker6@gmail.com> Date: Sat, 28 Jun 2025 00:18:02 +0200 Subject: [PATCH 29/84] nushellPlugins.net: refactor --- pkgs/shells/nushell/plugins/net.nix | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkgs/shells/nushell/plugins/net.nix b/pkgs/shells/nushell/plugins/net.nix index 986dd9101f20..a030b958a1fa 100644 --- a/pkgs/shells/nushell/plugins/net.nix +++ b/pkgs/shells/nushell/plugins/net.nix @@ -1,33 +1,33 @@ { + stdenv, lib, rustPlatform, fetchFromGitHub, nix-update-script, }: -rustPlatform.buildRustPackage rec { +rustPlatform.buildRustPackage (finalAttrs: { pname = "nushell_plugin_net"; version = "1.10.0"; src = fetchFromGitHub { owner = "fennewald"; repo = "nu_plugin_net"; - rev = "refs/tags/${version}"; + tag = "${finalAttrs.version}"; hash = "sha256-HiNydU40FprxVmRRZtnXom2kFYI04mbeuGTq8+BMh7o="; }; - useFetchCargoVendor = true; cargoHash = "sha256-tq0XqY2B7tC2ep8vH6T3nkAqxqhniqzYnhbkfB3SbHU="; - nativeBuildInputs = [ rustPlatform.bindgenHook ]; + nativeBuildInputs = lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ]; passthru.updateScript = nix-update-script { }; - meta = with lib; { + meta = { description = "Nushell plugin to list system network interfaces"; homepage = "https://github.com/fennewald/nu_plugin_net"; - license = licenses.mit; - maintainers = with maintainers; [ happysalada ]; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ happysalada ]; mainProgram = "nu_plugin_net"; }; -} +}) From a76d03be7dc17b00a967fe811e1ee3a8c96bb7ce Mon Sep 17 00:00:00 2001 From: Tom van Dijk <18gatenmaker6@gmail.com> Date: Sat, 28 Jun 2025 00:23:41 +0200 Subject: [PATCH 30/84] nushellPlugins.dbus: refactor --- pkgs/shells/nushell/plugins/dbus.nix | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/pkgs/shells/nushell/plugins/dbus.nix b/pkgs/shells/nushell/plugins/dbus.nix index 91d63bb9f316..8e7e33ca47f0 100644 --- a/pkgs/shells/nushell/plugins/dbus.nix +++ b/pkgs/shells/nushell/plugins/dbus.nix @@ -11,18 +11,17 @@ nushell_plugin_dbus, }: -rustPlatform.buildRustPackage rec { +rustPlatform.buildRustPackage (finalAttrs: { pname = "nu_plugin_dbus"; version = "0.14.0"; src = fetchFromGitHub { owner = "devyn"; - repo = pname; - rev = version; + repo = "nu_plugin_dbus"; + tag = finalAttrs.version; hash = "sha256-Ga+1zFwS/v+3iKVEz7TFmJjyBW/gq6leHeyH2vjawto="; }; - useFetchCargoVendor = true; cargoHash = "sha256-7pD5LA1ytO7VqFnHwgf7vW9eS3olnZBgdsj+rmcHkbU="; nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ]; @@ -35,19 +34,19 @@ rustPlatform.buildRustPackage rec { nu = lib.getExe nushell; plugin = lib.getExe nushell_plugin_dbus; in - runCommand "${pname}-test" { } '' + runCommand "${finalAttrs.pname}-test" { } '' touch $out ${nu} -n -c "plugin add --plugin-config $out ${plugin}" ${nu} -n -c "plugin use --plugin-config $out dbus" ''; }; - meta = with lib; { + meta = { description = "Nushell plugin for communicating with D-Bus"; mainProgram = "nu_plugin_dbus"; homepage = "https://github.com/devyn/nu_plugin_dbus"; - license = licenses.mit; - maintainers = with maintainers; [ aftix ]; - platforms = with platforms; linux; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ aftix ]; + platforms = lib.platforms.linux; }; -} +}) From d22a7867e0843d56db7b58f1adc46256ab15244e Mon Sep 17 00:00:00 2001 From: Tom van Dijk <18gatenmaker6@gmail.com> Date: Sat, 28 Jun 2025 00:28:21 +0200 Subject: [PATCH 31/84] nushellPlugins.skim: refactor --- pkgs/shells/nushell/plugins/skim.nix | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/pkgs/shells/nushell/plugins/skim.nix b/pkgs/shells/nushell/plugins/skim.nix index 5b2282b1cd2c..45d02960bf72 100644 --- a/pkgs/shells/nushell/plugins/skim.nix +++ b/pkgs/shells/nushell/plugins/skim.nix @@ -9,21 +9,20 @@ skim, }: -rustPlatform.buildRustPackage rec { +rustPlatform.buildRustPackage (finalAttrs: { pname = "nu_plugin_skim"; version = "0.15.0"; src = fetchFromGitHub { owner = "idanarye"; - repo = pname; - tag = "v${version}"; + repo = "nu_plugin_skim"; + tag = "v${finalAttrs.version}"; hash = "sha256-8gO6pT40zBlFxPRapIO9qpMI9whutttqYgOPr91B9Ec="; }; - useFetchCargoVendor = true; cargoHash = "sha256-2poE7Nnwe5rRoU8WknEgzX68z+y9ZplX53v8FURzxmE="; - nativeBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ rustPlatform.bindgenHook ]; + nativeBuildInputs = lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ]; passthru = { updateScript = nix-update-script { }; @@ -32,19 +31,18 @@ rustPlatform.buildRustPackage rec { nu = lib.getExe nushell; plugin = lib.getExe skim; in - runCommand "${pname}-test" { } '' + runCommand "${finalAttrs.pname}-test" { } '' touch $out ${nu} -n -c "plugin add --plugin-config $out ${plugin}" ${nu} -n -c "plugin use --plugin-config $out skim" ''; }; - meta = with lib; { + meta = { description = "A nushell plugin that adds integrates the skim fuzzy finder"; mainProgram = "nu_plugin_skim"; homepage = "https://github.com/idanarye/nu_plugin_skim"; - license = licenses.mit; - maintainers = with maintainers; [ aftix ]; - platforms = platforms.all; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ aftix ]; }; -} +}) From 7095018016f35d90c1bc65c2829bb36d0aec76c6 Mon Sep 17 00:00:00 2001 From: Tom van Dijk <18gatenmaker6@gmail.com> Date: Sat, 28 Jun 2025 00:36:35 +0200 Subject: [PATCH 32/84] nushellPlugins.formats: refactor --- pkgs/shells/nushell/plugins/formats.nix | 19 +++++++------------ pkgs/shells/nushell/plugins/hcl.nix | 2 +- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/pkgs/shells/nushell/plugins/formats.nix b/pkgs/shells/nushell/plugins/formats.nix index 5a9b2cc03e0d..82a056b96073 100644 --- a/pkgs/shells/nushell/plugins/formats.nix +++ b/pkgs/shells/nushell/plugins/formats.nix @@ -7,32 +7,27 @@ nix-update-script, }: -rustPlatform.buildRustPackage rec { +rustPlatform.buildRustPackage (finalAttrs: { pname = "nushell_plugin_formats"; inherit (nushell) version src cargoHash; - useFetchCargoVendor = true; nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ]; - cargoBuildFlags = [ "--package nu_plugin_formats" ]; - checkPhase = '' - cargo test --manifest-path crates/nu_plugin_formats/Cargo.toml - ''; + buildAndTestSubdir = "crates/nu_plugin_formats"; passthru.updateScript = nix-update-script { # Skip the version check and only check the hash because we inherit version from nushell. extraArgs = [ "--version=skip" ]; }; - meta = with lib; { + meta = { description = "Formats plugin for Nushell"; mainProgram = "nu_plugin_formats"; - homepage = "https://github.com/nushell/nushell/tree/${version}/crates/nu_plugin_formats"; - license = licenses.mit; - maintainers = with maintainers; [ + homepage = "https://github.com/nushell/nushell/tree/${finalAttrs.version}/crates/nu_plugin_formats"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ viraptor aidalgol ]; - platforms = with platforms; all; }; -} +}) diff --git a/pkgs/shells/nushell/plugins/hcl.nix b/pkgs/shells/nushell/plugins/hcl.nix index dd06dc6a786f..995185f8063a 100644 --- a/pkgs/shells/nushell/plugins/hcl.nix +++ b/pkgs/shells/nushell/plugins/hcl.nix @@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec { tag = version; hash = "sha256-V1RKZ0Tqq0LTGbHS2lLMyf6M4AgAgWSzkDeFUighO4k="; }; - useFetchCargoVendor = true; + cargoHash = "sha256-UbqKfQxut+76yB9F1gT8FEapbX/kHvaShltHpWUdhgc="; nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ]; From e7bb58f0c2428e76b4342b7600a1364569d4fb96 Mon Sep 17 00:00:00 2001 From: Tom van Dijk <18gatenmaker6@gmail.com> Date: Sat, 28 Jun 2025 00:43:47 +0200 Subject: [PATCH 33/84] nushellPlugins.hcl: refactor --- pkgs/shells/nushell/plugins/hcl.nix | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/pkgs/shells/nushell/plugins/hcl.nix b/pkgs/shells/nushell/plugins/hcl.nix index 995185f8063a..cc439ed4a395 100644 --- a/pkgs/shells/nushell/plugins/hcl.nix +++ b/pkgs/shells/nushell/plugins/hcl.nix @@ -7,30 +7,28 @@ fetchFromGitHub, }: -rustPlatform.buildRustPackage rec { +rustPlatform.buildRustPackage (finalAttrs: { pname = "nushell_plugin_hcl"; version = "0.105.1"; src = fetchFromGitHub { - repo = "nu_plugin_hcl"; owner = "Yethal"; - tag = version; + repo = "nu_plugin_hcl"; + tag = finalAttrs.version; hash = "sha256-V1RKZ0Tqq0LTGbHS2lLMyf6M4AgAgWSzkDeFUighO4k="; }; cargoHash = "sha256-UbqKfQxut+76yB9F1gT8FEapbX/kHvaShltHpWUdhgc="; nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ]; - cargoBuildFlags = [ "--package nu_plugin_hcl" ]; passthru.updateScript = nix-update-script { }; - meta = with lib; { + meta = { description = "Nushell plugin for parsing Hashicorp Configuration Language files"; mainProgram = "nu_plugin_hcl"; homepage = "https://github.com/Yethal/nu_plugin_hcl"; - license = licenses.mit; - maintainers = with maintainers; [ yethal ]; - platforms = with platforms; all; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ yethal ]; }; -} +}) From 17144a68f2e126598883c1aa0346be7e2805e3a9 Mon Sep 17 00:00:00 2001 From: Tom van Dijk <18gatenmaker6@gmail.com> Date: Sat, 28 Jun 2025 00:50:39 +0200 Subject: [PATCH 34/84] nushellPlugins.highlight: refactor --- pkgs/shells/nushell/plugins/highlight.nix | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/pkgs/shells/nushell/plugins/highlight.nix b/pkgs/shells/nushell/plugins/highlight.nix index 290a5e976ac1..c6a79db9915e 100644 --- a/pkgs/shells/nushell/plugins/highlight.nix +++ b/pkgs/shells/nushell/plugins/highlight.nix @@ -7,36 +7,29 @@ fetchFromGitHub, }: -rustPlatform.buildRustPackage rec { +rustPlatform.buildRustPackage (finalAttrs: { pname = "nushell_plugin_highlight"; version = "1.4.7+0.105.1"; src = fetchFromGitHub { - repo = "nu-plugin-highlight"; owner = "cptpiepmatz"; - rev = "refs/tags/v${version}"; + repo = "nu-plugin-highlight"; + tag = "v${finalAttrs.version}"; hash = "sha256-0jU0c2v3q3RXX/zZlwTBwAdO8HEaROFNV/F4GBFaMt0="; fetchSubmodules = true; }; - useFetchCargoVendor = true; cargoHash = "sha256-UD1IzegajAG13iAOERymDa10JbuhvORVZ8gHy9d6buE="; nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ]; - cargoBuildFlags = [ "--package nu_plugin_highlight" ]; - - checkPhase = '' - cargo test - ''; passthru.updateScript = nix-update-script { }; - meta = with lib; { + meta = { description = "A nushell plugin for syntax highlighting."; mainProgram = "nu_plugin_highlight"; homepage = "https://github.com/cptpiepmatz/nu-plugin-highlight"; - license = licenses.mit; - maintainers = with maintainers; [ mgttlinger ]; - platforms = with platforms; all; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ mgttlinger ]; }; -} +}) From 4627382fe2363d99f5e8fbb77eae0fd80a089fe3 Mon Sep 17 00:00:00 2001 From: Tom van Dijk <18gatenmaker6@gmail.com> Date: Sat, 28 Jun 2025 01:02:29 +0200 Subject: [PATCH 35/84] nushellPlugins.polars: refactor --- pkgs/shells/nushell/plugins/polars.nix | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) diff --git a/pkgs/shells/nushell/plugins/polars.nix b/pkgs/shells/nushell/plugins/polars.nix index 1811f3520fe5..e51a89ddcf58 100644 --- a/pkgs/shells/nushell/plugins/polars.nix +++ b/pkgs/shells/nushell/plugins/polars.nix @@ -8,33 +8,29 @@ nix-update-script, }: -rustPlatform.buildRustPackage rec { +rustPlatform.buildRustPackage (finalAttrs: { pname = "nushell_plugin_polars"; inherit (nushell) version src cargoHash; - useFetchCargoVendor = true; - nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ]; buildInputs = [ openssl ]; - cargoBuildFlags = [ "--package nu_plugin_polars" ]; - checkPhase = '' - # test failed without enough columns - cargo test --manifest-path crates/nu_plugin_polars/Cargo.toml -- \ - --skip=dataframe::command::core::to_repr::test::test_examples - ''; + buildAndTestSubdir = "crates/nu_plugin_polars"; + + checkFlags = [ + "--skip=dataframe::command::core::to_repr::test::test_examples" + ]; passthru.updateScript = nix-update-script { # Skip the version check and only check the hash because we inherit version from nushell. extraArgs = [ "--version=skip" ]; }; - meta = with lib; { + meta = { description = "Nushell dataframe plugin commands based on polars"; mainProgram = "nu_plugin_polars"; - homepage = "https://github.com/nushell/nushell/tree/${version}/crates/nu_plugin_polars"; - license = licenses.mit; - maintainers = with maintainers; [ joaquintrinanes ]; - platforms = with platforms; all; + homepage = "https://github.com/nushell/nushell/tree/${finalAttrs.version}/crates/nu_plugin_polars"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ joaquintrinanes ]; }; -} +}) From 2e5baee20b53d4bc6901e7a08b9bd070f255ae2c Mon Sep 17 00:00:00 2001 From: Tom van Dijk <18gatenmaker6@gmail.com> Date: Sat, 28 Jun 2025 01:10:10 +0200 Subject: [PATCH 36/84] nushellPlugins.query: refactor --- pkgs/shells/nushell/plugins/query.nix | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/pkgs/shells/nushell/plugins/query.nix b/pkgs/shells/nushell/plugins/query.nix index a24718377116..b99bf1ad8d3e 100644 --- a/pkgs/shells/nushell/plugins/query.nix +++ b/pkgs/shells/nushell/plugins/query.nix @@ -9,21 +9,17 @@ curl, }: -rustPlatform.buildRustPackage rec { +rustPlatform.buildRustPackage (finalAttrs: { pname = "nushell_plugin_query"; inherit (nushell) version src cargoHash; - useFetchCargoVendor = true; nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ]; buildInputs = [ openssl curl ]; - cargoBuildFlags = [ "--package nu_plugin_query" ]; - checkPhase = '' - cargo test --manifest-path crates/nu_plugin_query/Cargo.toml - ''; + buildAndTestSubdir = "crates/nu_plugin_query"; passthru.updateScript = nix-update-script { # Skip the version check and only check the hash because we inherit version from nushell. @@ -33,12 +29,11 @@ rustPlatform.buildRustPackage rec { meta = { description = "Nushell plugin to query JSON, XML, and various web data"; mainProgram = "nu_plugin_query"; - homepage = "https://github.com/nushell/nushell/tree/${version}/crates/nu_plugin_query"; + homepage = "https://github.com/nushell/nushell/tree/${finalAttrs.version}/crates/nu_plugin_query"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ happysalada aidalgol ]; - platforms = lib.platforms.all; }; -} +}) From aa9629d886bb7784a3193660420a66ff0844b9b3 Mon Sep 17 00:00:00 2001 From: Tom van Dijk <18gatenmaker6@gmail.com> Date: Sat, 28 Jun 2025 01:18:44 +0200 Subject: [PATCH 37/84] nushellPlugins.gstat: refactor --- pkgs/shells/nushell/plugins/gstat.nix | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/pkgs/shells/nushell/plugins/gstat.nix b/pkgs/shells/nushell/plugins/gstat.nix index 885828e53cb0..dbcac7d064b7 100644 --- a/pkgs/shells/nushell/plugins/gstat.nix +++ b/pkgs/shells/nushell/plugins/gstat.nix @@ -8,33 +8,28 @@ nix-update-script, }: -rustPlatform.buildRustPackage rec { +rustPlatform.buildRustPackage (finalAttrs: { pname = "nushell_plugin_gstat"; inherit (nushell) version src cargoHash; - useFetchCargoVendor = true; nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ]; buildInputs = [ openssl ]; - cargoBuildFlags = [ "--package nu_plugin_gstat" ]; - checkPhase = '' - cargo test --manifest-path crates/nu_plugin_gstat/Cargo.toml - ''; + buildAndTestSubdir = "crates/nu_plugin_gstat"; passthru.updateScript = nix-update-script { # Skip the version check and only check the hash because we inherit version from nushell. extraArgs = [ "--version=skip" ]; }; - meta = with lib; { + meta = { description = "Git status plugin for Nushell"; mainProgram = "nu_plugin_gstat"; - homepage = "https://github.com/nushell/nushell/tree/${version}/crates/nu_plugin_gstat"; - license = licenses.mit; - maintainers = with maintainers; [ + homepage = "https://github.com/nushell/nushell/tree/${finalAttrs.version}/crates/nu_plugin_gstat"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ mrkkrp aidalgol ]; - platforms = with platforms; all; }; -} +}) From f79eb5cfc954377e4f15288754bb135ce824b3c7 Mon Sep 17 00:00:00 2001 From: Tom van Dijk <18gatenmaker6@gmail.com> Date: Sat, 28 Jun 2025 01:21:54 +0200 Subject: [PATCH 38/84] nushellPlugins.units: refactor --- pkgs/shells/nushell/plugins/units.nix | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/pkgs/shells/nushell/plugins/units.nix b/pkgs/shells/nushell/plugins/units.nix index 0ec44bbab3fa..2c575a1233b5 100644 --- a/pkgs/shells/nushell/plugins/units.nix +++ b/pkgs/shells/nushell/plugins/units.nix @@ -7,30 +7,28 @@ fetchFromGitHub, }: -rustPlatform.buildRustPackage rec { +rustPlatform.buildRustPackage (finalAttrs: { pname = "nushell_plugin_units"; version = "0.1.6"; src = fetchFromGitHub { - repo = "nu_plugin_units"; owner = "JosephTLyons"; - rev = "v${version}"; + repo = "nu_plugin_units"; + tag = "v${finalAttrs.version}"; hash = "sha256-1KyuUaWN+OiGpo8Ohc/8B+nisdb8uT+T3qBu+JbaVYo="; }; - useFetchCargoVendor = true; + cargoHash = "sha256-LYVwFM8znN96LwOwRnauehrucSqHnKNPoMzl2HRczww="; nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ]; - cargoBuildFlags = [ "--package nu_plugin_units" ]; passthru.updateScript = nix-update-script { }; - meta = with lib; { - description = "A nushell plugin for easily converting between common units."; + meta = { + description = "Nushell plugin for easily converting between common units"; mainProgram = "nu_plugin_units"; homepage = "https://github.com/JosephTLyons/nu_plugin_units"; - license = licenses.mit; - maintainers = with maintainers; [ mgttlinger ]; - platforms = with platforms; all; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ mgttlinger ]; }; -} +}) From bd065b68884efe1bed308af1bc43c6db06bfe420 Mon Sep 17 00:00:00 2001 From: Tom van Dijk <18gatenmaker6@gmail.com> Date: Sat, 28 Jun 2025 01:46:19 +0200 Subject: [PATCH 39/84] nushellPlugins.*: set pnames correctly Because otherwise: - The names are inconsistent with the other nushell plugins - `versionCheckHook` cannot find the binaries without setting a special variable --- pkgs/shells/nushell/plugins/formats.nix | 2 +- pkgs/shells/nushell/plugins/gstat.nix | 2 +- pkgs/shells/nushell/plugins/hcl.nix | 2 +- pkgs/shells/nushell/plugins/highlight.nix | 2 +- pkgs/shells/nushell/plugins/net.nix | 2 +- pkgs/shells/nushell/plugins/polars.nix | 2 +- pkgs/shells/nushell/plugins/query.nix | 2 +- pkgs/shells/nushell/plugins/units.nix | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pkgs/shells/nushell/plugins/formats.nix b/pkgs/shells/nushell/plugins/formats.nix index 82a056b96073..77debd7f7107 100644 --- a/pkgs/shells/nushell/plugins/formats.nix +++ b/pkgs/shells/nushell/plugins/formats.nix @@ -8,7 +8,7 @@ }: rustPlatform.buildRustPackage (finalAttrs: { - pname = "nushell_plugin_formats"; + pname = "nu_plugin_formats"; inherit (nushell) version src cargoHash; nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ]; diff --git a/pkgs/shells/nushell/plugins/gstat.nix b/pkgs/shells/nushell/plugins/gstat.nix index dbcac7d064b7..c39993e6c9d4 100644 --- a/pkgs/shells/nushell/plugins/gstat.nix +++ b/pkgs/shells/nushell/plugins/gstat.nix @@ -9,7 +9,7 @@ }: rustPlatform.buildRustPackage (finalAttrs: { - pname = "nushell_plugin_gstat"; + pname = "nu_plugin_gstat"; inherit (nushell) version src cargoHash; nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ]; diff --git a/pkgs/shells/nushell/plugins/hcl.nix b/pkgs/shells/nushell/plugins/hcl.nix index cc439ed4a395..d9228b3f0ae7 100644 --- a/pkgs/shells/nushell/plugins/hcl.nix +++ b/pkgs/shells/nushell/plugins/hcl.nix @@ -8,7 +8,7 @@ }: rustPlatform.buildRustPackage (finalAttrs: { - pname = "nushell_plugin_hcl"; + pname = "nu_plugin_hcl"; version = "0.105.1"; src = fetchFromGitHub { diff --git a/pkgs/shells/nushell/plugins/highlight.nix b/pkgs/shells/nushell/plugins/highlight.nix index c6a79db9915e..26f88c163ce7 100644 --- a/pkgs/shells/nushell/plugins/highlight.nix +++ b/pkgs/shells/nushell/plugins/highlight.nix @@ -8,7 +8,7 @@ }: rustPlatform.buildRustPackage (finalAttrs: { - pname = "nushell_plugin_highlight"; + pname = "nu_plugin_highlight"; version = "1.4.7+0.105.1"; src = fetchFromGitHub { diff --git a/pkgs/shells/nushell/plugins/net.nix b/pkgs/shells/nushell/plugins/net.nix index a030b958a1fa..6c486965dcf8 100644 --- a/pkgs/shells/nushell/plugins/net.nix +++ b/pkgs/shells/nushell/plugins/net.nix @@ -7,7 +7,7 @@ }: rustPlatform.buildRustPackage (finalAttrs: { - pname = "nushell_plugin_net"; + pname = "nu_plugin_net"; version = "1.10.0"; src = fetchFromGitHub { diff --git a/pkgs/shells/nushell/plugins/polars.nix b/pkgs/shells/nushell/plugins/polars.nix index e51a89ddcf58..bfd1aeba1821 100644 --- a/pkgs/shells/nushell/plugins/polars.nix +++ b/pkgs/shells/nushell/plugins/polars.nix @@ -9,7 +9,7 @@ }: rustPlatform.buildRustPackage (finalAttrs: { - pname = "nushell_plugin_polars"; + pname = "nu_plugin_polars"; inherit (nushell) version src cargoHash; nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ]; diff --git a/pkgs/shells/nushell/plugins/query.nix b/pkgs/shells/nushell/plugins/query.nix index b99bf1ad8d3e..b840959fc93d 100644 --- a/pkgs/shells/nushell/plugins/query.nix +++ b/pkgs/shells/nushell/plugins/query.nix @@ -10,7 +10,7 @@ }: rustPlatform.buildRustPackage (finalAttrs: { - pname = "nushell_plugin_query"; + pname = "nu_plugin_query"; inherit (nushell) version src cargoHash; nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ]; diff --git a/pkgs/shells/nushell/plugins/units.nix b/pkgs/shells/nushell/plugins/units.nix index 2c575a1233b5..fdcd47ab5fdd 100644 --- a/pkgs/shells/nushell/plugins/units.nix +++ b/pkgs/shells/nushell/plugins/units.nix @@ -8,7 +8,7 @@ }: rustPlatform.buildRustPackage (finalAttrs: { - pname = "nushell_plugin_units"; + pname = "nu_plugin_units"; version = "0.1.6"; src = fetchFromGitHub { From 8541ae6c6a08b21b2882452ccaaea490e8ac30b5 Mon Sep 17 00:00:00 2001 From: Tom van Dijk <18gatenmaker6@gmail.com> Date: Sat, 28 Jun 2025 01:31:24 +0200 Subject: [PATCH 40/84] nushellPlugins.*: add `versionCheckHook` Why for each all at the same time? Because all nushell plugins should respond in the same way with either no arguments passed or with `--help`, which contains their version. Also because when new plugins get added or plugins get updated, problems can be easily spotted because the errors are really loud. --- pkgs/shells/nushell/plugins/default.nix | 52 +++++++++++++++---------- 1 file changed, 32 insertions(+), 20 deletions(-) diff --git a/pkgs/shells/nushell/plugins/default.nix b/pkgs/shells/nushell/plugins/default.nix index d689e49b43e1..065c7786d976 100644 --- a/pkgs/shells/nushell/plugins/default.nix +++ b/pkgs/shells/nushell/plugins/default.nix @@ -3,28 +3,40 @@ config, newScope, dbus, + versionCheckHook, }: lib.makeScope newScope ( self: - with self; - { - gstat = callPackage ./gstat.nix { }; - formats = callPackage ./formats.nix { }; - polars = callPackage ./polars.nix { }; - query = callPackage ./query.nix { }; - net = callPackage ./net.nix { }; - units = callPackage ./units.nix { }; - highlight = callPackage ./highlight.nix { }; - dbus = callPackage ./dbus.nix { - inherit dbus; - nushell_plugin_dbus = self.dbus; - }; - skim = callPackage ./skim.nix { }; - semver = callPackage ./semver.nix { }; - hcl = callPackage ./hcl.nix { }; - } - // lib.optionalAttrs config.allowAliases { - regex = throw "`nu_plugin_regex` is no longer compatible with the current Nushell release."; - } + + lib.mapAttrs + ( + _n: p: + p.overrideAttrs { + doInstallCheck = true; + nativeInstallCheckInputs = [ versionCheckHook ]; + } + ) + ( + with self; + { + gstat = callPackage ./gstat.nix { }; + formats = callPackage ./formats.nix { }; + polars = callPackage ./polars.nix { }; + query = callPackage ./query.nix { }; + net = callPackage ./net.nix { }; + units = callPackage ./units.nix { }; + highlight = callPackage ./highlight.nix { }; + dbus = callPackage ./dbus.nix { + inherit dbus; + nushell_plugin_dbus = self.dbus; + }; + skim = callPackage ./skim.nix { }; + semver = callPackage ./semver.nix { }; + hcl = callPackage ./hcl.nix { }; + } + // lib.optionalAttrs config.allowAliases { + regex = throw "`nu_plugin_regex` is no longer compatible with the current Nushell release."; + } + ) ) From 94b1ae52c486c1e45a41123c48929f02a4156d8a Mon Sep 17 00:00:00 2001 From: Tom van Dijk <18gatenmaker6@gmail.com> Date: Sat, 28 Jun 2025 03:04:36 +0200 Subject: [PATCH 41/84] nushellPlugins.*: `doCheck = false;` where applicable --- pkgs/shells/nushell/plugins/hcl.nix | 3 +++ pkgs/shells/nushell/plugins/highlight.nix | 3 +++ pkgs/shells/nushell/plugins/net.nix | 3 +++ 3 files changed, 9 insertions(+) diff --git a/pkgs/shells/nushell/plugins/hcl.nix b/pkgs/shells/nushell/plugins/hcl.nix index d9228b3f0ae7..de5522b049bc 100644 --- a/pkgs/shells/nushell/plugins/hcl.nix +++ b/pkgs/shells/nushell/plugins/hcl.nix @@ -22,6 +22,9 @@ rustPlatform.buildRustPackage (finalAttrs: { nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ]; + # there are no tests + doCheck = false; + passthru.updateScript = nix-update-script { }; meta = { diff --git a/pkgs/shells/nushell/plugins/highlight.nix b/pkgs/shells/nushell/plugins/highlight.nix index 26f88c163ce7..e295c33e6890 100644 --- a/pkgs/shells/nushell/plugins/highlight.nix +++ b/pkgs/shells/nushell/plugins/highlight.nix @@ -23,6 +23,9 @@ rustPlatform.buildRustPackage (finalAttrs: { nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ]; + # there are no tests + doCheck = false; + passthru.updateScript = nix-update-script { }; meta = { diff --git a/pkgs/shells/nushell/plugins/net.nix b/pkgs/shells/nushell/plugins/net.nix index 6c486965dcf8..900b53e7a0df 100644 --- a/pkgs/shells/nushell/plugins/net.nix +++ b/pkgs/shells/nushell/plugins/net.nix @@ -21,6 +21,9 @@ rustPlatform.buildRustPackage (finalAttrs: { nativeBuildInputs = lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ]; + # there are no tests + doCheck = false; + passthru.updateScript = nix-update-script { }; meta = { From dbc821a8402d78c5e56f2c0b59c7f59e6ee14306 Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Sat, 28 Jun 2025 19:24:37 +0200 Subject: [PATCH 42/84] python3Packages.dramatiq: drop support for python 3.8 Co-authored-by: Nick Cao --- pkgs/development/python-modules/dramatiq/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/dramatiq/default.nix b/pkgs/development/python-modules/dramatiq/default.nix index 5e06f15f01f4..a5f5dbd62302 100644 --- a/pkgs/development/python-modules/dramatiq/default.nix +++ b/pkgs/development/python-modules/dramatiq/default.nix @@ -20,7 +20,7 @@ buildPythonPackage rec { version = "1.18.0"; pyproject = true; - disabled = pythonOlder "3.8"; + disabled = pythonOlder "3.9"; src = fetchFromGitHub { owner = "Bogdanp"; From babbf04ddd9a6968c360464de795fe49c1f138f2 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 25 Jun 2025 20:31:36 +0000 Subject: [PATCH 43/84] python3Packages.ibm-cloud-sdk-core: 3.22.1 -> 3.24.2 --- .../python-modules/ibm-cloud-sdk-core/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix b/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix index 93ca544d6ae6..5f79a568bf34 100644 --- a/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix +++ b/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "ibm-cloud-sdk-core"; - version = "3.22.1"; + version = "3.24.2"; pyproject = true; disabled = pythonOlder "3.9"; @@ -23,7 +23,7 @@ buildPythonPackage rec { owner = "IBM"; repo = "python-sdk-core"; tag = "v${version}"; - hash = "sha256-wXffw+/esHvWxrNdlnYLTPflgOaRyIdf0hxI4M12Xdc="; + hash = "sha256-xw7jEDr/5Qmd4+riAqFzTTFfmX/gQdlbzNZ8pua0hIs="; }; pythonRelaxDeps = [ "requests" ]; @@ -66,7 +66,7 @@ buildPythonPackage rec { meta = with lib; { description = "Client library for the IBM Cloud services"; homepage = "https://github.com/IBM/python-sdk-core"; - changelog = "https://github.com/IBM/python-sdk-core/blob/v${version}/CHANGELOG.md"; + changelog = "https://github.com/IBM/python-sdk-core/blob/${src.tag}/CHANGELOG.md"; license = licenses.asl20; maintainers = with maintainers; [ globin ]; }; From d9bcc50a0434a795c8655c84511ef0783654e4aa Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Sat, 28 Jun 2025 22:24:56 +0200 Subject: [PATCH 44/84] python3Packages.ibm-watson: fix build --- pkgs/development/python-modules/ibm-watson/default.nix | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkgs/development/python-modules/ibm-watson/default.nix b/pkgs/development/python-modules/ibm-watson/default.nix index 182fb24cc2d9..dce3970acb19 100644 --- a/pkgs/development/python-modules/ibm-watson/default.nix +++ b/pkgs/development/python-modules/ibm-watson/default.nix @@ -44,6 +44,12 @@ buildPythonPackage rec { responses ]; + # FileNotFoundError: [Errno 2] No such file or directory: './auth.json' + disabledTestPaths = [ + "test/integration/test_assistant_v2.py" + "test/integration/test_natural_language_understanding_v1.py" + ]; + pythonImportsCheck = [ "ibm_watson" ]; meta = with lib; { From fc9f9c2f4d20372ef29f91f39c3cd7661581e6e1 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Thu, 5 Jun 2025 10:24:30 +0000 Subject: [PATCH 45/84] python3Packages.consolekit: 1.7.2 -> 1.9.0 --- pkgs/development/python-modules/consolekit/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/consolekit/default.nix b/pkgs/development/python-modules/consolekit/default.nix index 2d747f8919be..bc2fb0d14572 100644 --- a/pkgs/development/python-modules/consolekit/default.nix +++ b/pkgs/development/python-modules/consolekit/default.nix @@ -12,12 +12,12 @@ }: buildPythonPackage rec { pname = "consolekit"; - version = "1.7.2"; + version = "1.9.0"; pyproject = true; src = fetchPypi { inherit pname version; - hash = "sha256-3qa58lA2nquII99W+SGEQHHlb1BRrAWdihUOiQYmcns="; + hash = "sha256-gePFFOq6jQF0QA0gls1+cjdNMRutZfM2Og6/FpP0w3Q="; }; build-system = [ flit-core ]; @@ -32,8 +32,8 @@ buildPythonPackage rec { ]; meta = { - description = "Additional utilities for click."; - homepage = "https://pypi.org/project/consolekit"; + description = "Additional utilities for click"; + homepage = "https://github.com/domdfcoding/consolekit"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ tyberius-prime ]; }; From 4e681f2a04ae1c99dc71a7122d1790bb4c9f0cab Mon Sep 17 00:00:00 2001 From: Tom van Dijk <18gatenmaker6@gmail.com> Date: Sat, 28 Jun 2025 14:54:39 +0200 Subject: [PATCH 46/84] nushellPlugins.*: add load check to all --- pkgs/shells/nushell/plugins/dbus.nix | 17 +------------ pkgs/shells/nushell/plugins/default.nix | 34 +++++++++++++++++++++---- pkgs/shells/nushell/plugins/skim.nix | 17 +------------ 3 files changed, 31 insertions(+), 37 deletions(-) diff --git a/pkgs/shells/nushell/plugins/dbus.nix b/pkgs/shells/nushell/plugins/dbus.nix index 8e7e33ca47f0..8b37fad33a8e 100644 --- a/pkgs/shells/nushell/plugins/dbus.nix +++ b/pkgs/shells/nushell/plugins/dbus.nix @@ -1,14 +1,11 @@ { stdenv, - runCommand, lib, rustPlatform, pkg-config, nix-update-script, fetchFromGitHub, dbus, - nushell, - nushell_plugin_dbus, }: rustPlatform.buildRustPackage (finalAttrs: { @@ -27,19 +24,7 @@ rustPlatform.buildRustPackage (finalAttrs: { nativeBuildInputs = [ pkg-config ] ++ lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ]; buildInputs = [ dbus ]; - passthru = { - updateScript = nix-update-script { }; - tests.check = - let - nu = lib.getExe nushell; - plugin = lib.getExe nushell_plugin_dbus; - in - runCommand "${finalAttrs.pname}-test" { } '' - touch $out - ${nu} -n -c "plugin add --plugin-config $out ${plugin}" - ${nu} -n -c "plugin use --plugin-config $out dbus" - ''; - }; + passthru.updateScript = nix-update-script { }; meta = { description = "Nushell plugin for communicating with D-Bus"; diff --git a/pkgs/shells/nushell/plugins/default.nix b/pkgs/shells/nushell/plugins/default.nix index 065c7786d976..df15b6aadd15 100644 --- a/pkgs/shells/nushell/plugins/default.nix +++ b/pkgs/shells/nushell/plugins/default.nix @@ -4,6 +4,8 @@ newScope, dbus, versionCheckHook, + nushell, + runCommand, }: lib.makeScope newScope ( @@ -12,10 +14,33 @@ lib.makeScope newScope ( lib.mapAttrs ( _n: p: - p.overrideAttrs { - doInstallCheck = true; - nativeInstallCheckInputs = [ versionCheckHook ]; - } + let + # add two checks: + # - `versionCheckhook`, checks wether it's a binary that is able to + # display its own version + # - A check which loads the plugin into the current version of nushell, + # to detect incompatibilities (plugins are compiled for very specific + # versions of nushell). If this fails, either update the plugin or mark + # as broken. + withChecks = p.overrideAttrs ( + final: _prev: { + doInstallCheck = true; + nativeInstallCheckInputs = [ versionCheckHook ]; + + passthru.tests.loadCheck = + let + nu = lib.getExe nushell; + plugin = lib.getExe withChecks; + in + runCommand "test-load-${final.pname}" { } '' + touch $out + ${nu} -n -c "plugin add --plugin-config $out ${plugin}" + ${nu} -n -c "plugin use --plugin-config $out ${plugin}" + ''; + } + ); + in + withChecks ) ( with self; @@ -29,7 +54,6 @@ lib.makeScope newScope ( highlight = callPackage ./highlight.nix { }; dbus = callPackage ./dbus.nix { inherit dbus; - nushell_plugin_dbus = self.dbus; }; skim = callPackage ./skim.nix { }; semver = callPackage ./semver.nix { }; diff --git a/pkgs/shells/nushell/plugins/skim.nix b/pkgs/shells/nushell/plugins/skim.nix index 45d02960bf72..0cf990aa66c9 100644 --- a/pkgs/shells/nushell/plugins/skim.nix +++ b/pkgs/shells/nushell/plugins/skim.nix @@ -1,12 +1,9 @@ { stdenv, - runCommand, lib, rustPlatform, nix-update-script, fetchFromGitHub, - nushell, - skim, }: rustPlatform.buildRustPackage (finalAttrs: { @@ -24,19 +21,7 @@ rustPlatform.buildRustPackage (finalAttrs: { nativeBuildInputs = lib.optionals stdenv.cc.isClang [ rustPlatform.bindgenHook ]; - passthru = { - updateScript = nix-update-script { }; - tests.check = - let - nu = lib.getExe nushell; - plugin = lib.getExe skim; - in - runCommand "${finalAttrs.pname}-test" { } '' - touch $out - ${nu} -n -c "plugin add --plugin-config $out ${plugin}" - ${nu} -n -c "plugin use --plugin-config $out skim" - ''; - }; + passthru.updateScript = nix-update-script { }; meta = { description = "A nushell plugin that adds integrates the skim fuzzy finder"; From fdcb0246dbfd60ddb86bb97f14c582a066f623d4 Mon Sep 17 00:00:00 2001 From: Tom van Dijk <18gatenmaker6@gmail.com> Date: Sat, 28 Jun 2025 16:37:48 +0200 Subject: [PATCH 47/84] nushellPlugins.units: mark as broken --- pkgs/shells/nushell/plugins/units.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/shells/nushell/plugins/units.nix b/pkgs/shells/nushell/plugins/units.nix index fdcd47ab5fdd..f968cf359d61 100644 --- a/pkgs/shells/nushell/plugins/units.nix +++ b/pkgs/shells/nushell/plugins/units.nix @@ -30,5 +30,8 @@ rustPlatform.buildRustPackage (finalAttrs: { homepage = "https://github.com/JosephTLyons/nu_plugin_units"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ mgttlinger ]; + # "Plugin `units` is compiled for nushell version 0.104.0, which is not + # compatible with version 0.105.1" + broken = true; }; }) From 8f7a6eca02c63f7e5e0693f464857b0a8a2a83ad Mon Sep 17 00:00:00 2001 From: Tom van Dijk <18gatenmaker6@gmail.com> Date: Sat, 28 Jun 2025 16:39:11 +0200 Subject: [PATCH 48/84] nushellPlugins.dbus: mark as broken --- pkgs/shells/nushell/plugins/dbus.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/shells/nushell/plugins/dbus.nix b/pkgs/shells/nushell/plugins/dbus.nix index 8b37fad33a8e..d989b61def66 100644 --- a/pkgs/shells/nushell/plugins/dbus.nix +++ b/pkgs/shells/nushell/plugins/dbus.nix @@ -33,5 +33,8 @@ rustPlatform.buildRustPackage (finalAttrs: { license = lib.licenses.mit; maintainers = with lib.maintainers; [ aftix ]; platforms = lib.platforms.linux; + # "Plugin `dbus` is compiled for nushell version 0.101.0, which is not + # compatible with version 0.105.1" + broken = true; }; }) From fad92653b7540113899c72cc6cd86ec39996a646 Mon Sep 17 00:00:00 2001 From: Tom van Dijk <18gatenmaker6@gmail.com> Date: Sat, 28 Jun 2025 16:42:53 +0200 Subject: [PATCH 49/84] nushellPlugins.net: mark as broken --- pkgs/shells/nushell/plugins/net.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/shells/nushell/plugins/net.nix b/pkgs/shells/nushell/plugins/net.nix index 900b53e7a0df..93d5daf4c8c9 100644 --- a/pkgs/shells/nushell/plugins/net.nix +++ b/pkgs/shells/nushell/plugins/net.nix @@ -32,5 +32,8 @@ rustPlatform.buildRustPackage (finalAttrs: { license = lib.licenses.mit; maintainers = with lib.maintainers; [ happysalada ]; mainProgram = "nu_plugin_net"; + # "Plugin `net` is compiled for nushell version 0.104.0, which is not + # compatible with version 0.105.1" + broken = true; }; }) From 37467643f3a6dd3ae2c8e5786285b411df96c4a0 Mon Sep 17 00:00:00 2001 From: Tom van Dijk <18gatenmaker6@gmail.com> Date: Sat, 28 Jun 2025 23:19:01 +0200 Subject: [PATCH 50/84] nushell: comment on plugin compatibility --- pkgs/shells/nushell/default.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/shells/nushell/default.nix b/pkgs/shells/nushell/default.nix index 5576dfd98c2a..3f92cc4224fb 100644 --- a/pkgs/shells/nushell/default.nix +++ b/pkgs/shells/nushell/default.nix @@ -20,6 +20,9 @@ }: let + # NOTE: when updating this to a new non-patch version, please also try to + # update the plugins. Plugins only work if they are compiled for the same + # major/minor version. version = "0.105.1"; in rustPlatform.buildRustPackage { From 58bef8aedf3ff4fc7bd307180ff0fd0a399a824a Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Sun, 29 Jun 2025 00:38:31 +0200 Subject: [PATCH 51/84] python3Packages.pixel-font-knife: drop support for python 3.10-3.11 --- pkgs/development/python-modules/pixel-font-knife/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/pixel-font-knife/default.nix b/pkgs/development/python-modules/pixel-font-knife/default.nix index b81cd7884fa0..c5b4bac1528c 100644 --- a/pkgs/development/python-modules/pixel-font-knife/default.nix +++ b/pkgs/development/python-modules/pixel-font-knife/default.nix @@ -16,7 +16,7 @@ buildPythonPackage rec { version = "0.0.16"; pyproject = true; - disabled = pythonOlder "3.10"; + disabled = pythonOlder "3.12"; src = fetchPypi { pname = "pixel_font_knife"; From 8bc030b5368866186fe840b1c200db521d8583c7 Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Sun, 29 Jun 2025 00:39:01 +0200 Subject: [PATCH 52/84] python3Packages.azure-keyvault-administration: drop support for python 3.8 Co-authored-by: Nick Cao --- .../python-modules/azure-keyvault-administration/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/azure-keyvault-administration/default.nix b/pkgs/development/python-modules/azure-keyvault-administration/default.nix index 27a1763dc54d..862b6a84d39a 100644 --- a/pkgs/development/python-modules/azure-keyvault-administration/default.nix +++ b/pkgs/development/python-modules/azure-keyvault-administration/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { version = "4.6.0"; pyproject = true; - disabled = pythonOlder "3.8"; + disabled = pythonOlder "3.9"; src = fetchPypi { pname = "azure_keyvault_administration"; From 0c9b46d726de1def9234da1d4cd7773e1ed87fe2 Mon Sep 17 00:00:00 2001 From: Franz Pletz Date: Sun, 29 Jun 2025 01:12:53 +0200 Subject: [PATCH 53/84] librewolf-unwrapped: 139.0.4-1 -> 140.0.2-1 --- .../networking/browsers/librewolf/src.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/applications/networking/browsers/librewolf/src.json b/pkgs/applications/networking/browsers/librewolf/src.json index 4b24b1a27002..95333e42627e 100644 --- a/pkgs/applications/networking/browsers/librewolf/src.json +++ b/pkgs/applications/networking/browsers/librewolf/src.json @@ -1,11 +1,11 @@ { - "packageVersion": "139.0.4-1", + "packageVersion": "140.0.2-1", "source": { - "rev": "139.0.4-1", - "hash": "sha256-rEhidZsJEQU8ist278Cw1//+MVWz1UqqZPDF9v+H+cc=" + "rev": "140.0.2-1", + "hash": "sha256-xCKZgnPAoY5y5NmM0/qSeLRvB5ZirnPyxxoNnYA4ZRs=" }, "firefox": { - "version": "139.0.4", - "hash": "sha512-+lrnmLDNSF4KVrDFftfzPg0O+SEwLcAWnqyRkmGUq+IHC+tUI5yBkk+BmmC1ifMF+SOXDXU8B7pQrMNuGkkttA==" + "version": "140.0.2", + "hash": "sha512-EdMpXIKDVmj0OoiL1araIiSHduAzrsx1WDSObuJmJr9LZbuq4mgPcoWmsrYgnsXUrqRT8eBgNUTNSL9FxzWy6g==" } } From a5636d1f745ff4e716db521510facabeb7628d96 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 29 Jun 2025 01:14:33 +0000 Subject: [PATCH 54/84] protoc-gen-dart: 22.3.0 -> 22.4.0 --- pkgs/by-name/pr/protoc-gen-dart/package.nix | 4 +- .../pr/protoc-gen-dart/pubspec.lock.json | 70 ++++++------------- 2 files changed, 22 insertions(+), 52 deletions(-) diff --git a/pkgs/by-name/pr/protoc-gen-dart/package.nix b/pkgs/by-name/pr/protoc-gen-dart/package.nix index 6b2610cd709e..bc87bdaf8b9a 100644 --- a/pkgs/by-name/pr/protoc-gen-dart/package.nix +++ b/pkgs/by-name/pr/protoc-gen-dart/package.nix @@ -6,13 +6,13 @@ buildDartApplication rec { pname = "protoc-gen-dart"; - version = "22.3.0"; + version = "22.4.0"; src = fetchFromGitHub { owner = "google"; repo = "protobuf.dart"; tag = "protoc_plugin-v${version}"; - hash = "sha256-P2h1M7Wga0qOrI/sTUrQ6k/a5gqKVqAfs/J1eGFHHwg="; + hash = "sha256-X5WBju6DHsimhvOIVhX+zJCm5BTlEky/7iR2CS5Ybm4="; }; sourceRoot = "${src.name}/protoc_plugin"; diff --git a/pkgs/by-name/pr/protoc-gen-dart/pubspec.lock.json b/pkgs/by-name/pr/protoc-gen-dart/pubspec.lock.json index 13b7eb5483a6..2160c7a925fe 100644 --- a/pkgs/by-name/pr/protoc-gen-dart/pubspec.lock.json +++ b/pkgs/by-name/pr/protoc-gen-dart/pubspec.lock.json @@ -4,21 +4,21 @@ "dependency": "transitive", "description": { "name": "_fe_analyzer_shared", - "sha256": "e55636ed79578b9abca5fecf9437947798f5ef7456308b5cb85720b793eac92f", + "sha256": "da0d9209ca76bde579f2da330aeb9df62b6319c834fa7baae052021b0462401f", "url": "https://pub.dev" }, "source": "hosted", - "version": "82.0.0" + "version": "85.0.0" }, "analyzer": { "dependency": "transitive", "description": { "name": "analyzer", - "sha256": "904ae5bb474d32c38fb9482e2d925d5454cda04ddd0e55d2e6826bc72f6ba8c0", + "sha256": "f6154230675c44a191f2e20d16eeceb4aa18b30ca732db4efaf94c6a7d43cfa6", "url": "https://pub.dev" }, "source": "hosted", - "version": "7.4.5" + "version": "7.5.2" }, "args": { "dependency": "transitive", @@ -50,16 +50,6 @@ "source": "hosted", "version": "2.1.2" }, - "checked_yaml": { - "dependency": "transitive", - "description": { - "name": "checked_yaml", - "sha256": "feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "2.0.3" - }, "cli_config": { "dependency": "transitive", "description": { @@ -94,11 +84,11 @@ "dependency": "transitive", "description": { "name": "coverage", - "sha256": "4b8701e48a58f7712492c9b1f7ba0bb9d525644dd66d023b62e1fc8cdb560c8a", + "sha256": "aa07dbe5f2294c827b7edb9a87bba44a9c15a3cc81bc8da2ca19b37322d30080", "url": "https://pub.dev" }, "source": "hosted", - "version": "1.14.0" + "version": "1.14.1" }, "crypto": { "dependency": "transitive", @@ -110,15 +100,15 @@ "source": "hosted", "version": "3.0.6" }, - "dart_flutter_team_lints": { + "dart_style": { "dependency": "direct dev", "description": { - "name": "dart_flutter_team_lints", - "sha256": "e2f4fcafdaf0797e5af1c5c162d0b6c5025e9228ab3f95174340ed35c85dccd6", + "name": "dart_style", + "sha256": "5b236382b47ee411741447c1f1e111459c941ea1b3f2b540dde54c210a3662af", "url": "https://pub.dev" }, "source": "hosted", - "version": "1.0.0" + "version": "3.1.0" }, "file": { "dependency": "transitive", @@ -200,25 +190,15 @@ "source": "hosted", "version": "0.7.2" }, - "json_annotation": { - "dependency": "transitive", - "description": { - "name": "json_annotation", - "sha256": "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "4.9.0" - }, "lints": { - "dependency": "transitive", + "dependency": "direct dev", "description": { "name": "lints", - "sha256": "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452", + "sha256": "a5e2b223cb7c9c8efdc663ef484fdd95bb243bff242ef5b13e26883547fce9a0", "url": "https://pub.dev" }, "source": "hosted", - "version": "2.1.1" + "version": "6.0.0" }, "logging": { "dependency": "transitive", @@ -231,7 +211,7 @@ "version": "1.3.0" }, "matcher": { - "dependency": "direct dev", + "dependency": "transitive", "description": { "name": "matcher", "sha256": "dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2", @@ -311,7 +291,7 @@ "version": "4.1.0" }, "pub_semver": { - "dependency": "transitive", + "dependency": "direct dev", "description": { "name": "pub_semver", "sha256": "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585", @@ -320,16 +300,6 @@ "source": "hosted", "version": "2.2.0" }, - "pubspec_parse": { - "dependency": "transitive", - "description": { - "name": "pubspec_parse", - "sha256": "0560ba233314abbed0a48a2956f7f022cce7c3e1e73df540277da7544cad4082", - "url": "https://pub.dev" - }, - "source": "hosted", - "version": "1.5.0" - }, "shelf": { "dependency": "transitive", "description": { @@ -484,21 +454,21 @@ "dependency": "transitive", "description": { "name": "vm_service", - "sha256": "6f82e9ee8e7339f5d8b699317f6f3afc17c80a68ebef1bc0d6f52a678c14b1e6", + "sha256": "45caa6c5917fa127b5dbcfbd1fa60b14e583afdc08bfc96dda38886ca252eb60", "url": "https://pub.dev" }, "source": "hosted", - "version": "15.0.1" + "version": "15.0.2" }, "watcher": { "dependency": "transitive", "description": { "name": "watcher", - "sha256": "69da27e49efa56a15f8afe8f4438c4ec02eff0a117df1b22ea4aad194fe1c104", + "sha256": "0b7fd4a0bbc4b92641dbf20adfd7e3fd1398fe17102d94b674234563e110088a", "url": "https://pub.dev" }, "source": "hosted", - "version": "1.1.1" + "version": "1.1.2" }, "web": { "dependency": "transitive", @@ -552,6 +522,6 @@ } }, "sdks": { - "dart": ">=3.7.0-0 <4.0.0" + "dart": ">=3.8.0-0 <4.0.0" } } From 2db497a8ad06bb89250c288d89eb52f4a303ba85 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 29 Jun 2025 09:24:12 +0000 Subject: [PATCH 55/84] heynote: 2.2.2 -> 2.3.2 --- pkgs/by-name/he/heynote/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/he/heynote/package.nix b/pkgs/by-name/he/heynote/package.nix index 859d175f46f6..39541c1e993a 100644 --- a/pkgs/by-name/he/heynote/package.nix +++ b/pkgs/by-name/he/heynote/package.nix @@ -7,11 +7,11 @@ }: let pname = "heynote"; - version = "2.2.2"; + version = "2.3.2"; src = fetchurl { url = "https://github.com/heyman/heynote/releases/download/v${version}/Heynote_${version}_x86_64.AppImage"; - sha256 = "sha256-DFJ7j8eFElbsU7EiIZuH9DdkuBVmmDQ66tkRDYBApCc="; + sha256 = "sha256-GqzznFea7vIGOe5XH5r3jOzk7CfRn9M8KHonUMsvs50="; }; appimageContents = appimageTools.extractType2 { From a227d0520eb7c066d669d301df2108a5b61e529f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 17 Jun 2025 12:29:01 +0000 Subject: [PATCH 56/84] python3Packages.rq: 2.3.3 -> 2.4 --- pkgs/development/python-modules/rq/default.nix | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/pkgs/development/python-modules/rq/default.nix b/pkgs/development/python-modules/rq/default.nix index bcb757a0411b..fd802dd70f70 100644 --- a/pkgs/development/python-modules/rq/default.nix +++ b/pkgs/development/python-modules/rq/default.nix @@ -3,7 +3,6 @@ stdenv, fetchFromGitHub, buildPythonPackage, - fetchpatch, # build-system hatchling, @@ -22,23 +21,16 @@ buildPythonPackage rec { pname = "rq"; - version = "2.3.3"; + version = "2.4"; pyproject = true; src = fetchFromGitHub { owner = "rq"; repo = "rq"; tag = "v${version}"; - hash = "sha256-NUs544J/pC2QNyR2aIlac2P06so7JmB2P6FB/gmR7wI="; + hash = "sha256-7aq9JeyM+IjlRPgh4gs1DmkF0hU5EasgTuUPPlf8960="; }; - patches = [ - (fetchpatch { - url = "https://github.com/rq/rq/commit/18c0f30c6aa0de2c55fba64105b1cb0495d728cf.patch"; - hash = "sha256-woWW8SkKXrMyDW+tY+ItxO/tuHHuuZhW+OJxwTTZucI="; - }) - ]; - build-system = [ hatchling ]; dependencies = [ From 28fa84c9d3d2fa22be1b0af963812a4e8d15f0ca Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 29 Jun 2025 12:56:12 +0000 Subject: [PATCH 57/84] gitu: 0.33.0 -> 0.34.0 --- pkgs/by-name/gi/gitu/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/gi/gitu/package.nix b/pkgs/by-name/gi/gitu/package.nix index bd28d16b3b7b..09b1868bd9bc 100644 --- a/pkgs/by-name/gi/gitu/package.nix +++ b/pkgs/by-name/gi/gitu/package.nix @@ -11,17 +11,17 @@ rustPlatform.buildRustPackage rec { pname = "gitu"; - version = "0.33.0"; + version = "0.34.0"; src = fetchFromGitHub { owner = "altsem"; repo = "gitu"; rev = "v${version}"; - hash = "sha256-9rJa6nXz9gzEVAVkvIghMaND7MY84dLHLV6Kr/ApEnU="; + hash = "sha256-Qp8JHHLzuqVEf+k4w3jncbjN3s4IETAIHpcr0fc6wmw="; }; useFetchCargoVendor = true; - cargoHash = "sha256-QN+AU9Qsqx2l2vwpANkMhycv2qFzjCQoxFgbP9WVpOk="; + cargoHash = "sha256-uYGKRRcGcZSLJVV0/PwWlrnmdVezbJzU3+p6Mq8VFz8="; nativeBuildInputs = [ pkg-config From a2a5367191218126e63cbda85bbb203d192155af Mon Sep 17 00:00:00 2001 From: TomaSajt <62384384+TomaSajt@users.noreply.github.com> Date: Wed, 25 Jun 2025 17:05:10 +0200 Subject: [PATCH 58/84] rstudio: bump electron version --- pkgs/by-name/rs/rstudio/bump-node-abi.patch | 67 +++++++++++++++++++++ pkgs/by-name/rs/rstudio/package.nix | 11 +++- 2 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 pkgs/by-name/rs/rstudio/bump-node-abi.patch diff --git a/pkgs/by-name/rs/rstudio/bump-node-abi.patch b/pkgs/by-name/rs/rstudio/bump-node-abi.patch new file mode 100644 index 000000000000..10d3c424f25d --- /dev/null +++ b/pkgs/by-name/rs/rstudio/bump-node-abi.patch @@ -0,0 +1,67 @@ +diff --git a/src/node/desktop/package-lock.json b/src/node/desktop/package-lock.json +index e4cf455..f822c46 100644 +--- a/src/node/desktop/package-lock.json ++++ b/src/node/desktop/package-lock.json +@@ -18,7 +18,7 @@ + "line-reader": "0.4.0", + "lodash.debounce": "4.0.8", + "net-ipc": "2.2.0", +- "node-abi": "3.71.0", ++ "node-abi": "^4.10.0", + "node-addon-api": "8.3.1", + "node-system-fonts": "1.0.1", + "properties-reader": "2.3.0", +@@ -1068,6 +1068,19 @@ + "node": ">=12.13.0" + } + }, ++ "node_modules/@electron/rebuild/node_modules/node-abi": { ++ "version": "3.75.0", ++ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.75.0.tgz", ++ "integrity": "sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==", ++ "dev": true, ++ "license": "MIT", ++ "dependencies": { ++ "semver": "^7.3.5" ++ }, ++ "engines": { ++ "node": ">=10" ++ } ++ }, + "node_modules/@electron/universal": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@electron/universal/-/universal-2.0.2.tgz", +@@ -9615,15 +9628,15 @@ + } + }, + "node_modules/node-abi": { +- "version": "3.71.0", +- "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz", +- "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==", ++ "version": "4.10.0", ++ "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-4.10.0.tgz", ++ "integrity": "sha512-99+BHGmmk969uU3Q4DM9t2tBvDKmqZ3prz/yumY7n+fV2zA+DAOBXuodsp9ZD/QSXK8aSKgWIpkg8tbrAe9JBg==", + "license": "MIT", + "dependencies": { +- "semver": "^7.3.5" ++ "semver": "^7.6.3" + }, + "engines": { +- "node": ">=10" ++ "node": ">=22.12.0" + } + }, + "node_modules/node-abort-controller": { +diff --git a/src/node/desktop/package.json b/src/node/desktop/package.json +index 1fe9294..e3797cf 100644 +--- a/src/node/desktop/package.json ++++ b/src/node/desktop/package.json +@@ -76,7 +76,7 @@ + "line-reader": "0.4.0", + "lodash.debounce": "4.0.8", + "net-ipc": "2.2.0", +- "node-abi": "3.71.0", ++ "node-abi": "^4.10.0", + "node-addon-api": "8.3.1", + "node-system-fonts": "1.0.1", + "properties-reader": "2.3.0", diff --git a/pkgs/by-name/rs/rstudio/package.nix b/pkgs/by-name/rs/rstudio/package.nix index 758428d1f05a..f20943963c5a 100644 --- a/pkgs/by-name/rs/rstudio/package.nix +++ b/pkgs/by-name/rs/rstudio/package.nix @@ -26,7 +26,7 @@ apple-sdk_11, boost187, - electron_34, + electron_36, fontconfig, gnumake, hunspellDicts, @@ -45,7 +45,7 @@ }: let - electron = electron_34; + electron = electron_36; mathJaxSrc = fetchzip { url = "https://s3.amazonaws.com/rstudio-buildtools/mathjax-27.zip"; @@ -211,6 +211,7 @@ stdenv.mkDerivation rec { ./ignore-etc-os-release.patch ./dont-yarn-install.patch ./fix-darwin.patch + ./bump-node-abi.patch ]; postPatch = '' @@ -241,7 +242,11 @@ stdenv.mkDerivation rec { name = "rstudio-${version}-npm-deps"; inherit src; postPatch = "cd ${npmRoot}"; - hash = "sha256-ispV6FJdtOELtFNIZDn1lKbwvO/iTO8mrZ8nIOs2uhs="; + patches = [ + # needed for support for electron versions above electron_34 + ./bump-node-abi.patch + ]; + hash = "sha256-64PJPUE/xwdQdxVGiKzy8ADnxXH/qGQtFMib0unZpoA="; }; preConfigure = From 39c70b43853372c5f521bb4a104a5e31b041679c Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 29 Jun 2025 13:35:02 +0000 Subject: [PATCH 59/84] metabigor: 2.0.0 -> 2.0.1 --- pkgs/by-name/me/metabigor/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/me/metabigor/package.nix b/pkgs/by-name/me/metabigor/package.nix index bdddbad8e083..805758dba5c2 100644 --- a/pkgs/by-name/me/metabigor/package.nix +++ b/pkgs/by-name/me/metabigor/package.nix @@ -6,13 +6,13 @@ buildGoModule rec { pname = "metabigor"; - version = "2.0.0"; + version = "2.0.1"; src = fetchFromGitHub { owner = "j3ssie"; repo = "metabigor"; tag = "v${version}"; - hash = "sha256-JFt9PC6VHWTYuaIWh2t2BiGFm1tGwZDdhhdp2xtmXSI="; + hash = "sha256-3bIU1eVsVhXEazcvlhTbuBLBSdjTxEuO2SXjdcUUyNs="; }; vendorHash = "sha256-PGUOTEFcOL1pG+itTp9ce1qW+1V6hts8jKpA0E8orDk="; From 3638d7cf50c18453e1cd2f38ab50bcc1fc28a06b Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 29 Jun 2025 14:14:51 +0000 Subject: [PATCH 60/84] memogram: 0.2.5 -> 0.2.6 --- pkgs/by-name/me/memogram/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/me/memogram/package.nix b/pkgs/by-name/me/memogram/package.nix index ebe7c03b0196..017741ca6c72 100644 --- a/pkgs/by-name/me/memogram/package.nix +++ b/pkgs/by-name/me/memogram/package.nix @@ -6,16 +6,16 @@ }: buildGoModule (finalAttrs: { pname = "memogram"; - version = "0.2.5"; + version = "0.2.6"; src = fetchFromGitHub { owner = "usememos"; repo = "telegram-integration"; tag = "v${finalAttrs.version}"; - hash = "sha256-Q3C1Ehs2TMeKsnjcNiL4HK08sCeWXjqVHiE55iHs0g8="; + hash = "sha256-vpDwa5MvNyJUNCdeNK7PhXBoEHtKKsyFdbMsNRBLqW4="; }; - vendorHash = "sha256-3NdWhckcXUEeKLz2G7xsHlbIBViyvFDCQzNVvaDi48U="; + vendorHash = "sha256-F8JllhYMvBWEeHa4boFbTHLFTa0s+Tarqtf4NfVqK7s="; subPackages = [ "bin/memogram" ]; From 47c85f6f36941489462e04ca5b9e23fda1d070ea Mon Sep 17 00:00:00 2001 From: Pascal Dietrich Date: Sun, 29 Jun 2025 00:17:29 +0200 Subject: [PATCH 61/84] mdns-scanner: 0.15.0 -> 0.16.1 --- pkgs/by-name/md/mdns-scanner/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/md/mdns-scanner/package.nix b/pkgs/by-name/md/mdns-scanner/package.nix index 44ff1d003180..8ca3fe5df6c5 100644 --- a/pkgs/by-name/md/mdns-scanner/package.nix +++ b/pkgs/by-name/md/mdns-scanner/package.nix @@ -6,16 +6,16 @@ rustPlatform.buildRustPackage (finalAttrs: { pname = "mdns-scanner"; - version = "0.15.0"; + version = "0.16.1"; src = fetchFromGitHub { owner = "CramBL"; repo = "mdns-scanner"; tag = "v${finalAttrs.version}"; - hash = "sha256-15yVQfqzAYBrCzMZJE3IiQG+ZfGMQYltxDGf+pmD8ss="; + hash = "sha256-8YOiJ2rnLQvVLkoMBDUw/DPMMRMrQs9fWnZ/YlCpui0="; }; - cargoHash = "sha256-htYBCcK8aVCTmdxMW0QmX+2aS9ZuC7PsuebrWMpUl38="; + cargoHash = "sha256-KiuIYuQO7BYhEl0AAzpt4PQxQcdxsSwv/Asj4DsEUUE="; meta = { homepage = "https://github.com/CramBL/mdns-scanner"; From b49d9f84d4b7e7ca3689ee8ca22d0c6338388732 Mon Sep 17 00:00:00 2001 From: Felix Kimmel Date: Sun, 29 Jun 2025 19:42:18 +0200 Subject: [PATCH 62/84] vscode-extensions.pkief.material-icon-theme: 5.23.0 -> 5.24.0 and moved to own directory --- .../editors/vscode/extensions/default.nix | 16 +--------------- .../pkief.material-icon-theme/default.nix | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 15 deletions(-) create mode 100644 pkgs/applications/editors/vscode/extensions/pkief.material-icon-theme/default.nix diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix index fd53a475f4d9..b3b63b458e00 100644 --- a/pkgs/applications/editors/vscode/extensions/default.nix +++ b/pkgs/applications/editors/vscode/extensions/default.nix @@ -3899,21 +3899,7 @@ let }; }; - pkief.material-icon-theme = buildVscodeMarketplaceExtension { - mktplcRef = { - name = "material-icon-theme"; - publisher = "PKief"; - version = "5.23.0"; - hash = "sha256-numOqtLBqPKhlHXpdKtzg423vijR0p0a8f9niR2WrCc="; - }; - meta = { - description = "Material Design Icons for Visual Studio Code"; - downloadPage = "https://marketplace.visualstudio.com/items/?itemName=PKief.material-icon-theme"; - homepage = "https://github.com/material-extensions/vscode-material-icon-theme/blob/main/README.md"; - license = lib.licenses.mit; - maintainers = [ lib.maintainers.therobot2105 ]; - }; - }; + pkief.material-icon-theme = callPackage ./pkief.material-icon-theme { }; pkief.material-product-icons = buildVscodeMarketplaceExtension { mktplcRef = { diff --git a/pkgs/applications/editors/vscode/extensions/pkief.material-icon-theme/default.nix b/pkgs/applications/editors/vscode/extensions/pkief.material-icon-theme/default.nix new file mode 100644 index 000000000000..f80e481949c1 --- /dev/null +++ b/pkgs/applications/editors/vscode/extensions/pkief.material-icon-theme/default.nix @@ -0,0 +1,19 @@ +{ + lib, + vscode-utils, +}: +vscode-utils.buildVscodeMarketplaceExtension { + mktplcRef = { + name = "material-icon-theme"; + publisher = "PKief"; + version = "5.24.0"; + hash = "sha256-Skc+ib3gY2cLVepOjbBkpwPuUG9C29bh5BOxQOAZNtc="; + }; + meta = { + description = "Material Design Icons for Visual Studio Code"; + downloadPage = "https://marketplace.visualstudio.com/items/?itemName=PKief.material-icon-theme"; + homepage = "https://github.com/material-extensions/vscode-material-icon-theme/blob/main/README.md"; + license = lib.licenses.mit; + maintainers = [ lib.maintainers.therobot2105 ]; + }; +} From 6c6eaf262dab83937dbcddb4cdea8e1bc1266894 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 29 Jun 2025 18:09:56 +0000 Subject: [PATCH 63/84] python3Packages.google-cloud-automl: 2.16.3 -> 2.16.4 --- .../python-modules/google-cloud-automl/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/google-cloud-automl/default.nix b/pkgs/development/python-modules/google-cloud-automl/default.nix index eb8c15cde5f8..dd9590c06708 100644 --- a/pkgs/development/python-modules/google-cloud-automl/default.nix +++ b/pkgs/development/python-modules/google-cloud-automl/default.nix @@ -18,7 +18,7 @@ buildPythonPackage rec { pname = "google-cloud-automl"; - version = "2.16.3"; + version = "2.16.4"; pyproject = true; disabled = pythonOlder "3.7"; @@ -26,7 +26,7 @@ buildPythonPackage rec { src = fetchPypi { pname = "google_cloud_automl"; inherit version; - hash = "sha256-b10WLvYAjZPKBGUal4b63rRJfUqKJL9n3ztVOVFK3y8="; + hash = "sha256-XVK9SF3RiPCejokDA8thyrJ910f8aQfSYdX9Wl3AgqM="; }; build-system = [ setuptools ]; From 052e636b52f5150179d24beeb3d1bf270392006d Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 29 Jun 2025 18:50:56 +0000 Subject: [PATCH 64/84] litellm: 1.72.6 -> 1.73.0 --- pkgs/development/python-modules/litellm/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/litellm/default.nix b/pkgs/development/python-modules/litellm/default.nix index 03cf701b4d55..aeac5afcfa1a 100644 --- a/pkgs/development/python-modules/litellm/default.nix +++ b/pkgs/development/python-modules/litellm/default.nix @@ -46,7 +46,7 @@ buildPythonPackage rec { pname = "litellm"; - version = "1.72.6"; + version = "1.73.0"; pyproject = true; disabled = pythonOlder "3.8"; @@ -55,7 +55,7 @@ buildPythonPackage rec { owner = "BerriAI"; repo = "litellm"; tag = "v${version}-stable"; - hash = "sha256-Qs/jmNJx/fztLqce47yd1pzIZyPsz0XhXUyoC1vkp6g="; + hash = "sha256-Mpy+Vu9AwOUMOTskAfqQMO5k6Lw3IQdsIohQab4R2dY="; }; build-system = [ poetry-core ]; From 775af4dea00800b263fcef844185c335ef000625 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Tue, 10 Jun 2025 18:06:27 +0000 Subject: [PATCH 65/84] python3Packages.magicgui: 0.10.0 -> 0.10.1 --- pkgs/development/python-modules/magicgui/default.nix | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/python-modules/magicgui/default.nix b/pkgs/development/python-modules/magicgui/default.nix index 7ebf7e79280e..ee84f8d39bb1 100644 --- a/pkgs/development/python-modules/magicgui/default.nix +++ b/pkgs/development/python-modules/magicgui/default.nix @@ -16,7 +16,7 @@ buildPythonPackage rec { pname = "magicgui"; - version = "0.10.0"; + version = "0.10.1"; pyproject = true; disabled = pythonOlder "3.8"; @@ -25,7 +25,7 @@ buildPythonPackage rec { owner = "pyapp-kit"; repo = "magicgui"; tag = "v${version}"; - hash = "sha256-taPnP9uB1y9hNqG/3MF3ZTc0q94+8WUx4E6+TQsJnIU="; + hash = "sha256-jpM5OpQ10cF+HBhAI9cI/gXdHMzYsgY9vtpfNq+5fIw="; }; build-system = [ @@ -51,8 +51,8 @@ buildPythonPackage rec { meta = with lib; { description = "Build GUIs from python functions, using magic. (napari/magicgui)"; - homepage = "https://github.com/napari/magicgui"; - changelog = "https://github.com/pyapp-kit/magicgui/blob/v${version}/CHANGELOG.md"; + homepage = "https://github.com/pyapp-kit/magicgui"; + changelog = "https://github.com/pyapp-kit/magicgui/blob/${src.tag}/CHANGELOG.md"; license = licenses.mit; maintainers = with maintainers; [ SomeoneSerge ]; }; From b4532efe93882ae2e3fc579929a42a5a56544146 Mon Sep 17 00:00:00 2001 From: Wolfgang Walther Date: Sun, 29 Jun 2025 18:33:08 +0200 Subject: [PATCH 66/84] **/README.md: one sentence per line As documented in doc/README.md. --- CONTRIBUTING.md | 124 ++++++----- README.md | 56 ++--- doc/README.md | 31 ++- lib/deprecated/README.md | 3 +- lib/fileset/README.md | 6 +- lib/path/README.md | 59 +++-- maintainers/README.md | 207 +++++++----------- maintainers/scripts/README.md | 19 +- maintainers/scripts/auto-rebase/README.md | 3 +- maintainers/scripts/bootstrap-files/README.md | 66 ++---- nixos/README.md | 15 +- nixos/doc/manual/README.md | 3 +- pkgs/README.md | 162 ++++++++++---- 13 files changed, 392 insertions(+), 362 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3b3e9b4bdb1f..8694c7fe96d5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -125,7 +125,8 @@ This section describes in some detail how changes can be made and proposed with ### Pull request template [pr-template]: #pull-request-template -The pull request template helps determine what steps have been made for a contribution so far, and will help guide maintainers on the status of a change. The motivation section of the PR should include any extra details the title does not address and link any existing issues related to the pull request. +The pull request template helps determine what steps have been made for a contribution so far, and will help guide maintainers on the status of a change. +The motivation section of the PR should include any extra details the title does not address and link any existing issues related to the pull request. When a PR is created, it will be pre-populated with some checkboxes detailed below: @@ -149,15 +150,22 @@ Please enable sandboxing **before** building the package by adding the following #### Built on platform(s) -Many Nix packages are designed to run on multiple platforms. As such, it’s important to let the maintainer know which platforms your changes have been tested on. It’s not always practical to test a change on all platforms, and is not required for a pull request to be merged. Only check the systems you tested the build on in this section. +Many Nix packages are designed to run on multiple platforms. +As such, it’s important to let the maintainer know which platforms your changes have been tested on. +It’s not always practical to test a change on all platforms, and is not required for a pull request to be merged. +Only check the systems you tested the build on in this section. #### Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests) -Packages with automated tests are much more likely to be merged in a timely fashion because it doesn’t require as much manual testing by the maintainer to verify the functionality of the package. If there are existing tests for the package, they should be run to verify your changes do not break the tests. Tests can only be run on Linux. For more details on writing and running tests, see the [section in the NixOS manual](https://nixos.org/nixos/manual/index.html#sec-nixos-tests). +Packages with automated tests are much more likely to be merged in a timely fashion because it doesn’t require as much manual testing by the maintainer to verify the functionality of the package. +If there are existing tests for the package, they should be run to verify your changes do not break the tests. +Tests can only be run on Linux. +For more details on writing and running tests, see the [section in the NixOS manual](https://nixos.org/nixos/manual/index.html#sec-nixos-tests). #### Tested compilation of all pkgs that depend on this change using `nixpkgs-review` -If you are modifying a package, you can use `nixpkgs-review` to make sure all packages that depend on the updated package still compile correctly. The `nixpkgs-review` utility can look for and build all dependencies either based on uncommitted changes with the `wip` option or specifying a GitHub pull request number. +If you are modifying a package, you can use `nixpkgs-review` to make sure all packages that depend on the updated package still compile correctly. +The `nixpkgs-review` utility can look for and build all dependencies either based on uncommitted changes with the `wip` option or specifying a GitHub pull request number. Review changes from pull request number 12345: @@ -185,23 +193,23 @@ nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD" #### Tested execution of all binary files (usually in `./result/bin/`) -It’s important to test any executables generated by a build when you change or create a package in nixpkgs. This can be done by looking in `./result/bin` and running any files in there, or at a minimum, the main executable for the package. For example, if you make a change to texlive, you probably would only check the binaries associated with the change you made rather than testing all of them. +It’s important to test any executables generated by a build when you change or create a package in nixpkgs. +This can be done by looking in `./result/bin` and running any files in there, or at a minimum, the main executable for the package. +For example, if you make a change to texlive, you probably would only check the binaries associated with the change you made rather than testing all of them. #### Meets Nixpkgs contribution standards -The last checkbox is about whether it fits the guidelines in this `CONTRIBUTING.md` file. This document has detailed information on standards the Nix community has for commit messages, reviews, licensing of contributions you make to the project, etc... Everyone should read and understand the standards the community has for contributing before submitting a pull request. +The last checkbox is about whether it fits the guidelines in this `CONTRIBUTING.md` file. +This document has detailed information on standards the Nix community has for commit messages, reviews, licensing of contributions you make to the project, etc... +Everyone should read and understand the standards the community has for contributing before submitting a pull request. ### Rebasing between branches (i.e. from master to staging) [rebase]: #rebasing-between-branches-ie-from-master-to-staging -From time to time, changes between branches must be rebased, for example, if the -number of new rebuilds they would cause is too large for the target branch. +From time to time, changes between branches must be rebased, for example, if the number of new rebuilds they would cause is too large for the target branch. -In the following example, we assume that the current branch, called `feature`, -is based on `master`, and we rebase it onto the merge base between -`master` and `staging` so that the PR can be retargeted to -`staging`. The example uses `upstream` as the remote for `NixOS/nixpkgs.git` -while `origin` is the remote you are pushing to. +In the following example, we assume that the current branch, called `feature`, is based on `master`, and we rebase it onto the merge base between `master` and `staging` so that the PR can be retargeted to `staging`. +The example uses `upstream` as the remote for `NixOS/nixpkgs.git` while `origin` is the remote you are pushing to. ```console @@ -211,14 +219,10 @@ git rebase --onto upstream/staging... upstream/master git push origin feature --force-with-lease ``` -The syntax `upstream/staging...` is equivalent to `upstream/staging...HEAD` and -stands for the merge base between `upstream/staging` and `HEAD` (hence between -`upstream/staging` and `upstream/master`). +The syntax `upstream/staging...` is equivalent to `upstream/staging...HEAD` and stands for the merge base between `upstream/staging` and `HEAD` (hence between `upstream/staging` and `upstream/master`). -Then change the base branch in the GitHub PR using the *Edit* button in the upper -right corner, and switch from `master` to `staging`. *After* the PR has been -retargeted it might be necessary to do a final rebase onto the target branch, to -resolve any outstanding merge conflicts. +Then change the base branch in the GitHub PR using the *Edit* button in the upper right corner, and switch from `master` to `staging`. +*After* the PR has been retargeted it might be necessary to do a final rebase onto the target branch, to resolve any outstanding merge conflicts. ```console # Rebase onto target branch @@ -272,13 +276,19 @@ To manually create a backport pull request, follow [the standard pull request pr > [!Warning] > The following section is a draft, and the policy for reviewing is still being discussed in issues such as [#11166](https://github.com/NixOS/nixpkgs/issues/11166) and [#20836](https://github.com/NixOS/nixpkgs/issues/20836). -The Nixpkgs project receives a fairly high number of contributions via GitHub pull requests. Reviewing and approving these is an important task and a way to contribute to the project. +The Nixpkgs project receives a fairly high number of contributions via GitHub pull requests. +Reviewing and approving these is an important task and a way to contribute to the project. -The high change rate of Nixpkgs makes any pull request that remains open for too long subject to conflicts that will require extra work from the submitter or the merger. Reviewing pull requests in a timely manner and being responsive to the comments is the key to avoid this issue. GitHub provides sort filters that can be used to see the [most recently](https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc) and the [least recently](https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-asc) updated pull requests. We highly encourage looking at [this list of ready to merge, unreviewed pull requests](https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+review%3Anone+status%3Asuccess+-label%3A%222.status%3A+work-in-progress%22+no%3Aproject+no%3Aassignee+no%3Amilestone). +The high change rate of Nixpkgs makes any pull request that remains open for too long subject to conflicts that will require extra work from the submitter or the merger. +Reviewing pull requests in a timely manner and being responsive to the comments is the key to avoid this issue. +GitHub provides sort filters that can be used to see the [most recently](https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-desc) and the [least recently](https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+sort%3Aupdated-asc) updated pull requests. +We highly encourage looking at [this list of ready to merge, unreviewed pull requests](https://github.com/NixOS/nixpkgs/pulls?q=is%3Apr+is%3Aopen+review%3Anone+status%3Asuccess+-label%3A%222.status%3A+work-in-progress%22+no%3Aproject+no%3Aassignee+no%3Amilestone). -When reviewing a pull request, please always be nice and polite. Controversial changes can lead to controversial opinions, but it is important to respect every community member and their work. +When reviewing a pull request, please always be nice and polite. +Controversial changes can lead to controversial opinions, but it is important to respect every community member and their work. -GitHub provides reactions as a simple and quick way to provide feedback to pull requests or any comments. The thumb-down reaction should be used with care and if possible accompanied with some explanation so the submitter has directions to improve their contribution. +GitHub provides reactions as a simple and quick way to provide feedback to pull requests or any comments. +The thumb-down reaction should be used with care and if possible accompanied with some explanation so the submitter has directions to improve their contribution. When doing a review: - Aim to drive the proposal to a timely conclusion. @@ -298,34 +308,36 @@ If the related change is essential for the contribution at hand, make clear why Pull request reviews should include a list of what has been reviewed in a comment, so other reviewers and mergers can know the state of the review. -All the review template samples provided in this section are generic and meant as examples. Their usage is optional and the reviewer is free to adapt them to their liking. +All the review template samples provided in this section are generic and meant as examples. +Their usage is optional and the reviewer is free to adapt them to their liking. To get more information about how to review specific parts of Nixpkgs, refer to the documents linked to in the [overview section][overview]. If a pull request contains documentation changes that might require feedback from the documentation team, ping [@NixOS/documentation-team](https://github.com/orgs/nixos/teams/documentation-team) on the pull request. -If you consider having enough knowledge and experience in a topic and would like to be a long-term reviewer for related submissions, please contact the current reviewers for that topic. They will give you information about the reviewing process. The main reviewers for a topic can be hard to find as there is no list, but checking past pull requests to see who reviewed or git-blaming the code to see who committed to that topic can give some hints. +If you consider having enough knowledge and experience in a topic and would like to be a long-term reviewer for related submissions, please contact the current reviewers for that topic. +They will give you information about the reviewing process. +The main reviewers for a topic can be hard to find as there is no list, but checking past pull requests to see who reviewed or git-blaming the code to see who committed to that topic can give some hints. Container system, boot system and library changes are some examples of the pull requests fitting this category. ## How to merge pull requests yourself [pr-merge]: #how-to-merge-pull-requests -To streamline automated updates, leverage the nixpkgs-merge-bot by simply commenting `@NixOS/nixpkgs-merge-bot merge`. The bot will verify if the following conditions are met, refusing to merge otherwise: +To streamline automated updates, leverage the nixpkgs-merge-bot by simply commenting `@NixOS/nixpkgs-merge-bot merge`. +The bot will verify if the following conditions are met, refusing to merge otherwise: - the PR author should be @r-ryantm or a Nixpkgs committer; - the commenter that issued the command should be among the package maintainers; - the package should reside in `pkgs/by-name`. -Further, nixpkgs-merge-bot will ensure all ofBorg checks (except the Darwin-related ones) are successfully completed before merging the pull request. Should the checks still be underway, the bot patiently waits for ofBorg to finish before attempting the merge again. +Further, nixpkgs-merge-bot will ensure all ofBorg checks (except the Darwin-related ones) are successfully completed before merging the pull request. +Should the checks still be underway, the bot patiently waits for ofBorg to finish before attempting the merge again. For other pull requests, please see [I opened a PR, how do I get it merged?](#i-opened-a-pr-how-do-i-get-it-merged). -In case the PR is stuck waiting for the original author to apply a trivial -change (a typo, capitalisation change, etc.) and the author allowed the members -to modify the PR, consider applying it yourself (or commit the existing review -suggestion). You should pay extra attention to make sure the addition doesn't go -against the idea of the original PR and would not be opposed by the author. +In case the PR is stuck waiting for the original author to apply a trivial change (a typo, capitalisation change, etc.) and the author allowed the members to modify the PR, consider applying it yourself (or commit the existing review suggestion). +You should pay extra attention to make sure the addition doesn't go against the idea of the original PR and would not be opposed by the author. #### Admonitions @@ -326,8 +333,11 @@ Otherwise, just describe the single argument or start the arguments' definition Checklist: - Start with a synopsis, to show the order of positional arguments. -- Metavariables are in emphasized code spans: ``` *`arg1`* ```. Metavariables are placeholders where users may write arbitrary expressions. This includes positional arguments. -- Attribute names are regular code spans: ``` `attr1` ```. These identifiers can _not_ be picked freely by users, so they are _not_ metavariables. +- Metavariables are in emphasized code spans: ``` *`arg1`* ```. + Metavariables are placeholders where users may write arbitrary expressions. + This includes positional arguments. +- Attribute names are regular code spans: ``` `attr1` ```. + These identifiers can _not_ be picked freely by users, so they are _not_ metavariables. - _optional_ attributes have a _`Default:`_ if it's easily described as a value. - _optional_ attributes have a _`Default behavior:`_ if it's not easily described using a value. - Nix types aren't in code spans, because they are not code @@ -404,7 +414,8 @@ This syntax is taken from [CommonMark](https://spec.commonmark.org/0.30/#link-re #### Typographic replacements -Typographic replacements are enabled. Check the [list of possible replacement patterns check](https://github.com/executablebooks/markdown-it-py/blob/3613e8016ecafe21709471ee0032a90a4157c2d1/markdown_it/rules_core/replacements.py#L1-L15). +Typographic replacements are enabled. +Check the [list of possible replacement patterns check](https://github.com/executablebooks/markdown-it-py/blob/3613e8016ecafe21709471ee0032a90a4157c2d1/markdown_it/rules_core/replacements.py#L1-L15). ## Getting help diff --git a/lib/deprecated/README.md b/lib/deprecated/README.md index afeb34d449f5..9591afad0d3f 100644 --- a/lib/deprecated/README.md +++ b/lib/deprecated/README.md @@ -4,8 +4,7 @@ Do not add any new functions to this directory. This directory contains the `lib.misc` sublibrary, which - as a location - is deprecated. -Furthermore, some of the functions inside are of *dubious* utility, and should perhaps be avoided, -while some functions *may still be needed*. +Furthermore, some of the functions inside are of *dubious* utility, and should perhaps be avoided, while some functions *may still be needed*. This directory does not play a role in the deprecation process for library functions. They should be deprecated in place, by putting a `lib.warn` or `lib.warnIf` call around the function. diff --git a/lib/fileset/README.md b/lib/fileset/README.md index 646de07e669a..80e7146992a8 100644 --- a/lib/fileset/README.md +++ b/lib/fileset/README.md @@ -166,7 +166,8 @@ Meanwhile `intersection ./foo ./bar` returns the empty file set without a base p Arguments: - Alternative: Use the common prefix of all base paths as the resulting base path - - (-) This is unnecessarily strict, because the purpose of the base path is to track the directory under which files _could_ be in the file set. It should be as long as possible. + - (-) This is unnecessarily strict, because the purpose of the base path is to track the directory under which files _could_ be in the file set. + It should be as long as possible. All files contained in `intersection ./foo ./foo/bar` will be under `./foo/bar` (never just under `./foo`), and `intersection ./foo ./bar` will never contain any files (never under `./.`). This would lead to `toSource` having to unexpectedly throw errors for cases such as `toSource { root = ./foo; fileset = intersect ./foo base; }`, where `base` may be `./bar` or `./.`. - (-) There is no benefit to the user, since base path is not directly exposed in the interface @@ -263,5 +264,6 @@ Coercing paths that don't exist to file sets always gives an error. - (+) This is dangerous, because you wouldn't be protected against typos anymore. E.g. when trying to prevent `./secret` from being imported, a typo like `difference ./. ./sercet` would import it regardless. - (+) `difference ./. (maybeMissing ./does-not-exist)` can be used to do this more explicitly. - - (+) `difference ./. (difference ./foo ./foo/bar)` should report an error when `./foo/bar` does not exist ("double negation"). Unfortunately, the current internal representation does not lend itself to a behavior where both `difference x ./does-not-exists` and double negation are handled and checked correctly. + - (+) `difference ./. (difference ./foo ./foo/bar)` should report an error when `./foo/bar` does not exist ("double negation"). + Unfortunately, the current internal representation does not lend itself to a behavior where both `difference x ./does-not-exists` and double negation are handled and checked correctly. This could be fixed, but would require significant changes to the internal representation that are not worth the effort and the risk of introducing implicit behavior. diff --git a/lib/path/README.md b/lib/path/README.md index 89eec18b1130..2ebe85637e22 100644 --- a/lib/path/README.md +++ b/lib/path/README.md @@ -2,7 +2,8 @@ This document explains why the `lib.path` library is designed the way it is. -The purpose of this library is to process [filesystem paths]. It does not read files from the filesystem. +The purpose of this library is to process [filesystem paths]. +It does not read files from the filesystem. It exists to support the native Nix [path value type] with extra functionality. [filesystem paths]: https://en.m.wikipedia.org/wiki/Path_(computing) @@ -11,11 +12,15 @@ It exists to support the native Nix [path value type] with extra functionality. As an extension of the path value type, it inherits the same intended use cases and limitations: - Only use paths to access files at evaluation time, such as the local project source. - Paths cannot point to derivations, so they are unfit to represent dependencies. -- A path implicitly imports the referenced files into the Nix store when interpolated to a string. Therefore paths are not suitable to access files at build- or run-time, as you risk importing the path from the evaluation system instead. +- A path implicitly imports the referenced files into the Nix store when interpolated to a string. + Therefore paths are not suitable to access files at build- or run-time, as you risk importing the path from the evaluation system instead. Overall, this library works with two types of paths: -- Absolute paths are represented with the Nix [path value type]. Nix automatically normalises these paths. -- Subpaths are represented with the [string value type] since path value types don't support relative paths. This library normalises these paths as safely as possible. Absolute paths in strings are not supported. +- Absolute paths are represented with the Nix [path value type]. + Nix automatically normalises these paths. +- Subpaths are represented with the [string value type] since path value types don't support relative paths. + This library normalises these paths as safely as possible. + Absolute paths in strings are not supported. A subpath refers to a specific file or directory within an absolute base directory. It is a stricter form of a relative path, notably [without support for `..` components][parents] since those could escape the base directory. @@ -24,7 +29,8 @@ Overall, this library works with two types of paths: This library is designed to be as safe and intuitive as possible, throwing errors when operations are attempted that would produce surprising results, and giving the expected result otherwise. -This library is designed to work well as a dependency for the `lib.filesystem` and `lib.sources` library components. Contrary to these library components, `lib.path` does not read any paths from the filesystem. +This library is designed to work well as a dependency for the `lib.filesystem` and `lib.sources` library components. +Contrary to these library components, `lib.path` does not read any paths from the filesystem. This library makes only these assumptions about paths and no others: - `dirOf path` returns the path to the parent directory of `path`, unless `path` is the filesystem root, in which case `path` is returned. @@ -53,9 +59,15 @@ Decision: Returned subpaths should always have a leading `./`.
Arguments -- (+) In shells, just running `foo` as a command wouldn't execute the file `foo`, whereas `./foo` would execute the file. In contrast, `foo/bar` does execute that file without the need for `./`. This can lead to confusion about when a `./` needs to be prefixed. If a `./` is always included, this becomes a non-issue. This effectively then means that paths don't overlap with command names. +- (+) In shells, just running `foo` as a command wouldn't execute the file `foo`, whereas `./foo` would execute the file. + In contrast, `foo/bar` does execute that file without the need for `./`. + This can lead to confusion about when a `./` needs to be prefixed. + If a `./` is always included, this becomes a non-issue. + This effectively then means that paths don't overlap with command names. - (+) Prepending with `./` makes the subpaths always valid as relative Nix path expressions. -- (+) Using paths in command line arguments could give problems if not escaped properly, e.g. if a path was `--version`. This is not a problem with `./--version`. This effectively then means that paths don't overlap with GNU-style command line options. +- (+) Using paths in command line arguments could give problems if not escaped properly, e.g. if a path was `--version`. + This is not a problem with `./--version`. + This effectively then means that paths don't overlap with GNU-style command line options. - (-) `./` is not required to resolve relative paths, resolution always has an implicit `./` as prefix. - (-) It's less noisy without the `./`, e.g. in error messages. - (+) But similarly, it could be confusing whether something was even a path. @@ -63,7 +75,8 @@ Decision: Returned subpaths should always have a leading `./`. - (+) Makes it more uniform with absolute paths (those always start with `/`). - (-) That is not relevant for practical purposes. - (+) `find` also outputs results with `./`. - - (-) But only if you give it an argument of `.`. If you give it the argument `some-directory`, it won't prefix that. + - (-) But only if you give it an argument of `.`. + If you give it the argument `some-directory`, it won't prefix that. - (-) `realpath --relative-to` doesn't prefix relative paths with `./`. - (+) There is no need to return the same result as `realpath`. @@ -84,7 +97,8 @@ Decision: It should be `./.`. - (+) `./` would be inconsistent with [the decision to not persist trailing slashes][trailing-slashes]. - (-) `.` is how `realpath` normalises paths. - (+) `.` can be interpreted as a shell command (it's a builtin for sourcing files in `bash` and `zsh`). -- (+) `.` would be the only path without a `/`. It could not be used as a Nix path expression, since those require at least one `/` to be parsed as such. +- (+) `.` would be the only path without a `/`. + It could not be used as a Nix path expression, since those require at least one `/` to be parsed as such. - (-) `./.` is rather long. - (-) We don't require users to type this though, as it's only output by the library. As inputs all three variants are supported for subpaths (and we can't do anything about absolute paths) @@ -102,14 +116,16 @@ Observing: Subpaths such as `foo/bar` can be represented in various ways: - list with all the components: `[ "foo" "bar" ]` - attribute set: `{ type = "relative-path"; components = [ "foo" "bar" ]; }` -Considering: Paths should be as safe to use as possible. We should generate string outputs in the library and not encourage users to do that themselves. +Considering: Paths should be as safe to use as possible. +We should generate string outputs in the library and not encourage users to do that themselves. Decision: Paths are represented as strings.
Arguments -- (+) It's simpler for the users of the library. One doesn't have to convert a path a string before it can be used. +- (+) It's simpler for the users of the library. + One doesn't have to convert a path a string before it can be used. - (+) Naively converting the list representation to a string with `concatStringsSep "/"` would break for `[]`, requiring library users to be more careful. - (+) It doesn't encourage people to do their own path processing and instead use the library. With a list representation it would seem easy to just use `lib.lists.init` to get the parent directory, but then it breaks for `.`, which would be represented as `[ ]`. @@ -125,18 +141,22 @@ Observing: Relative paths can have `..` components, which refer to the parent di Considering: Paths should be as safe and unambiguous as possible. -Decision: `..` path components in string paths are not supported, neither as inputs nor as outputs. Hence, string paths are called subpaths, rather than relative paths. +Decision: `..` path components in string paths are not supported, neither as inputs nor as outputs. +Hence, string paths are called subpaths, rather than relative paths.
Arguments - (+) If we wanted relative paths to behave according to the "physical" interpretation (as a directory tree with relations between nodes), it would require resolving symlinks, since e.g. `foo/..` would not be the same as `.` if `foo` is a symlink. - - (-) The "logical" interpretation is also valid (treating paths as a sequence of names), and is used by some software. It is simpler, and not using symlinks at all is safer. + - (-) The "logical" interpretation is also valid (treating paths as a sequence of names), and is used by some software. + It is simpler, and not using symlinks at all is safer. - (+) Mixing both models can lead to surprises. - (+) We can't resolve symlinks without filesystem access. - (+) Nix also doesn't support reading symlinks at evaluation time. - - (-) We could just not handle such cases, e.g. `equals "foo" "foo/bar/.. == false`. The paths are different, we don't need to check whether the paths point to the same thing. - - (+) Assume we said `relativeTo /foo /bar == "../bar"`. If this is used like `/bar/../foo` in the end, and `bar` turns out to be a symlink to somewhere else, this won't be accurate. + - (-) We could just not handle such cases, e.g. `equals "foo" "foo/bar/.. == false`. + The paths are different, we don't need to check whether the paths point to the same thing. + - (+) Assume we said `relativeTo /foo /bar == "../bar"`. + If this is used like `/bar/../foo` in the end, and `bar` turns out to be a symlink to somewhere else, this won't be accurate. - (-) We could decide to not support such ambiguous operations, or mark them as such, e.g. the normal `relativeTo` will error on such a case, but there could be `extendedRelativeTo` supporting that. - (-) `..` are a part of paths, a path library should therefore support it. - (+) If we can convincingly argue that all such use cases are better done e.g. with runtime tools, the library not supporting it can nudge people towards using those. @@ -163,7 +183,8 @@ Decision: All functions remove trailing slashes in their results.
Arguments -- (+) It allows normalisations to be unique, in that there's only a single normalisation for the same path. If trailing slashes were preserved, both `foo/bar` and `foo/bar/` would be valid but different normalisations for the same path. +- (+) It allows normalisations to be unique, in that there's only a single normalisation for the same path. + If trailing slashes were preserved, both `foo/bar` and `foo/bar/` would be valid but different normalisations for the same path. - Comparison to other frameworks to figure out the least surprising behavior: - (+) Nix itself doesn't support trailing slashes when parsing and doesn't preserve them when appending paths. - (-) [Rust's std::path](https://doc.rust-lang.org/std/path/index.html) does preserve them during [construction](https://doc.rust-lang.org/std/path/struct.Path.html#method.new). @@ -192,7 +213,8 @@ Decision: All functions remove trailing slashes in their results. Observing: Functions could return subpaths or lists of path component strings. -Considering: Subpaths are used as inputs for some functions. Using them for outputs, too, makes the library more consistent and composable. +Considering: Subpaths are used as inputs for some functions. +Using them for outputs, too, makes the library more consistent and composable. Decision: Subpaths should be preferred over list of path component strings. @@ -203,7 +225,8 @@ Decision: Subpaths should be preferred over list of path component strings. - (-) It is less efficient when the components are needed, because after creating the normalised subpath string, it will have to be parsed into components again - (+) If necessary, we can still make it faster by adding builtins to Nix - (+) Alternatively if necessary, versions of these functions that return components could later still be introduced. -- (+) It makes the path library simpler because there's only two types (paths and subpaths). Only `lib.path.subpath.components` can be used to get a list of components. +- (+) It makes the path library simpler because there's only two types (paths and subpaths). + Only `lib.path.subpath.components` can be used to get a list of components. And once we have a list of component strings, `lib.lists` and `lib.strings` can be used to operate on them. For completeness, `lib.path.subpath.join` allows converting the list of components back to a subpath.
diff --git a/maintainers/README.md b/maintainers/README.md index ee1762a34536..70687604b611 100644 --- a/maintainers/README.md +++ b/maintainers/README.md @@ -1,71 +1,56 @@ # Nixpkgs Maintainers -Unlike other packaging ecosystems, the maintainer doesn't have exclusive -control over the packages and modules they maintain. This more fluid approach -is one reason why we scale to so many packages. +Unlike other packaging ecosystems, the maintainer doesn't have exclusive control over the packages and modules they maintain. +This more fluid approach is one reason why we scale to so many packages. ## Definition and role of the maintainer -The main responsibility of a maintainer is to keep the packages they maintain -in a functioning state, and keep up with updates. In order to do that, they -are empowered to make decisions over the packages they maintain. +The main responsibility of a maintainer is to keep the packages they maintain in a functioning state, and keep up with updates. +In order to do that, they are empowered to make decisions over the packages they maintain. -That being said, the maintainer is not alone proposing changes to the -packages. Anybody (both bots and humans) can send PRs to bump or tweak the -package. +That being said, the maintainer is not alone proposing changes to the packages. +Anybody (both bots and humans) can send PRs to bump or tweak the package. -We also allow other non-maintainer committers to merge changes to the package, -provided enough time and priority has been given to the maintainer. +We also allow other non-maintainer committers to merge changes to the package, provided enough time and priority has been given to the maintainer. -For most packages, we expect committers to wait at least a week before merging -changes not endorsed by a package maintainer (which may be themselves). This should leave enough time -for the maintainers to provide feedback. +For most packages, we expect committers to wait at least a week before merging changes not endorsed by a package maintainer (which may be themselves). +This should leave enough time for the maintainers to provide feedback. -For critical packages, this convention needs to be negotiated with the -maintainer. A critical package is one that causes mass-rebuild, or where an -author is listed in the [`OWNERS`](../ci/OWNERS) file. +For critical packages, this convention needs to be negotiated with the maintainer. +A critical package is one that causes mass-rebuild, or where an author is listed in the [`OWNERS`](../ci/OWNERS) file. -In case of critical security updates, the [security team](https://nixos.org/community/teams/security) might override these -heuristics in order to get the fixes in as fast as possible. +In case of critical security updates, the [security team](https://nixos.org/community/teams/security) might override these heuristics in order to get the fixes in as fast as possible. -In case of conflict, the maintainer takes priority and is allowed to revert -the changes. This can happen for example if the maintainer was on holiday. +In case of conflict, the maintainer takes priority and is allowed to revert the changes. +This can happen for example if the maintainer was on holiday. ### How to become a maintainer -We encourage people who care about a package to assign themselves as a -maintainer. Commit access to the Nixpkgs repository is not required for that. +We encourage people who care about a package to assign themselves as a maintainer. +Commit access to the Nixpkgs repository is not required for that. -In order to do so, add yourself to the -[`maintainer-list.nix`](./maintainer-list.nix), and then to the desired -package's `meta.maintainers` list, and send a PR with the changes. +In order to do so, add yourself to the [`maintainer-list.nix`](./maintainer-list.nix), and then to the desired package's `meta.maintainers` list, and send a PR with the changes. -If you're adding yourself as a maintainer as part of another PR (in which -you become a maintainer of a package, for example), make your change to +If you're adding yourself as a maintainer as part of another PR (in which you become a maintainer of a package, for example), make your change to `maintainer-list.nix` in a separate commit titled `maintainers: add `. ### How to lose maintainer status -Maintainers who have become inactive on a given package can be removed. This -helps us keep an accurate view of the state of maintenance in Nixpkgs. +Maintainers who have become inactive on a given package can be removed. +This helps us keep an accurate view of the state of maintenance in Nixpkgs. -The inactivity measure is currently not strictly enforced. We would typically -look at it if we notice that the author hasn't reacted to package-related -notifications for more than 3 months. +The inactivity measure is currently not strictly enforced. +We would typically look at it if we notice that the author hasn't reacted to package-related notifications for more than 3 months. -Removing the maintainer happens by making a PR on the package, adding that -person as a reviewer, and then waiting a week for a reaction. +Removing the maintainer happens by making a PR on the package, adding that person as a reviewer, and then waiting a week for a reaction. The maintainer is welcome to come back at any time. ## Tools for maintainers -When a pull request is made against a package, nixpkgs CI will notify the appropriate -maintainer(s) by trying to correlate the files the PR touches with the packages that need rebuilding. +When a pull request is made against a package, nixpkgs CI will notify the appropriate maintainer(s) by trying to correlate the files the PR touches with the packages that need rebuilding. -Maintainers can also invoke the [nixpkgs-merge-bot](https://github.com/nixos/nixpkgs-merge-bot) -to merge pull requests targeting packages they are the maintainer of, which satisfy the current -security [constraints](https://github.com/NixOS/nixpkgs-merge-bot/blob/main/README.md#constraints). +Maintainers can also invoke the [nixpkgs-merge-bot](https://github.com/nixos/nixpkgs-merge-bot) to merge pull requests targeting packages they are the maintainer of, which satisfy the current security [constraints](https://github.com/NixOS/nixpkgs-merge-bot/blob/main/README.md#constraints). Examples: [#397273](https://github.com/NixOS/nixpkgs/pull/397273#issuecomment-2789382120) and [#377027](https://github.com/NixOS/nixpkgs/pull/377027#issuecomment-2614510869) New maintainers will automatically get invited to join the [NixOS/nixpkgs-maintainers](https://github.com/orgs/NixOS/teams/nixpkgs-maintainers) GitHub team. @@ -77,33 +62,26 @@ Should it expire, please ask for a re-invite in the [GitHub org owners help desk [zh.fail](https://zh.fail/failed/overview.html) tracks all package build failures on `master` grouped by maintainer. -[asymmetric/nixpkgs-update-notifier](https://github.com/asymmetric/nixpkgs-update-notifier) is a matrix -bot that scrapes the [nixpkgs-update logs](https://nixpkgs-update-logs.nix-community.org/) and notifies -you if nixpkgs-update/@r-ryantm fails to update any of the packages you've subscribed to. +[asymmetric/nixpkgs-update-notifier](https://github.com/asymmetric/nixpkgs-update-notifier) is a matrix bot that scrapes the [nixpkgs-update logs](https://nixpkgs-update-logs.nix-community.org/) and notifies you if nixpkgs-update/@r-ryantm fails to update any of the packages you've subscribed to. [repology.org](https://repology.org) tracks and compares the versions of packages between various package repositories, letting you know what packages may be out of date or insecure. -You can view which packages a specific maintainer maintains and subscribe to updates with atom/rss. Example: [repology.org/maintainer/pbsds](https://repology.org/maintainer/pbsds%40hotmail.com). +You can view which packages a specific maintainer maintains and subscribe to updates with atom/rss. +Example: [repology.org/maintainer/pbsds](https://repology.org/maintainer/pbsds%40hotmail.com). -[nixpk.gs/pr-tracker](https://nixpk.gs/pr-tracker.html) and [nixpkgs-tracker.ocfox.me](https://nixpkgs-tracker.ocfox.me/) -can visualize the release status of any nixpkgs pull request. +[nixpk.gs/pr-tracker](https://nixpk.gs/pr-tracker.html) and [nixpkgs-tracker.ocfox.me](https://nixpkgs-tracker.ocfox.me/) can visualize the release status of any nixpkgs pull request. ## Reviewing contributions ### Individual maintainer list -When adding users to [`maintainer-list.nix`](./maintainer-list.nix), the following -checks should be performed: +When adding users to [`maintainer-list.nix`](./maintainer-list.nix), the following checks should be performed: -- If the user has specified a GPG key, verify that the commit is - signed by their key. +- If the user has specified a GPG key, verify that the commit is signed by their key. - First, validate that the commit adding the maintainer is signed by - the key the maintainer listed. Check out the pull request and - compare its signing key with the listed key in the commit. + First, validate that the commit adding the maintainer is signed by the key the maintainer listed. + Check out the pull request and compare its signing key with the listed key in the commit. - If the commit is not signed or it is signed by a different user, ask - them to either recommit using that key or to remove their key - information. + If the commit is not signed or it is signed by a different user, ask them to either recommit using that key or to remove their key information. Given a maintainer entry like this: @@ -138,19 +116,14 @@ checks should be performed: maintainers: adding example - and validate that there is a `Good signature` and the printed key - matches the user's submitted key. + and validate that there is a `Good signature` and the printed key matches the user's submitted key. - Note: GitHub's "Verified" label does not display the user's full key - fingerprint, and should not be used for validating the key matches. + Note: GitHub's "Verified" label does not display the user's full key fingerprint, and should not be used for validating the key matches. -- If the user has specified a `github` account name, ensure they have - also specified a `githubId` and verify the two match. +- If the user has specified a `github` account name, ensure they have also specified a `githubId` and verify the two match. - Maintainer entries that include a `github` field must also include - their `githubId`. People can and do change their GitHub name - frequently, and the ID is used as the official and stable identity - of the maintainer. + Maintainer entries that include a `github` field must also include their `githubId`. + People can and do change their GitHub name frequently, and the ID is used as the official and stable identity of the maintainer. Given a maintainer entry like this: @@ -165,92 +138,68 @@ checks should be performed: } ``` - First, make sure that the listed GitHub handle matches the author of - the commit. + First, make sure that the listed GitHub handle matches the author of the commit. - Then, visit the URL `https://api.github.com/users/ghost` and - validate that the `id` field matches the provided `githubId`. + Then, visit the URL `https://api.github.com/users/ghost` and validate that the `id` field matches the provided `githubId`. ### Maintainer teams -Feel free to create a new maintainer team in [`team-list.nix`](./team-list.nix) -when a group is collectively responsible for a collection of packages. +Feel free to create a new maintainer team in [`team-list.nix`](./team-list.nix) when a group is collectively responsible for a collection of packages. Use taste and personal judgement when deciding if a team is warranted. Teams are allowed to define their own rules about membership. -For example, some teams will represent a business or other group which -wants to carefully track its members. Other teams may be very open about -who can join, and allow anybody to participate. +For example, some teams will represent a business or other group which wants to carefully track its members. +Other teams may be very open about who can join, and allow anybody to participate. -When reviewing changes to a team, read the team's scope and the context -around the member list for indications about the team's membership -policy. +When reviewing changes to a team, read the team's scope and the context around the member list for indications about the team's membership policy. -In any case, request reviews from the existing team members. If the team -lists no specific membership policy, feel free to merge changes to the -team after giving the existing members a few days to respond. +In any case, request reviews from the existing team members. +If the team lists no specific membership policy, feel free to merge changes to the team after giving the existing members a few days to respond. -*Important:* If a team says it is a closed group, do not merge additions -to the team without an approval by at least one existing member. +*Important:* If a team says it is a closed group, do not merge additions to the team without an approval by at least one existing member. # Maintainer scripts -Various utility scripts, which are mainly useful for nixpkgs maintainers, -are available under `./scripts/`. See its [README](./scripts/README.md) -for further information. +Various utility scripts, which are mainly useful for nixpkgs maintainers, are available under `./scripts/`. +See its [README](./scripts/README.md) for further information. # nixpkgs-merge-bot -To streamline autoupdates, leverage the nixpkgs-merge-bot by commenting `@NixOS/nixpkgs-merge-bot merge` if the package resides in pkgs-by-name, the commenter is among the package maintainers, and the pull request author is @r-ryantm or a Nixpkgs committer. The bot ensures that all ofborg checks, except for darwin, are successfully completed before merging the pull request. Should the checks still be underway, the bot patiently waits for ofborg to finish before attempting the merge again. + +To streamline autoupdates, leverage the nixpkgs-merge-bot by commenting `@NixOS/nixpkgs-merge-bot merge` if the package resides in pkgs-by-name, the commenter is among the package maintainers, and the pull request author is @r-ryantm or a Nixpkgs committer. +The bot ensures that all ofborg checks, except for darwin, are successfully completed before merging the pull request. +Should the checks still be underway, the bot patiently waits for ofborg to finish before attempting the merge again. # Guidelines for Committers -When merging pull requests, care must be taken to reduce impact to the `master` -branch. If a commit breaks evaluation, it will affect Ofborg evaluation results -in other pull requests and block Hydra CI, thus introducing chaos to our -workflow. +When merging pull requests, care must be taken to reduce impact to the `master` branch. +If a commit breaks evaluation, it will affect Ofborg evaluation results in other pull requests and block Hydra CI, thus introducing chaos to our workflow. -One approach to avoid merging such problematic changes is to wait for -successful Ofborg evaluation. Additionally, using tools like -[nixpkgs-review](https://github.com/Mic92/nixpkgs-review) can help spot issues -early, before Ofborg finishes evaluation. +One approach to avoid merging such problematic changes is to wait for successful Ofborg evaluation. +Additionally, using tools like [nixpkgs-review](https://github.com/Mic92/nixpkgs-review) can help spot issues early, before Ofborg finishes evaluation. ## Breaking changes -In general breaking changes to `master` and `staging` branches are permitted, -as long as they are documented in the release notes. Though restrictions might -apply towards the end of a NixOS release cycle, due to our feature freeze -mechanism. This is to avoid large-scale breakages shortly before and during -a Zero Hydra Failures (ZHF) campaign. These restrictions also intend to -decrease the likelihood of a delayed NixOS release. The feature freeze period -is documented in the announcement of each release schedule. +In general breaking changes to `master` and `staging` branches are permitted, as long as they are documented in the release notes. +Though restrictions might apply towards the end of a NixOS release cycle, due to our feature freeze mechanism. +This is to avoid large-scale breakages shortly before and during a Zero Hydra Failures (ZHF) campaign. +These restrictions also intend to decrease the likelihood of a delayed NixOS release. +The feature freeze period is documented in the announcement of each release schedule. -> These are some example changes and if they are considered a breaking change -> during a freeze period: +> These are some example changes and if they are considered a breaking change during a freeze period: > -> - `foo: 1.2.3 -> 1.2.4` - Assuming this package follows semantic versioning -> and none of its dependent packages fail to build because of this change, it -> can be safely merged. Otherwise, if it can be confirmed that there is no -> major change in its functionality or API, but only adding new features or -> fixing bugs, it -> can also be merged. -> - `unmaintained-software: drop` - If this PR removes a leaf package or the -> removal doesn't otherwise break other packages, it can be merged. -> - `cool-tool: rename from fancy-tool` - As long as this PR replaces all -> references to the old attribute name with the new name and adds an alias, -> it can be merged. -> - `libpopular: 4.3.2 -> 5.0.0` - If this PR would trigger many rebuilds -> and/or target `staging`, it should probably be delayed until after the -> freeze-period is over. Alternatively, if this PR is for a popular package -> and doesn't cause many rebuilds, it should also be delayed to reduce risk -> of breakage. If a PR includes important changes, such as security fixes, it -> should be brought up to -> release managers. -> - `nixos/transmission: refactor` - If this PR adjusts the type, default value -> or effect of options in the NixOS module, so that users must rewrite their -> configuration to keep the current behavior unchanged, it should not be -> merged, as we don't have enough time to collect user feedback and avoid -> possible breakage. However, it should be accepted if the current behavior -> is -> considered broken and is fixed by the PR. +> - `foo: 1.2.3 -> 1.2.4`: +> Assuming this package follows semantic versioning and none of its dependent packages fail to build because of this change, it can be safely merged. +> Otherwise, if it can be confirmed that there is no major change in its functionality or API, but only adding new features or fixing bugs, it can also be merged. +> - `unmaintained-software: drop`: +> If this PR removes a leaf package or the removal doesn't otherwise break other packages, it can be merged. +> - `cool-tool: rename from fancy-tool`: +> As long as this PR replaces all references to the old attribute name with the new name and adds an alias, it can be merged. +> - `libpopular: 4.3.2 -> 5.0.0`: +> If this PR would trigger many rebuilds and/or target `staging`, it should probably be delayed until after the freeze-period is over. +> Alternatively, if this PR is for a popular package and doesn't cause many rebuilds, it should also be delayed to reduce risk of breakage. +> If a PR includes important changes, such as security fixes, it should be brought up to release managers. +> - `nixos/transmission: refactor`: +> If this PR adjusts the type, default value or effect of options in the NixOS module, so that users must rewrite their configuration to keep the current behavior unchanged, it should not be merged, as we don't have enough time to collect user feedback and avoid possible breakage. +> However, it should be accepted if the current behavior is considered broken and is fixed by the PR. diff --git a/maintainers/scripts/README.md b/maintainers/scripts/README.md index a80942bb7343..81b2873788a4 100644 --- a/maintainers/scripts/README.md +++ b/maintainers/scripts/README.md @@ -1,21 +1,17 @@ # Maintainer scripts -This folder contains various executable scripts for nixpkgs maintainers, -and supporting data or nixlang files as needed. +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; }`. +`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 +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`. ``` @@ -52,16 +48,14 @@ robustly than text search through `maintainer-list.nix`. 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. + attributes of the maintainer's object, matched exactly; see [`maintainer-list.nix`] for the fields' definition. [`maintainer-list.nix`]: ../maintainer-list.nix ### `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. +Outputs a JSON object on stdout mapping GitHub usernames to the attributes that they would be getting pinged for. Example: @@ -73,8 +67,7 @@ maintainers/scripts/get-maintainer-pings-between.sh HEAD^ HEAD ### `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}"`. +`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. diff --git a/maintainers/scripts/auto-rebase/README.md b/maintainers/scripts/auto-rebase/README.md index 926aa6c99d9f..e9c61da05c93 100644 --- a/maintainers/scripts/auto-rebase/README.md +++ b/maintainers/scripts/auto-rebase/README.md @@ -1,7 +1,6 @@ # Auto rebase script -The [`./run.sh` script](./run.sh) in this directory rebases the current branch onto a target branch, -while automatically resolving merge conflicts caused by marked commits in [`.git-blame-ignore-revs`](../../../.git-blame-ignore-revs). +The [`./run.sh` script](./run.sh) in this directory rebases the current branch onto a target branch, while automatically resolving merge conflicts caused by marked commits in [`.git-blame-ignore-revs`](../../../.git-blame-ignore-revs). See the header comment of that file to understand how to mark commits. This is convenient for resolving merge conflicts for pull requests after e.g. treewide reformats. diff --git a/maintainers/scripts/bootstrap-files/README.md b/maintainers/scripts/bootstrap-files/README.md index 4bd7d8c58937..af8181c2c3ac 100644 --- a/maintainers/scripts/bootstrap-files/README.md +++ b/maintainers/scripts/bootstrap-files/README.md @@ -1,30 +1,23 @@ # Bootstrap files -Currently `nixpkgs` builds most of it's packages using bootstrap seed -binaries (without the reliance on external inputs): +Currently `nixpkgs` builds most of it's packages using bootstrap seed binaries (without the reliance on external inputs): -- `bootstrap-tools`: an archive with the compiler toolchain and other - helper tools enough to build the rest of the `nixpkgs`. -- initial binaries needed to unpack `bootstrap-tools.*`. On `linux` - it's just `busybox`, on `darwin` and `freebsd` it is unpack.nar.xz - which contains the binaries and script needed to unpack the tools. +- `bootstrap-tools`: an archive with the compiler toolchain and other helper tools enough to build the rest of the `nixpkgs`. +- initial binaries needed to unpack `bootstrap-tools.*`. + On `linux` it's just `busybox`, on `darwin` and `freebsd` it is unpack.nar.xz which contains the binaries and script needed to unpack the tools. These binaries can be executed directly from the store. These are called "bootstrap files". -Bootstrap files should always be fetched from hydra and uploaded to -`tarballs.nixos.org` to guarantee that all the binaries were built from -the code committed into `nixpkgs` repository. +Bootstrap files should always be fetched from hydra and uploaded to `tarballs.nixos.org` to guarantee that all the binaries were built from the code committed into `nixpkgs` repository. The uploads to `tarballs.nixos.org` are done by `@lovesegfault` today. -This document describes the procedure of updating bootstrap files in -`nixpkgs`. +This document describes the procedure of updating bootstrap files in `nixpkgs`. ## How to request the bootstrap seed update -To get the tarballs updated let's use an example `i686-unknown-linux-gnu` -target: +To get the tarballs updated let's use an example `i686-unknown-linux-gnu` target: 1. Create a local update: @@ -32,61 +25,51 @@ target: $ maintainers/scripts/bootstrap-files/refresh-tarballs.bash --commit --targets=i686-unknown-linux-gnu ``` -2. Test the update locally. I'll build local `hello` derivation with - the result: +2. Test the update locally. I'll build local `hello` derivation with the result: ``` $ nix-build -A hello --argstr system i686-linux ``` To validate cross-targets `binfmt` `NixOS` helper can be useful. - For `riscv64-unknown-linux-gnu` the `/etc/nixos/configuration.nix` - entry would be `boot.binfmt.emulatedSystems = [ "riscv64-linux" ]`. + For `riscv64-unknown-linux-gnu` the `/etc/nixos/configuration.nix` entry would be `boot.binfmt.emulatedSystems = [ "riscv64-linux" ]`. -3. Propose the commit as a PR to update bootstrap tarballs, tag people - who can help you test the updated architecture and once reviewed tag - `@lovesegfault` to upload the tarballs. +3. Propose the commit as a PR to update bootstrap tarballs, tag people who can help you test the updated architecture and once reviewed tag `@lovesegfault` to upload the tarballs. ## How to add bootstrap files for a new target -The procedure to add a new target is very similar to the update -procedure. The only difference is that you need to set up a new job to -build the `bootstrapFiles`. To do that you will need the following: +The procedure to add a new target is very similar to the update procedure. +The only difference is that you need to set up a new job to build the `bootstrapFiles`. +To do that you will need the following: 1. Add your new target to `lib/systems/examples.nix` - This will populate `pkgsCross.$target` attribute set. If you are - dealing with `bootstrapFiles` upload you probably already have it. + This will populate `pkgsCross.$target` attribute set. + If you are dealing with `bootstrapFiles` upload you probably already have it. -2. Add your new target to - `pkgs/stdenv/linux/make-bootstrap-tools-cross.nix`. This will add a - new hydra job to `nixpkgs:cross-trunk` jobset. +2. Add your new target to `pkgs/stdenv/linux/make-bootstrap-tools-cross.nix`. + This will add a new hydra job to `nixpkgs:cross-trunk` jobset. 3. Wait for a hydra to build your bootstrap tarballs. -4. Add your new target to - `maintainers/scripts/bootstrap-files/refresh-tarballs.bash` around - `CROSS_TARGETS=()`. +4. Add your new target to `maintainers/scripts/bootstrap-files/refresh-tarballs.bash` around `CROSS_TARGETS=()`. -5. Add your new target to `pkgs/stdenv/linux/default.nix` and follow - standard bootstrap seed update procedure above. +5. Add your new target to `pkgs/stdenv/linux/default.nix` and follow standard bootstrap seed update procedure above. ## Bootstrap files job definitions There are two types of bootstrap files: -- natively built `stdenvBootstrapTools.build` hydra jobs in - [`nixpkgs:trunk`](https://hydra.nixos.org/jobset/nixpkgs/trunk#tabs-jobs) - jobset. Incomplete list of examples is: +- natively built `stdenvBootstrapTools.build` hydra jobs in [`nixpkgs:trunk`](https://hydra.nixos.org/jobset/nixpkgs/trunk#tabs-jobs) jobset. + Incomplete list of examples is: * `aarch64-unknown-linux-musl.nix` * `i686-unknown-linux-gnu.nix` These are Tier 1 hydra platforms. -- cross-built by `bootstrapTools.build` hydra jobs in - [`nixpkgs:cross-trunk`](https://hydra.nixos.org/jobset/nixpkgs/cross-trunk#tabs-jobs) - jobset. Incomplete list of examples is: +- cross-built by `bootstrapTools.build` hydra jobs in [`nixpkgs:cross-trunk`](https://hydra.nixos.org/jobset/nixpkgs/cross-trunk#tabs-jobs) jobset. + Incomplete list of examples is: * `mips64el-unknown-linux-gnuabi64.nix` * `mips64el-unknown-linux-gnuabin32.nix` @@ -96,6 +79,5 @@ There are two types of bootstrap files: These are usually Tier 2 and lower targets. -The `.build` job contains `/on-server/` subdirectory with binaries to -be uploaded to `tarballs.nixos.org`. +The `.build` job contains `/on-server/` subdirectory with binaries to be uploaded to `tarballs.nixos.org`. The files are uploaded to `tarballs.nixos.org` by writers to `S3` store. diff --git a/nixos/README.md b/nixos/README.md index 8e6d44410ef3..65bcafabe913 100644 --- a/nixos/README.md +++ b/nixos/README.md @@ -1,12 +1,12 @@ # NixOS -NixOS is a Linux distribution based on the purely functional package -management system Nix. More information can be found at -https://nixos.org/nixos and in the manual in doc/manual. +NixOS is a Linux distribution based on the purely functional package management system Nix. +More information can be found at https://nixos.org/nixos and in the manual in doc/manual. ## Testing changes -You can add new module to your NixOS configuration file (usually it’s `/etc/nixos/configuration.nix`). And do `sudo nixos-rebuild test -I nixpkgs= --fast`. +You can add new module to your NixOS configuration file (usually it’s `/etc/nixos/configuration.nix`). +And do `sudo nixos-rebuild test -I nixpkgs= --fast`. ## Commit conventions @@ -31,11 +31,14 @@ You can add new module to your NixOS configuration file (usually it’s `/etc/ni ## Reviewing contributions -When changing the bootloader installation process, extra care must be taken. Grub installations cannot be rolled back, hence changes may break people’s installations forever. For any non-trivial change to the bootloader please file a PR asking for review, especially from \@edolstra. +When changing the bootloader installation process, extra care must be taken. +Grub installations cannot be rolled back, hence changes may break people’s installations forever. +For any non-trivial change to the bootloader please file a PR asking for review, especially from \@edolstra. ### Module updates -Module updates are submissions changing modules in some ways. These often contains changes to the options or introduce new options. +Module updates are submissions changing modules in some ways. +These often contains changes to the options or introduce new options. Reviewing process: diff --git a/nixos/doc/manual/README.md b/nixos/doc/manual/README.md index bc649761df69..a7e15353eec5 100644 --- a/nixos/doc/manual/README.md +++ b/nixos/doc/manual/README.md @@ -1,3 +1,4 @@ -[Moved to ./contributing-to-this-manual.chapter.md](./contributing-to-this-manual.chapter.md). Link: +[Moved to ./contributing-to-this-manual.chapter.md](./contributing-to-this-manual.chapter.md). +Link: https://nixos.org/manual/nixos/unstable/#chap-contributing diff --git a/pkgs/README.md b/pkgs/README.md index ee98b2e7de35..83d264d95085 100644 --- a/pkgs/README.md +++ b/pkgs/README.md @@ -24,26 +24,40 @@ See the [CONTRIBUTING.md](../CONTRIBUTING.md) document for more general informat ## Quick Start to Adding a Package -We welcome new contributors of new packages to Nixpkgs, arguably the greatest software database known. However, each new package comes with a cost for the maintainers, Continuous Integration, caching servers and users downloading Nixpkgs. +We welcome new contributors of new packages to Nixpkgs, arguably the greatest software database known. +However, each new package comes with a cost for the maintainers, Continuous Integration, caching servers and users downloading Nixpkgs. Before adding a new package, please consider the following questions: -* Is the package ready for general use? We don't want to include projects that are too immature or are going to be abandoned immediately. In case of doubt, check with upstream. -* Does the project have a clear license statement? Remember that software is unfree by default (all rights reserved), and merely providing access to the source code does not imply its redistribution. In case of doubt, ask upstream. -* How realistic is it that it will be used by other people? It's good that nixpkgs caters to various niches, but if it's a niche of 5 people it's probably too small. A good estimate is checking upstream issues and pull requests, or other software repositories. Library packages should have at least one dependent. -* Is the software actively maintained upstream? Especially packages that are security-critical, rely on fast-moving dependencies, or affect data integrity should see regular maintenance. -* Are you willing to maintain the package? You should care enough about the package to be willing to keep it up and running for at least one complete Nixpkgs' release life-cycle. +* Is the package ready for general use? + We don't want to include projects that are too immature or are going to be abandoned immediately. + In case of doubt, check with upstream. +* Does the project have a clear license statement? + Remember that software is unfree by default (all rights reserved), and merely providing access to the source code does not imply its redistribution. + In case of doubt, ask upstream. +* How realistic is it that it will be used by other people? + It's good that nixpkgs caters to various niches, but if it's a niche of 5 people it's probably too small. + A good estimate is checking upstream issues and pull requests, or other software repositories. + Library packages should have at least one dependent. +* Is the software actively maintained upstream? + Especially packages that are security-critical, rely on fast-moving dependencies, or affect data integrity should see regular maintenance. +* Are you willing to maintain the package? + You should care enough about the package to be willing to keep it up and running for at least one complete Nixpkgs' release life-cycle. * In case you are not able to maintain the package you wrote, you can seek someone to fill that role, effectively adopting the package. If any of these questions' answer is no, then you should probably not add the package. -Special care has to be taken with security-critical software components. Because entries in the Nix store are inert and do nothing by themselves, packages should be considered by their intended use, e.g. when used together with a NixOS module. +Special care has to be taken with security-critical software components. +Because entries in the Nix store are inert and do nothing by themselves, packages should be considered by their intended use, e.g. when used together with a NixOS module. * Any package that immediately would need to be tagged with `meta.knownVulnerabilities` is unlikely to be fit for nixpkgs. * Any package depending on a known-vulnerable library should be considered carefully. -* Packages typically used with untrusted data should have a maintained and responsible upstream. For example: - * Any package which does not follow upstream security policies should be considered vulnerable. In particular, packages that vendor or fork web engines like Blink, Gecko or Webkit need to keep up with the frequent updates of those projects. - * Any security-critical fast-moving package such as Chrome or Firefox (or their forks) must have at least one active committer among the maintainers. This ensures no critical fixes are delayed unnecessarily, endangering unsuspecting users. +* Packages typically used with untrusted data should have a maintained and responsible upstream. + For example: + * Any package which does not follow upstream security policies should be considered vulnerable. + In particular, packages that vendor or fork web engines like Blink, Gecko or Webkit need to keep up with the frequent updates of those projects. + * Any security-critical fast-moving package such as Chrome or Firefox (or their forks) must have at least one active committer among the maintainers. + This ensures no critical fixes are delayed unnecessarily, endangering unsuspecting users. * Services which typically work on web traffic are working on untrusted input. * Data (such as archives or rich documents) commonly shared over untrusted channels (e.g. email) is untrusted. * Applications in the Unix authentication stack such as PAM/D-Bus modules or SUID binaries should be considered carefully, and should have a maintained and responsible upstream. @@ -54,7 +68,8 @@ Special care has to be taken with security-critical software components. Because * being responsive to security concerns, providing fixes or workarounds * transparent public disclosure of security issues when they are found or fixed * These aspects are sometimes hard to verify, in which case an upstream that is not known to be irresponsible should be considered as responsible. -* Source-available software should be built from source where possible. Binary blobs risk supply chain attacks and vendored outdated libraries. +* Source-available software should be built from source where possible. + Binary blobs risk supply chain attacks and vendored outdated libraries. This section describes a general framework of understanding and exceptions might apply. @@ -62,7 +77,8 @@ Luckily it's pretty easy to maintain your own package set with Nix, which can th --- -Now that this is out of the way. To add a package to Nixpkgs: +Now that this is out of the way. +To add a package to Nixpkgs: 1. Checkout the Nixpkgs source tree: @@ -79,7 +95,8 @@ Now that this is out of the way. To add a package to Nixpkgs: For more detailed information, see [here](./by-name/README.md). -3. Create a `package.nix` file in the package directory, containing a Nix expression — a piece of code that describes how to build the package. In this case, it should be a _function_ that is called with the package dependencies as arguments, and returns a build of the package in the Nix store. +3. Create a `package.nix` file in the package directory, containing a Nix expression — a piece of code that describes how to build the package. + In this case, it should be a _function_ that is called with the package dependencies as arguments, and returns a build of the package in the Nix store. ```ShellSession $ emacs pkgs/by-name/so/some-package/package.nix @@ -91,23 +108,35 @@ Now that this is out of the way. To add a package to Nixpkgs: You can have a look at the existing Nix expressions under `pkgs/` to see how it’s done, some of which are also using the [category hierarchy](#category-hierarchy). Here are some good ones: - - GNU Hello: [`pkgs/by-name/he/hello/package.nix`](./by-name/he/hello/package.nix). Trivial package, which specifies some `meta` attributes which is good practice. + - GNU Hello: [`pkgs/by-name/he/hello/package.nix`](./by-name/he/hello/package.nix). + Trivial package, which specifies some `meta` attributes which is good practice. - - GNU cpio: [`pkgs/by-name/cp/cpio/package.nix`](./by-name/cp/cpio/package.nix). Also a simple package. The generic builder in `stdenv` does everything for you. It has no dependencies beyond `stdenv`. + - GNU cpio: [`pkgs/by-name/cp/cpio/package.nix`](./by-name/cp/cpio/package.nix). + Also a simple package. + The generic builder in `stdenv` does everything for you. + It has no dependencies beyond `stdenv`. - - GNU Multiple Precision arithmetic library (GMP): [`pkgs/development/libraries/gmp`](development/libraries/gmp). Also done by the generic builder, but has a dependency on `m4`. + - GNU Multiple Precision arithmetic library (GMP): [`pkgs/development/libraries/gmp`](development/libraries/gmp). + Also done by the generic builder, but has a dependency on `m4`. - - Pan, a GTK-based newsreader: [`pkgs/by-name/pa/pan/package.nix`](./by-name/pa/pan/package.nix). Has an optional dependency on `gspell`, which is only built if `spellCheck` is `true`. + - Pan, a GTK-based newsreader: [`pkgs/by-name/pa/pan/package.nix`](./by-name/pa/pan/package.nix). + Has an optional dependency on `gspell`, which is only built if `spellCheck` is `true`. - - Apache HTTPD: [`pkgs/servers/http/apache-httpd/2.4.nix`](servers/http/apache-httpd/2.4.nix). A bunch of optional features, variable substitutions in the configure flags, a post-install hook, and miscellaneous hackery. + - Apache HTTPD: [`pkgs/servers/http/apache-httpd/2.4.nix`](servers/http/apache-httpd/2.4.nix). + A bunch of optional features, variable substitutions in the configure flags, a post-install hook, and miscellaneous hackery. - - buildMozillaMach: [`pkgs/applications/networking/browser/firefox/common.nix`](applications/networking/browsers/firefox/common.nix). A reusable build function for Firefox, Thunderbird and Librewolf. + - buildMozillaMach: [`pkgs/applications/networking/browser/firefox/common.nix`](applications/networking/browsers/firefox/common.nix). + A reusable build function for Firefox, Thunderbird and Librewolf. - - JDiskReport, a Java utility: [`pkgs/by-name/jd/jdiskreport/package.nix`](./by-name/jd/jdiskreport/package.nix). Nixpkgs doesn’t have a decent `stdenv` for Java yet so this is pretty ad-hoc. + - JDiskReport, a Java utility: [`pkgs/by-name/jd/jdiskreport/package.nix`](./by-name/jd/jdiskreport/package.nix). + Nixpkgs doesn’t have a decent `stdenv` for Java yet so this is pretty ad-hoc. - - XML::Simple, a Perl module: [`pkgs/top-level/perl-packages.nix`](top-level/perl-packages.nix) (search for the `XMLSimple` attribute). Most Perl modules are so simple to build that they are defined directly in `perl-packages.nix`; no need to make a separate file for them. + - XML::Simple, a Perl module: [`pkgs/top-level/perl-packages.nix`](top-level/perl-packages.nix) (search for the `XMLSimple` attribute). + Most Perl modules are so simple to build that they are defined directly in `perl-packages.nix`; no need to make a separate file for them. - - Discord Game SDK: [`pkgs/by-name/di/discord-gamesdk/package.nix`](./by-name/di/discord-gamesdk/package.nix). Shows how binary-only packages can be supported. In particular, the `autoPatchelfHook` is used to set the RUNPATH and ELF interpreter of the executables so that the right libraries are found at runtime. + - Discord Game SDK: [`pkgs/by-name/di/discord-gamesdk/package.nix`](./by-name/di/discord-gamesdk/package.nix). + Shows how binary-only packages can be supported. + In particular, the `autoPatchelfHook` is used to set the RUNPATH and ELF interpreter of the executables so that the right libraries are found at runtime. Some notes: @@ -125,7 +154,9 @@ Now that this is out of the way. To add a package to Nixpkgs: $ nix-build -A some-package ``` - where `some-package` should be the package name. You may want to add the flag `-K` to keep the temporary build directory in case something fails. If the build succeeds, a symlink `./result` to the package in the Nix store is created. + where `some-package` should be the package name. + You may want to add the flag `-K` to keep the temporary build directory in case something fails. + If the build succeeds, a symlink `./result` to the package in the Nix store is created. 6. If you want to install the package into your profile (optional), do @@ -351,19 +382,22 @@ A (typically large) program with a distinct user interface, primarily used inter # Conventions -The key words _must_, _must not_, _required_, _shall_, _shall not_, _should_, _should not_, _recommended_, _may_, and _optional_ in this section are to be interpreted as described in [RFC 2119](https://tools.ietf.org/html/rfc2119). Only _emphasized_ words are to be interpreted in this way. +The key words _must_, _must not_, _required_, _shall_, _shall not_, _should_, _should not_, _recommended_, _may_, and _optional_ in this section are to be interpreted as described in [RFC 2119](https://tools.ietf.org/html/rfc2119). +Only _emphasized_ words are to be interpreted in this way. ## Package naming In Nixpkgs, there are generally three different names associated with a package: -- The `pname` attribute of the derivation. This is what most users see, in particular when using `nix-env`. +- The `pname` attribute of the derivation. + This is what most users see, in particular when using `nix-env`. - The attribute name used for the package in the [`pkgs/by-name` structure](./by-name/README.md) or in [`all-packages.nix`](./top-level/all-packages.nix), and when passing it as a dependency in recipes. - The filename for (the directory containing) the Nix expression. -Most of the time, these are the same. For instance, the package `e2fsprogs` has a `pname` attribute `"e2fsprogs"`, is bound to the attribute name `e2fsprogs` in `all-packages.nix`, and the Nix expression is in `pkgs/os-specific/linux/e2fsprogs/default.nix`. +Most of the time, these are the same. +For instance, the package `e2fsprogs` has a `pname` attribute `"e2fsprogs"`, is bound to the attribute name `e2fsprogs` in `all-packages.nix`, and the Nix expression is in `pkgs/os-specific/linux/e2fsprogs/default.nix`. Follow these guidelines: @@ -379,7 +413,8 @@ Follow these guidelines: - It _must_ be a valid identifier in Nix. - - If the `pname` starts with a digit, the attribute name _should_ be prefixed with an underscore. Otherwise the attribute name _should not_ be prefixed with an underline. + - If the `pname` starts with a digit, the attribute name _should_ be prefixed with an underscore. + Otherwise the attribute name _should not_ be prefixed with an underline. Example: The corresponding attribute name for `0ad` should be `_0ad`. @@ -404,11 +439,13 @@ Follow these guidelines: These are the guidelines the `version` attribute of a package: -- It _must_ start with a digit. This is required for backwards-compatibility with [how `nix-env` parses derivation names](https://nix.dev/manual/nix/latest/command-ref/nix-env#selectors). +- It _must_ start with a digit. + This is required for backwards-compatibility with [how `nix-env` parses derivation names](https://nix.dev/manual/nix/latest/command-ref/nix-env#selectors). Example: `"0.3.1rc2"` or `"0-unstable-1970-01-01"` -- If a package is a commit from a repository without a version assigned, then the `version` attribute _should_ be the latest upstream version preceding that commit, followed by `-unstable-` and the date of the (fetched) commit. The date _must_ be in `"YYYY-MM-DD"` format. +- If a package is a commit from a repository without a version assigned, then the `version` attribute _should_ be the latest upstream version preceding that commit, followed by `-unstable-` and the date of the (fetched) commit. + The date _must_ be in `"YYYY-MM-DD"` format. Example: Given a project had its latest releases `2.2` in November 2021 and `3.0` in January 2022, a commit authored on March 15, 2022 for an upcoming bugfix release `2.2.1` would have `version = "2.2-unstable-2022-03-15"`. @@ -416,9 +453,14 @@ These are the guidelines the `version` attribute of a package: Example: Given a project that has no tags or released versions at all, or applies versionless tags like `latest` or `YYYY-MM-DD-Build`, a commit authored on March 15, 2022 would have `version = "0-unstable-2022-03-15"`. -Because every version of a package in Nixpkgs creates a potential maintenance burden, old versions of a package should not be kept unless there is a good reason to do so. For instance, Nixpkgs contains several versions of GCC because other packages don’t build with the latest version of GCC. Other examples are having both the latest stable and latest pre-release version of a package, or to keep several major releases of an application that differ significantly in functionality. +Because every version of a package in Nixpkgs creates a potential maintenance burden, old versions of a package should not be kept unless there is a good reason to do so. +For instance, Nixpkgs contains several versions of GCC because other packages don’t build with the latest version of GCC. +Other examples are having both the latest stable and latest pre-release version of a package, or to keep several major releases of an application that differ significantly in functionality. -If there is only one version of a package, its Nix expression should be named (e.g) `pkgs/by-name/xy/xyz/package.nix`. If there are multiple versions, this should be reflected in the attribute name. If you wish to share code between the Nix expressions of each version, you cannot rely upon `pkgs/by-name`'s automatic attribute creation, and must create the attributes yourself in `all-packages.nix`. See also [`pkgs/by-name/README.md`'s section on this topic](https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/README.md#recommendation-for-new-packages-with-multiple-versions). +If there is only one version of a package, its Nix expression should be named (e.g) `pkgs/by-name/xy/xyz/package.nix`. +If there are multiple versions, this should be reflected in the attribute name. +If you wish to share code between the Nix expressions of each version, you cannot rely upon `pkgs/by-name`'s automatic attribute creation, and must create the attributes yourself in `all-packages.nix`. +See also [`pkgs/by-name/README.md`'s section on this topic](https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/README.md#recommendation-for-new-packages-with-multiple-versions). ## Meta attributes @@ -437,7 +479,8 @@ The `meta` attribute set should always be placed last in the derivativion and an * If there is no upstream license, `meta.license` should default to `lib.licenses.unfree`. * If in doubt, try to contact the upstream developers for clarification. * `meta.mainProgram` must be set to the name of the executable which facilitates the primary function or purpose of the package, if there is such an executable in `$bin/bin/` (or `$out/bin/`, if there is no `"bin"` output). - * Packages that only have a single executable in the applicable directory above should set `meta.mainProgram`. For example, the package `ripgrep` only has a single executable `rg` under `$out/bin/`, so `ripgrep.meta.mainProgram` is set to `"rg"`. + * Packages that only have a single executable in the applicable directory above should set `meta.mainProgram`. + For example, the package `ripgrep` only has a single executable `rg` under `$out/bin/`, so `ripgrep.meta.mainProgram` is set to `"rg"`. * Packages like `polkit_gnome` that have no executables in the applicable directory should not set `meta.mainProgram`. * Packages like `e2fsprogs` that have multiple executables, none of which can be considered the main program, should not set `meta.mainProgram`. * Packages which are not primarily used for a single executable do not need to set `meta.mainProgram`. @@ -517,11 +560,17 @@ Sometimes, changes are needed to the source to allow building a derivation in ni When using the `patches` parameter to `mkDerivation`, make sure the patch name clearly describes the reason for the patch, or add a comment. > [!Note] -> The version of the package does not need to be changed just because a patch is applied. Declarative package installations don't depend on the version, while imperative `nix-env` installations can use [`upgrade --eq/leq/--always`](https://nix.dev/manual/nix/2.25/command-ref/nix-env/upgrade#flags). +> The version of the package does not need to be changed just because a patch is applied. +> Declarative package installations don't depend on the version, while imperative `nix-env` installations can use [`upgrade --eq/leq/--always`](https://nix.dev/manual/nix/2.25/command-ref/nix-env/upgrade#flags). > > See [Versioning](#versioning) for details on package versioning. -The following describes two ways to include the patch. Regardless of how the patch is included, you _must_ ensure its purpose is clear and obvious. This enables other maintainers to more easily determine when old patches are no longer required. Typically, you can improve clarity with carefully considered filenames, attribute names, and/or comments; these should explain the patch's _intention_. Additionally, it may sometimes be helpful to clarify _how_ it resolves the issue. For example: _"fix gcc14 build by adding missing include"_. +The following describes two ways to include the patch. +Regardless of how the patch is included, you _must_ ensure its purpose is clear and obvious. +This enables other maintainers to more easily determine when old patches are no longer required. +Typically, you can improve clarity with carefully considered filenames, attribute names, and/or comments; these should explain the patch's _intention_. +Additionally, it may sometimes be helpful to clarify _how_ it resolves the issue. +For example: _"fix gcc14 build by adding missing include"_. ### Fetching patches @@ -544,9 +593,11 @@ In the interest of keeping our maintenance burden and the size of Nixpkgs to a m > This is the case if the patch contains a line similar to `index 0c97fcc35..f533e464a 100644`. > Depending on the patch source it is possible to expand the commit hash, in which case using `fetchpatch2` is acceptable (e.g. GitHub supports appending `?full_index=1` to the URL, as seen above). -If a patch is available online but does not cleanly apply, it can be modified in some fixed ways by using additional optional arguments for `fetchpatch2`. Check [the `fetchpatch` reference](https://nixos.org/manual/nixpkgs/unstable/#fetchpatch) for details. +If a patch is available online but does not cleanly apply, it can be modified in some fixed ways by using additional optional arguments for `fetchpatch2`. +Check [the `fetchpatch` reference](https://nixos.org/manual/nixpkgs/unstable/#fetchpatch) for details. -When adding patches in this manner you should be reasonably sure that the used URL is stable. Patches referencing open pull requests will change when the PR is updated and code forges (such as GitHub) usually garbage collect commits that are no longer reachable due to rebases/amends. +When adding patches in this manner you should be reasonably sure that the used URL is stable. +Patches referencing open pull requests will change when the PR is updated and code forges (such as GitHub) usually garbage collect commits that are no longer reachable due to rebases/amends. ### Vendoring patches @@ -601,7 +652,8 @@ We use jbidwatcher as an example for a discontinued project here. 1. Create a new branch for your change, e.g. `git checkout -b jbidwatcher` 1. Remove the actual package including its directory, e.g. `git rm -rf pkgs/applications/misc/jbidwatcher` 1. Remove the package from the list of all packages (`pkgs/top-level/all-packages.nix`). -1. Add an alias for the package name in `pkgs/top-level/aliases.nix` (There is also `pkgs/applications/editors/vim/plugins/aliases.nix`. Package sets typically do not have aliases, so we can't add them there.) +1. Add an alias for the package name in `pkgs/top-level/aliases.nix` (There is also `pkgs/applications/editors/vim/plugins/aliases.nix`. + Package sets typically do not have aliases, so we can't add them there.) For example in this case: @@ -613,8 +665,11 @@ We use jbidwatcher as an example for a discontinued project here. The throw message should explain in short why the package was removed for users that still have it installed. -1. Test if the changes introduced any issues by running `nix-env -qaP -f . --show-trace`. It should show the list of packages without errors. -1. Commit the changes. Explain again why the package was removed. If it was declared discontinued upstream, add a link to the source. +1. Test if the changes introduced any issues by running `nix-env -qaP -f . --show-trace`. + It should show the list of packages without errors. +1. Commit the changes. + Explain again why the package was removed. + If it was declared discontinued upstream, add a link to the source. ```ShellSession $ git add pkgs/applications/misc/jbidwatcher/default.nix pkgs/top-level/all-packages.nix pkgs/top-level/aliases.nix @@ -632,7 +687,8 @@ We use jbidwatcher as an example for a discontinued project here. ``` 1. Push changes to your GitHub fork with `git push` -1. Create a pull request against Nixpkgs. Mention the package maintainer. +1. Create a pull request against Nixpkgs. + Mention the package maintainer. This is how the pull request looks like in this case: [https://github.com/NixOS/nixpkgs/pull/116470](https://github.com/NixOS/nixpkgs/pull/116470) @@ -649,8 +705,11 @@ Tests are important to ensure quality and make reviews and automatic updates eas The following types of tests exists: -* [NixOS **module tests**](https://nixos.org/manual/nixos/stable/#sec-nixos-tests), which spawn one or more NixOS VMs. They exercise both NixOS modules and the packaged programs used within them. For example, a NixOS module test can start a web server VM running the `nginx` module, and a client VM running `curl` or a graphical `firefox`, and test that they can talk to each other and display the correct content. -* Nix **package tests** are a lightweight alternative to NixOS module tests. They should be used to create simple integration tests for packages, but cannot test NixOS services, and some programs with graphical user interfaces may also be difficult to test with them. +* [NixOS **module tests**](https://nixos.org/manual/nixos/stable/#sec-nixos-tests), which spawn one or more NixOS VMs. + They exercise both NixOS modules and the packaged programs used within them. + For example, a NixOS module test can start a web server VM running the `nginx` module, and a client VM running `curl` or a graphical `firefox`, and test that they can talk to each other and display the correct content. +* Nix **package tests** are a lightweight alternative to NixOS module tests. + They should be used to create simple integration tests for packages, but cannot test NixOS services, and some programs with graphical user interfaces may also be difficult to test with them. * The **`checkPhase` of a package**, which should execute the unit tests that are included in the source code of a package. Here in the nixpkgs manual we describe mostly _package tests_; for _module tests_ head over to the corresponding [section in the NixOS manual](https://nixos.org/manual/nixos/stable/#sec-nixos-tests). @@ -886,7 +945,8 @@ Each update script will be passed the following environment variables: - [`UPDATE_NIX_NAME`] – content of the `name` attribute of the updated package - [`UPDATE_NIX_PNAME`] – content of the `pname` attribute of the updated package - [`UPDATE_NIX_OLD_VERSION`] – content of the `version` attribute of the updated package -- [`UPDATE_NIX_ATTR_PATH`] – attribute path the `update.nix` discovered the package on (or the package's specified `attrPath` when available). Example: `pantheon.elementary-terminal` +- [`UPDATE_NIX_ATTR_PATH`] – attribute path the `update.nix` discovered the package on (or the package's specified `attrPath` when available). + Example: `pantheon.elementary-terminal` > [!Note] > An update script will be usually run from the root of the Nixpkgs repository, but you should not rely on that. @@ -937,7 +997,8 @@ If you need to customize commit message, you can have the update script implemen ### Package updates -A package update is the most trivial and common type of pull request. These pull requests mainly consist of updating the version part of the package name and the source hash. +A package update is the most trivial and common type of pull request. +These pull requests mainly consist of updating the version part of the package name and the source hash. It can happen that non-trivial updates include patches or more complex changes. @@ -949,7 +1010,8 @@ Reviewing process: - The continuous integration system will make GitHub notify users based on the submitted changes, but it can happen that it misses some of the package maintainers. - Ensure that the meta field information [fits the guidelines](#meta-attributes) and is correct: - License can change with version updates, so it should be checked to match the upstream license. - - If the package has no maintainer, a maintainer must be set. This can be the update submitter or a community member that accepts to take maintainership of the package. + - If the package has no maintainer, a maintainer must be set. + This can be the update submitter or a community member that accepts to take maintainership of the package. - Verify any change of upstream. - If switching from e.g. PyPi to GitHub, verify that the repo is the official one. - If switching to a fork, check with external sources like other package repositories for community consensus. @@ -972,7 +1034,9 @@ Reviewing process: - The first command fetches the nixos-unstable branch. - The second command fetches the pull request changes, `PRNUMBER` is the number at the end of the pull request title and `BASEBRANCH` the base branch of the pull request. - The third command rebases the pull request changes to the nixos-unstable branch. - - The [nixpkgs-review](https://github.com/Mic92/nixpkgs-review) tool can be used to review a pull request content in a single command. `PRNUMBER` should be replaced by the number at the end of the pull request title. You can also provide the full github pull request url. + - The [nixpkgs-review](https://github.com/Mic92/nixpkgs-review) tool can be used to review a pull request content in a single command. + `PRNUMBER` should be replaced by the number at the end of the pull request title. + You can also provide the full github pull request url. ```ShellSession $ nix-shell -p nixpkgs-review --run "nixpkgs-review pr PRNUMBER" @@ -1001,7 +1065,8 @@ Sample template for a package update review is provided below. ### New packages -New packages are a common type of pull requests. These pull requests consists in adding a new nix-expression for a package. +New packages are a common type of pull requests. +These pull requests consists in adding a new nix-expression for a package. Review process: @@ -1013,7 +1078,8 @@ Review process: - Ensure that the meta fields [fits the guidelines](#meta-attributes) and contain the correct information: - License must match the upstream license. - Platforms should be set (or the package will not get binary substitutes). - - Maintainers must be set. This can be the package submitter or a community member that accepts taking up maintainership of the package. + - Maintainers must be set. + This can be the package submitter or a community member that accepts taking up maintainership of the package. - The `meta.mainProgram` must be set if a main executable exists. - Ensure any special packaging choices and required context are documented in i.e. the name of a patch or in a comment. - If a special version of a package is pinned, document why, so others know if/when it can be unpinned. From 99f2e655d9db009ee0b4ede3edced5f6c882c7f4 Mon Sep 17 00:00:00 2001 From: Wolfgang Walther Date: Sun, 29 Jun 2025 19:14:47 +0200 Subject: [PATCH 67/84] ci/README.md: one sentence per line --- ci/README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ci/README.md b/ci/README.md index 7df3b1533e59..c55d0ca62d07 100644 --- a/ci/README.md +++ b/ci/README.md @@ -6,20 +6,21 @@ This is in contrast with [`maintainers/scripts`](../maintainers/scripts) which i ## Pinned Nixpkgs CI may need certain packages from Nixpkgs. -In order to ensure that the needed packages are generally available without building, -[`pinned.json`](./pinned.json) contains a pinned Nixpkgs version tested by Hydra. +In order to ensure that the needed packages are generally available without building, [`pinned.json`](./pinned.json) contains a pinned Nixpkgs version tested by Hydra. Run [`update-pinned.sh`](./update-pinned.sh) to update it. ## `ci/nixpkgs-vet.sh BASE_BRANCH [REPOSITORY]` -Runs the [`nixpkgs-vet` tool](https://github.com/NixOS/nixpkgs-vet) on the HEAD commit, closely matching what CI does. This can't do exactly the same as CI, because CI needs to rely on GitHub's server-side Git history to compute the mergeability of PRs before the check can be started. +Runs the [`nixpkgs-vet` tool](https://github.com/NixOS/nixpkgs-vet) on the HEAD commit, closely matching what CI does. +This can't do exactly the same as CI, because CI needs to rely on GitHub's server-side Git history to compute the mergeability of PRs before the check can be started. In turn, when contributors are running this tool locally, we don't want to have to push commits to test them, and we can also rely on the local Git history to do the mergeability check. Arguments: - `BASE_BRANCH`: The base branch to use, e.g. master or release-24.05 -- `REPOSITORY`: The repository from which to fetch the base branch. Defaults to . +- `REPOSITORY`: The repository from which to fetch the base branch. + Defaults to . # Branch classification From 60e35e4ded6e91524364a74b3b4ec233ed9321f2 Mon Sep 17 00:00:00 2001 From: Wolfgang Walther Date: Sun, 29 Jun 2025 19:14:57 +0200 Subject: [PATCH 68/84] ci/eval/README.md: one sentence per line --- ci/eval/README.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/ci/eval/README.md b/ci/eval/README.md index 011f3dd74ed0..ec7429b7bc78 100644 --- a/ci/eval/README.md +++ b/ci/eval/README.md @@ -11,10 +11,15 @@ nix-build ci -A eval.full \ --arg evalSystems '["x86_64-linux" "aarch64-darwin"]' ``` -- `--max-jobs`: The maximum number of derivations to run at the same time. Only each [supported system](../supportedSystems.json) gets a separate derivation, so it doesn't make sense to set this higher than that number. -- `--cores`: The number of cores to use for each job. Recommended to set this to the amount of cores on your system divided by `--max-jobs`. -- `chunkSize`: The number of attributes that are evaluated simultaneously on a single core. Lowering this decreases memory usage at the cost of increased evaluation time. If this is too high, there won't be enough chunks to process them in parallel, and will also increase evaluation time. -- `evalSystems`: The set of systems for which `nixpkgs` should be evaluated. Defaults to the four official platforms (`x86_64-linux`, `aarch64-linux`, `x86_64-darwin` and `aarch64-darwin`). +- `--max-jobs`: The maximum number of derivations to run at the same time. + Only each [supported system](../supportedSystems.json) gets a separate derivation, so it doesn't make sense to set this higher than that number. +- `--cores`: The number of cores to use for each job. + Recommended to set this to the amount of cores on your system divided by `--max-jobs`. +- `chunkSize`: The number of attributes that are evaluated simultaneously on a single core. + Lowering this decreases memory usage at the cost of increased evaluation time. + If this is too high, there won't be enough chunks to process them in parallel, and will also increase evaluation time. +- `evalSystems`: The set of systems for which `nixpkgs` should be evaluated. + Defaults to the four official platforms (`x86_64-linux`, `aarch64-linux`, `x86_64-darwin` and `aarch64-darwin`). A good default is to set `chunkSize` to 10000, which leads to about 3.6GB max memory usage per core, so suitable for fully utilising machines with 4 cores and 16GB memory, 8 cores and 32GB memory or 16 cores and 64GB memory. From 3d505c03610b6102af6d870ae3506a151cef1f68 Mon Sep 17 00:00:00 2001 From: Wolfgang Walther Date: Sun, 29 Jun 2025 19:15:06 +0200 Subject: [PATCH 69/84] .github/workflows/README.md: one sentence per line --- .github/workflows/README.md | 47 +++++++++++++++++++++++++++---------- 1 file changed, 34 insertions(+), 13 deletions(-) diff --git a/.github/workflows/README.md b/.github/workflows/README.md index e3be33ae6456..c2a16827ebd4 100644 --- a/.github/workflows/README.md +++ b/.github/workflows/README.md @@ -2,21 +2,35 @@ Some architectural notes about key decisions and concepts in our workflows: -- Instead of `pull_request` we use [`pull_request_target`](https://docs.github.com/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#pull_request_target) for all PR-related workflows. This has the advantage that those workflows will run without prior approval for external contributors. +- Instead of `pull_request` we use [`pull_request_target`](https://docs.github.com/actions/writing-workflows/choosing-when-your-workflow-runs/events-that-trigger-workflows#pull_request_target) for all PR-related workflows. + This has the advantage that those workflows will run without prior approval for external contributors. -- Running on `pull_request_target` also optionally provides us with a GH_TOKEN with elevated privileges (write access), which we need to do things like adding labels, requesting reviewers or pushing branches. **Note about security:** We need to be careful to limit the scope of elevated privileges as much as possible. Thus they should be lowered to the minimum with `permissions: {}` in every workflow by default. +- Running on `pull_request_target` also optionally provides us with a GH_TOKEN with elevated privileges (write access), which we need to do things like adding labels, requesting reviewers or pushing branches. + **Note about security:** We need to be careful to limit the scope of elevated privileges as much as possible. + Thus they should be lowered to the minimum with `permissions: {}` in every workflow by default. -- By definition `pull_request_target` runs in the context of the **base** of the pull request. This means, that the workflow files to run will be taken from the base branch, not the PR, and actions/checkout will not checkout the PR, but the base branch, by default. To protect our secrets, we need to make sure to **never execute code** from the pull request and always evaluate or build nix code from the pull request with the **sandbox enabled**. +- By definition `pull_request_target` runs in the context of the **base** of the pull request. + This means, that the workflow files to run will be taken from the base branch, not the PR, and actions/checkout will not checkout the PR, but the base branch, by default. + To protect our secrets, we need to make sure to **never execute code** from the pull request and always evaluate or build nix code from the pull request with the **sandbox enabled**. -- To test the pull request's contents, we checkout the "test merge commit". This is a temporary commit that GitHub creates automatically as "what would happen, if this PR was merged into the base branch now?". The checkout could be done via the virtual branch `refs/pull//merge`, but doing so would cause failures when this virtual branch doesn't exist (anymore). This can happen when the PR has conflicts, in which case the virtual branch is not created, or when the PR is getting merged while workflows are still running, in which case the branch won't exist anymore at the time of checkout. Thus, we use the `get-merge-commit.yml` workflow to check whether the PR is mergeable and the test merge commit exists and only then run the relevant jobs. +- To test the pull request's contents, we checkout the "test merge commit". + This is a temporary commit that GitHub creates automatically as "what would happen, if this PR was merged into the base branch now?". + The checkout could be done via the virtual branch `refs/pull//merge`, but doing so would cause failures when this virtual branch doesn't exist (anymore). + This can happen when the PR has conflicts, in which case the virtual branch is not created, or when the PR is getting merged while workflows are still running, in which case the branch won't exist anymore at the time of checkout. + Thus, we use the `get-merge-commit.yml` workflow to check whether the PR is mergeable and the test merge commit exists and only then run the relevant jobs. -- Various workflows need to make comparisons against the base branch. In this case, we checkout the parent of the "test merge commit" for best results. Note, that this is not necessarily the same as the default commit that actions/checkout would use, which is also a commit from the base branch (see above), but might be older. +- Various workflows need to make comparisons against the base branch. + In this case, we checkout the parent of the "test merge commit" for best results. + Note, that this is not necessarily the same as the default commit that actions/checkout would use, which is also a commit from the base branch (see above), but might be older. ## Terminology -- **base commit**: The pull_request_target event's context commit, i.e. the base commit given by GitHub Actions. Same as `github.event.pull_request.base.sha`. -- **head commit**: The HEAD commit in the pull request's branch. Same as `github.event.pull_request.head.sha`. -- **merge commit**: The temporary "test merge commit" that GitHub Actions creates and updates for the pull request. Same as `refs/pull/${{ github.event.pull_request.number }}/merge`. +- **base commit**: The pull_request_target event's context commit, i.e. the base commit given by GitHub Actions. + Same as `github.event.pull_request.base.sha`. +- **head commit**: The HEAD commit in the pull request's branch. + Same as `github.event.pull_request.head.sha`. +- **merge commit**: The temporary "test merge commit" that GitHub Actions creates and updates for the pull request. + Same as `refs/pull/${{ github.event.pull_request.number }}/merge`. - **target commit**: The base branch's parent of the "test merge commit" to compare against. ## Concurrency Groups @@ -25,15 +39,22 @@ We use [GitHub's Concurrency Groups](https://docs.github.com/en/actions/writing- When two workflows are in the same group, a newer workflow cancels an older workflow. Thus, it is important how to construct the group keys: -- Because we want to run jobs for different events at same time, we add `github.event_name` to the key. This is the case for the `pull_request` which runs on changes to the workflow files to test the new files and the same workflow from the base branch run via `pull_request_event`. +- Because we want to run jobs for different events at same time, we add `github.event_name` to the key. + This is the case for the `pull_request` which runs on changes to the workflow files to test the new files and the same workflow from the base branch run via `pull_request_event`. -- We don't want workflows of different Pull Requests to cancel each other, so we include `github.event.pull_request.number`. The [GitHub docs](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/control-the-concurrency-of-workflows-and-jobs#example-using-a-fallback-value) show using `github.head_ref` for this purpose, but this doesn't work well with forks: Different users could have the same head branch name in their forks and run CI for their PRs at the same time. +- We don't want workflows of different Pull Requests to cancel each other, so we include `github.event.pull_request.number`. + The [GitHub docs](https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/control-the-concurrency-of-workflows-and-jobs#example-using-a-fallback-value) show using `github.head_ref` for this purpose, but this doesn't work well with forks: Different users could have the same head branch name in their forks and run CI for their PRs at the same time. -- Sometimes, there is no `pull_request.number`. To ensure non-PR runs are never cancelled, we add a fallback of `github.run_id`. This is a unique value for each workflow run. +- Sometimes, there is no `pull_request.number`. + To ensure non-PR runs are never cancelled, we add a fallback of `github.run_id`. + This is a unique value for each workflow run. -- Of course, we run multiple workflows at the same time, so we add `github.workflow` to the key. Otherwise workflows would cancel each other. +- Of course, we run multiple workflows at the same time, so we add `github.workflow` to the key. + Otherwise workflows would cancel each other. -- There is a special case for reusable workflows called via `workflow_call` - they will have `github.workflow` set to their parent workflow's name. Thus, they would cancel each other. That's why we additionally hardcode the name of the workflow as well. +- There is a special case for reusable workflows called via `workflow_call` - they will have `github.workflow` set to their parent workflow's name. + Thus, they would cancel each other. + That's why we additionally hardcode the name of the workflow as well. This results in a key with the following semantics: From 6193b8d04ba5a5358cac7402b51948fe70b33b19 Mon Sep 17 00:00:00 2001 From: "R. RyanTM" Date: Mon, 30 Jun 2025 05:35:28 +1000 Subject: [PATCH 70/84] python3Packages.aiorussound: 4.6.0 -> 4.6.1 (#421068) https://github.com/noahhusby/aiorussound/releases/tag/4.6.1 --- pkgs/development/python-modules/aiorussound/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/aiorussound/default.nix b/pkgs/development/python-modules/aiorussound/default.nix index 1c17cb7ea941..088f04c3b122 100644 --- a/pkgs/development/python-modules/aiorussound/default.nix +++ b/pkgs/development/python-modules/aiorussound/default.nix @@ -17,7 +17,7 @@ buildPythonPackage rec { pname = "aiorussound"; - version = "4.6.0"; + version = "4.6.1"; pyproject = true; # requires newer f-strings introduced in 3.12 @@ -27,7 +27,7 @@ buildPythonPackage rec { owner = "noahhusby"; repo = "aiorussound"; tag = version; - hash = "sha256-sL2ayY8w+2jTt6Tx0sdl9AK7csw9he5Pk1QIowN7Wnw="; + hash = "sha256-ZpN+wMLEcHNzi46ObYClaf7A+Zk9BtfVEvBXOq9ATjo="; }; build-system = [ poetry-core ]; From 0cbe63b03b737bd2413dab3b92f5385c49aeab68 Mon Sep 17 00:00:00 2001 From: Wolfgang Walther Date: Sun, 29 Jun 2025 21:32:39 +0200 Subject: [PATCH 71/84] .git-blame-ignore-revs: add formatting change for READMEs --- .git-blame-ignore-revs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index 7af44d86a9ac..5d3c35edb4d4 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -269,3 +269,9 @@ a034fb50f79816c6738fb48b48503b09ea3b0132 # nixos/redmine: Get rid of global lib expansions d7f1102f04c58b2edfc74c9a1d577e3aebfca775 + +# **/README.md: one sentence per line +3d505c03610b6102af6d870ae3506a151cef1f68 +60e35e4ded6e91524364a74b3b4ec233ed9321f2 +99f2e655d9db009ee0b4ede3edced5f6c882c7f4 +b4532efe93882ae2e3fc579929a42a5a56544146 From a65c267047765b5ced6bd8b5dac29ac162fc16f1 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 28 May 2025 23:00:54 +0000 Subject: [PATCH 72/84] python3Packages.dlib: 19.24.9 -> 20.0 --- pkgs/by-name/dl/dlib/package.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/dl/dlib/package.nix b/pkgs/by-name/dl/dlib/package.nix index 09135b652d75..4b0e21b208da 100644 --- a/pkgs/by-name/dl/dlib/package.nix +++ b/pkgs/by-name/dl/dlib/package.nix @@ -20,13 +20,13 @@ }@inputs: (if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv).mkDerivation rec { pname = "dlib"; - version = "19.24.9"; + version = "20.0"; src = fetchFromGitHub { owner = "davisking"; repo = "dlib"; tag = "v${version}"; - sha256 = "sha256-Uil7Eh6LNaglrMY6fK6b00PdA4E2KnZKng4s7v1tewo="; + sha256 = "sha256-VTX7s0p2AzlvPUsSMXwZiij+UY9g2y+a1YIge9bi0sw="; }; postPatch = '' @@ -40,6 +40,9 @@ (lib.cmakeBool "USE_AVX_INSTRUCTIONS" avxSupport) (lib.cmakeBool "DLIB_USE_CUDA" cudaSupport) ] + ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [ + (lib.cmakeBool "USE_NEON_INSTRUCTIONS" false) + ] ++ lib.optionals cudaSupport [ (lib.cmakeFeature "DLIB_USE_CUDA_COMPUTE_CAPABILITIES" ( builtins.concatStringsSep "," (with cudaPackages.flags; map dropDots cudaCapabilities) From 6d4b8603d1ce4ed8bb7964c1c715a26aa91bc45f Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 28 May 2025 03:00:06 +0000 Subject: [PATCH 73/84] python3Packages.azure-mgmt-network: 28.1.0 -> 29.0.0 --- .../python-modules/azure-mgmt-network/default.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/azure-mgmt-network/default.nix b/pkgs/development/python-modules/azure-mgmt-network/default.nix index ede68a5c714e..e6d5c2a442b9 100644 --- a/pkgs/development/python-modules/azure-mgmt-network/default.nix +++ b/pkgs/development/python-modules/azure-mgmt-network/default.nix @@ -7,19 +7,20 @@ isodate, pythonOlder, setuptools, + typing-extensions, }: buildPythonPackage rec { pname = "azure-mgmt-network"; - version = "28.1.0"; + version = "29.0.0"; pyproject = true; - disabled = pythonOlder "3.8"; + disabled = pythonOlder "3.9"; src = fetchPypi { pname = "azure_mgmt_network"; inherit version; - hash = "sha256-jIS/+17HXG4CROWOzwfADV/EIdYWsMs2nG/lha8zz4c="; + hash = "sha256-V3+8dqGV90S5e6xCdeESeffz5jxlnZh3PztKmm4JQ7k="; }; build-system = [ setuptools ]; @@ -28,6 +29,7 @@ buildPythonPackage rec { azure-common azure-mgmt-core isodate + typing-extensions ]; # Module has no tests From 59f235c79d3844a5c8baa9b1c9eacfc934561283 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sun, 29 Jun 2025 22:14:21 +0200 Subject: [PATCH 74/84] nixos/wyoming/faster-whisper: fix eval Various issues were introduced in the latest update that required module changes. This can be attributed to an apparent lack of attention for which I apologize. --- .../wyoming/faster-whisper.nix | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/nixos/modules/services/home-automation/wyoming/faster-whisper.nix b/nixos/modules/services/home-automation/wyoming/faster-whisper.nix index 7c52cafac33a..26f7955d9b08 100644 --- a/nixos/modules/services/home-automation/wyoming/faster-whisper.nix +++ b/nixos/modules/services/home-automation/wyoming/faster-whisper.nix @@ -25,14 +25,6 @@ let inherit (utils) escapeSystemdExecArgs ; - - finalPackage = cfg.package.overridePythonAttrs (oldAttrs: { - dependencies = - oldAttrs.dependencies - # for transformer model support - ++ optionals cfg.useTransformers oldAttrs.optional-dependencies.transformers; - }); - in { @@ -280,15 +272,21 @@ in ; in mkIf (cfg.servers != { }) { - assertions = mapAttrsToList ( - server: options: { - assertion = options.useTransformers -> options.initialPrompt == null; - message = "wyoming-faster-whisper/${server}: Transformer models (`useTransformers`) do not currently support an `initialPrompt`."; - } - ); + assertions = mapAttrsToList (server: options: { + assertion = options.useTransformers -> options.initialPrompt == null; + message = "wyoming-faster-whisper/${server}: Transformer models (`useTransformers`) do not currently support an `initialPrompt`."; + }) cfg.servers; systemd.services = mapAttrs' ( server: options: + let + finalPackage = cfg.package.overridePythonAttrs (oldAttrs: { + dependencies = + oldAttrs.dependencies + # for transformer model support + ++ optionals options.useTransformers oldAttrs.optional-dependencies.transformers; + }); + in nameValuePair "wyoming-faster-whisper-${server}" { inherit (options) enable; description = "Wyoming faster-whisper server instance ${server}"; From b93056a63e86d7de221b83536889f4b2921c3976 Mon Sep 17 00:00:00 2001 From: Marcel Date: Sat, 24 May 2025 22:37:55 +0200 Subject: [PATCH 75/84] grafana-metricsdrilldown-app: init at 1.0.4 --- .../grafana-metricsdrilldown-app/default.nix | 13 +++++++++++++ pkgs/servers/monitoring/grafana/plugins/plugins.nix | 1 + 2 files changed, 14 insertions(+) create mode 100644 pkgs/servers/monitoring/grafana/plugins/grafana-metricsdrilldown-app/default.nix diff --git a/pkgs/servers/monitoring/grafana/plugins/grafana-metricsdrilldown-app/default.nix b/pkgs/servers/monitoring/grafana/plugins/grafana-metricsdrilldown-app/default.nix new file mode 100644 index 000000000000..cef22b098206 --- /dev/null +++ b/pkgs/servers/monitoring/grafana/plugins/grafana-metricsdrilldown-app/default.nix @@ -0,0 +1,13 @@ +{ grafanaPlugin, lib }: + +grafanaPlugin { + pname = "grafana-metricsdrilldown-app"; + version = "1.0.4"; + zipHash = "sha256-FdeicETOYWdITUBFC19wdGn53ACsRc7Pq2iampksAS4="; + meta = with lib; { + description = "The Grafana Metrics Drilldown app provides a queryless experience for browsing Prometheus-compatible metrics. Quickly find related metrics without writing PromQL queries."; + license = licenses.agpl3Only; + teams = [ lib.maintainers.marcel ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/servers/monitoring/grafana/plugins/plugins.nix b/pkgs/servers/monitoring/grafana/plugins/plugins.nix index a5dd4d52a893..3b20f29f2be9 100644 --- a/pkgs/servers/monitoring/grafana/plugins/plugins.nix +++ b/pkgs/servers/monitoring/grafana/plugins/plugins.nix @@ -15,6 +15,7 @@ grafana-github-datasource = callPackage ./grafana-github-datasource { }; grafana-googlesheets-datasource = callPackage ./grafana-googlesheets-datasource { }; grafana-lokiexplore-app = callPackage ./grafana-lokiexplore-app { }; + grafana-metricsdrilldown-app = callPackage ./grafana-metricsdrilldown-app { }; grafana-mqtt-datasource = callPackage ./grafana-mqtt-datasource { }; grafana-oncall-app = callPackage ./grafana-oncall-app { }; grafana-opensearch-datasource = callPackage ./grafana-opensearch-datasource { }; From da6ed8ace7106d016e18c911dcb5e32dff470930 Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Sun, 29 Jun 2025 22:26:23 +0200 Subject: [PATCH 76/84] python3Packages.pymunk: drop support for python 3.8 Co-authored-by: Nick Cao --- pkgs/development/python-modules/pymunk/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/python-modules/pymunk/default.nix b/pkgs/development/python-modules/pymunk/default.nix index 7153797e706f..1d8f3e6457c5 100644 --- a/pkgs/development/python-modules/pymunk/default.nix +++ b/pkgs/development/python-modules/pymunk/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { version = "7.0.1"; pyproject = true; - disabled = pythonOlder "3.8"; + disabled = pythonOlder "3.9"; src = fetchPypi { inherit pname version; From 4e3354b6f931c595b989925fcf4c5b7ee85108de Mon Sep 17 00:00:00 2001 From: Marcel Date: Tue, 18 Feb 2025 19:12:13 +0100 Subject: [PATCH 77/84] python312Packages.aggregate6: 1.0.12 -> 1.0.14 --- .../0001-setup-remove-nose-coverage.patch | 31 ------------------- .../python-modules/aggregate6/default.nix | 13 ++++---- 2 files changed, 7 insertions(+), 37 deletions(-) delete mode 100644 pkgs/development/python-modules/aggregate6/0001-setup-remove-nose-coverage.patch diff --git a/pkgs/development/python-modules/aggregate6/0001-setup-remove-nose-coverage.patch b/pkgs/development/python-modules/aggregate6/0001-setup-remove-nose-coverage.patch deleted file mode 100644 index feaddc465032..000000000000 --- a/pkgs/development/python-modules/aggregate6/0001-setup-remove-nose-coverage.patch +++ /dev/null @@ -1,31 +0,0 @@ -From d20c7039316ea7c76da86963b266d3c34001b9f7 Mon Sep 17 00:00:00 2001 -From: Marcel -Date: Sat, 2 Nov 2024 21:13:37 +0100 -Subject: [PATCH] setup: remove nose, coverage - ---- - setup.py | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - -diff --git a/setup.py b/setup.py -index b880f27..7a47360 100644 ---- a/setup.py -+++ b/setup.py -@@ -70,7 +70,7 @@ setup( - 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6' - ], -- setup_requires=["nose", "coverage", "mock"], -+ setup_requires=["mock"], - install_requires=["py-radix==0.10.0"] + ( - ["future", "ipaddress"] if sys.version_info.major == 2 else [] - ), -@@ -78,5 +78,4 @@ setup( - entry_points={'console_scripts': - ['aggregate6 = aggregate6.aggregate6:main']}, - data_files = [('man/man7', ['aggregate6.7'])], -- test_suite='nose.collector' - ) --- -2.44.1 - diff --git a/pkgs/development/python-modules/aggregate6/default.nix b/pkgs/development/python-modules/aggregate6/default.nix index 1d5efc304dad..a57bc4c1667a 100644 --- a/pkgs/development/python-modules/aggregate6/default.nix +++ b/pkgs/development/python-modules/aggregate6/default.nix @@ -4,25 +4,25 @@ fetchFromGitHub, setuptools, py-radix-sr, + versionCheckHook, pytestCheckHook, - mock, }: buildPythonPackage rec { pname = "aggregate6"; - version = "1.0.12"; + version = "1.0.14"; pyproject = true; src = fetchFromGitHub { owner = "job"; repo = "aggregate6"; rev = version; - hash = "sha256-tBo9LSmEu/0KPSeg17dlh7ngUvP9GyW6b01qqpr5Bx0="; + hash = "sha256-sF5F4AIIQuMTuWE3zoBE1akJX9QSmAaRp1qgoHzSJMo="; }; - patches = [ ./0001-setup-remove-nose-coverage.patch ]; - # py-radix-sr is a fork, with fixes + # NOTE: it should be worth switching to py-radix again in the future as there + # is still development sadly currently without a new release. postPatch = '' substituteInPlace setup.py --replace-fail 'py-radix==0.10.0' 'py-radix-sr' ''; @@ -33,10 +33,11 @@ buildPythonPackage rec { nativeCheckInputs = [ pytestCheckHook - mock + versionCheckHook ]; pythonImportsCheck = [ "aggregate6" ]; + versionCheckProgramArg = "-V"; meta = { description = "IPv4 and IPv6 prefix aggregation tool"; From 4ccba35866ee2ce284a9f46509fd341b581c68a1 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 25 Jun 2025 06:41:48 +0000 Subject: [PATCH 78/84] cloc: 2.04 -> 2.06 --- pkgs/by-name/cl/cloc/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/cl/cloc/package.nix b/pkgs/by-name/cl/cloc/package.nix index ab6d1639a9ca..520ad324e978 100644 --- a/pkgs/by-name/cl/cloc/package.nix +++ b/pkgs/by-name/cl/cloc/package.nix @@ -7,7 +7,7 @@ }: let - version = "2.04"; + version = "2.06"; in stdenv.mkDerivation { pname = "cloc"; @@ -17,7 +17,7 @@ stdenv.mkDerivation { owner = "AlDanial"; repo = "cloc"; rev = "v${version}"; - sha256 = "sha256-x02TEm+VYSqj0gSF/Eg+4LkSd2/LapHHSBlZziTKBDQ="; + sha256 = "sha256-u/qIkoN8xFA/aggjbSfVHbhUvRo6fWqcJWSMO/Q0hQo="; }; setSourceRoot = '' From 7cd965e7748f48db01c7c106cb7d3454aa479d3f Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Sun, 29 Jun 2025 23:21:06 +0200 Subject: [PATCH 79/84] Revert "python3Packages.pathvalidate: 3.2.3 -> 3.3.1" --- pkgs/development/python-modules/pathvalidate/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/pathvalidate/default.nix b/pkgs/development/python-modules/pathvalidate/default.nix index f4c8a5133500..0927f880fd46 100644 --- a/pkgs/development/python-modules/pathvalidate/default.nix +++ b/pkgs/development/python-modules/pathvalidate/default.nix @@ -8,14 +8,14 @@ buildPythonPackage rec { pname = "pathvalidate"; - version = "3.3.1"; + version = "3.2.3"; pyproject = true; disabled = pythonOlder "3.7"; src = fetchPypi { inherit pname version; - hash = "sha256-sYwHISv+rWJDRbuOHWFBzc8Vo5c2mU6guUA1rSsboXc="; + hash = "sha256-WbW5J44wOC1tITSXYjBD6+Y/EOKQVb5EGanATHIXOcs="; }; build-system = [ setuptools-scm ]; From 60d3651e0f71adead02f0ed5440de16a1ceea0e6 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 18 Jun 2025 23:56:04 +0000 Subject: [PATCH 80/84] python3Packages.semchunk: 3.2.1 -> 3.2.2 --- .../python-modules/semchunk/default.nix | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/pkgs/development/python-modules/semchunk/default.nix b/pkgs/development/python-modules/semchunk/default.nix index 82f5cf5bb95d..a8025a976419 100644 --- a/pkgs/development/python-modules/semchunk/default.nix +++ b/pkgs/development/python-modules/semchunk/default.nix @@ -1,7 +1,7 @@ { lib, buildPythonPackage, - fetchPypi, + fetchFromGitHub, hatchling, mpire, tqdm, @@ -9,12 +9,14 @@ buildPythonPackage rec { pname = "semchunk"; - version = "3.2.1"; + version = "3.2.2"; pyproject = true; - src = fetchPypi { - inherit pname version; - hash = "sha256-6kWJMEf2PfG5L1UhRKIEc+zksASsPZLP6SYB/X0ygbA="; + src = fetchFromGitHub { + owner = "isaacus-dev"; + repo = "semchunk"; + tag = "v${version}"; + hash = "sha256-bZe5QOFYY0LUUhv2T8B5xuzpCQ0XHtgS3ef12ZhxKvw="; }; build-system = [ @@ -32,7 +34,8 @@ buildPythonPackage rec { meta = { description = "A fast, lightweight and easy-to-use Python library for splitting text into semantically meaningful chunks"; - homepage = "https://pypi.org/project/semchunk/"; + changelog = "https://github.com/isaacus-dev/semchunk/releases/tag/v${version}"; + homepage = "https://github.com/isaacus-dev/semchunk"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ booxter ]; }; From 84a111a2df01fe7601cafc5a53c7b5e3baa09357 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Wed, 18 Jun 2025 05:36:30 +0000 Subject: [PATCH 81/84] python3Packages.azure-mgmt-web: 8.0.0 -> 9.0.0 --- .../development/python-modules/azure-mgmt-web/default.nix | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/azure-mgmt-web/default.nix b/pkgs/development/python-modules/azure-mgmt-web/default.nix index 49d6401cac94..c830ed879011 100644 --- a/pkgs/development/python-modules/azure-mgmt-web/default.nix +++ b/pkgs/development/python-modules/azure-mgmt-web/default.nix @@ -7,19 +7,20 @@ isodate, pythonOlder, setuptools, + typing-extensions, }: buildPythonPackage rec { pname = "azure-mgmt-web"; - version = "8.0.0"; + version = "9.0.0"; pyproject = true; - disabled = pythonOlder "3.8"; + disabled = pythonOlder "3.9"; src = fetchPypi { pname = "azure_mgmt_web"; inherit version; - hash = "sha256-yNnAQsCdt6rLICcKnv/tTU5lHjZa8y2AiXuE3HvzUJg="; + hash = "sha256-RFXs07SYV3CFwZBObRcTklTjWLoH/mxINaiRu697BsI="; }; build-system = [ setuptools ]; @@ -28,6 +29,7 @@ buildPythonPackage rec { azure-common azure-mgmt-core isodate + typing-extensions ]; # has no tests From aaa6f379af77baa169cb373b4af22c4441db8237 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 15 Jun 2025 20:40:57 +0000 Subject: [PATCH 82/84] python3Packages.certbot-dns-inwx: 3.0.2 -> 3.0.3 --- .../python-modules/certbot-dns-inwx/default.nix | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/certbot-dns-inwx/default.nix b/pkgs/development/python-modules/certbot-dns-inwx/default.nix index b7627f60f3ce..f2feccfe7f7d 100644 --- a/pkgs/development/python-modules/certbot-dns-inwx/default.nix +++ b/pkgs/development/python-modules/certbot-dns-inwx/default.nix @@ -6,18 +6,19 @@ acme, certbot, inwx-domrobot, + idna, }: buildPythonPackage rec { pname = "certbot-dns-inwx"; - version = "3.0.2"; + version = "3.0.3"; pyproject = true; src = fetchFromGitHub { owner = "oGGy990"; repo = "certbot-dns-inwx"; tag = "v${version}"; - hash = "sha256-x4wDg36J9MvXXHBxUMCoHO3p6c3FKBBB879CpxG/1NA="; + hash = "sha256-bI/CSTYy/W1AwbxnBxhMp/yFnp68G25mTkNUbdNsRZ4="; }; build-system = [ setuptools ]; @@ -28,6 +29,10 @@ buildPythonPackage rec { inwx-domrobot ]; + optional-dependencies = { + idna = [ idna ]; + }; + # Doesn't have any tests doCheck = false; From 3198b82350147b5141b41d88e10209136a8599ad Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sun, 22 Jun 2025 14:20:28 +0000 Subject: [PATCH 83/84] python3Packages.aioftp: 0.25.1 -> 0.25.2 --- pkgs/development/python-modules/aioftp/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/development/python-modules/aioftp/default.nix b/pkgs/development/python-modules/aioftp/default.nix index d40ada974b8e..3fbf99a9eeb9 100644 --- a/pkgs/development/python-modules/aioftp/default.nix +++ b/pkgs/development/python-modules/aioftp/default.nix @@ -16,14 +16,14 @@ buildPythonPackage rec { pname = "aioftp"; - version = "0.25.1"; + version = "0.25.2"; pyproject = true; - disabled = pythonOlder "3.11"; + disabled = pythonOlder "3.9"; src = fetchPypi { inherit pname version; - hash = "sha256-TS+wt30/2kKCz/zQW6cFZ9iUDNn97t8QvfeIoAEggBY="; + hash = "sha256-hALv4NR4O5xNZ4dEbV4Cer55eWlR8ickG9LF2PPgnQs="; }; build-system = [ setuptools ]; From 14ca9b997a5ebb18f072a33e2f42c32015fc5864 Mon Sep 17 00:00:00 2001 From: "R. Ryantm" Date: Sat, 21 Jun 2025 03:03:36 +0000 Subject: [PATCH 84/84] python3Packages.google-cloud-speech: 2.32.0 -> 2.33.0 --- .../python-modules/google-cloud-speech/default.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/development/python-modules/google-cloud-speech/default.nix b/pkgs/development/python-modules/google-cloud-speech/default.nix index 66b485a8bfbe..afba3e88cdd3 100644 --- a/pkgs/development/python-modules/google-cloud-speech/default.nix +++ b/pkgs/development/python-modules/google-cloud-speech/default.nix @@ -3,6 +3,7 @@ buildPythonPackage, fetchPypi, google-api-core, + google-auth, mock, proto-plus, protobuf, @@ -14,7 +15,7 @@ buildPythonPackage rec { pname = "google-cloud-speech"; - version = "2.32.0"; + version = "2.33.0"; pyproject = true; disabled = pythonOlder "3.7"; @@ -22,13 +23,14 @@ buildPythonPackage rec { src = fetchPypi { pname = "google_cloud_speech"; inherit version; - hash = "sha256-icJhixMdMQxsAOfATSkP+ppdaMIBkQMHZqdzeFDwTnc="; + hash = "sha256-/QhRG1Ek/ap2jXGkBU6EpdjrAlMctvhPMRwDh+oTFO0="; }; build-system = [ setuptools ]; dependencies = [ google-api-core + google-auth proto-plus protobuf ] ++ google-api-core.optional-dependencies.grpc;