From 6d564102b72c8fd3cb7e4d2971be1fb1067e43bc Mon Sep 17 00:00:00 2001 From: Wolfgang Walther Date: Wed, 22 Oct 2025 21:06:53 +0200 Subject: [PATCH] ci/eval/compare/maintainers: fix maintainer pings without meta.position In a recent change, the path matching was simplified in maintainers.nix. This revealed a pre-existing logic bug: Packages without `meta.position` would get an empty string as their file name. The change would then cause this empty string to always be matched, which lead to maintainer pings for these packages in seemingly random PRs, when some of their dependencies were changed. --- ci/eval/compare/maintainers.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ci/eval/compare/maintainers.nix b/ci/eval/compare/maintainers.nix index b3ebf6aee569..854c1f730bda 100644 --- a/ci/eval/compare/maintainers.nix +++ b/ci/eval/compare/maintainers.nix @@ -72,7 +72,8 @@ let (lib.unsafeGetAttrPos "src" drv) (lib.unsafeGetAttrPos "pname" drv) (lib.unsafeGetAttrPos "version" drv) - + ] + ++ lib.optionals (drv.meta.position or null != null) [ # Use ".meta.position" for cases when most of the package is # defined in a "common" section and the only place where # reference to the file with a derivation the "pos" @@ -82,7 +83,7 @@ let # "pkgs/tools/package-management/nix/default.nix:155" # We transform it to the following: # { file = "pkgs/tools/package-management/nix/default.nix"; } - { file = lib.head (lib.splitString ":" (drv.meta.position or "")); } + { file = lib.head (lib.splitString ":" drv.meta.position); } ] ) ));