mirror of
https://github.com/CHN-beta/nixpkgs.git
synced 2026-01-11 18:32:23 +08:00
ci/eval/compare: handle missing packages
Not all packages that are reported as changed will actually exist on the
platform that the maintainers are colleted on.
This is the case for some attributes that are only available on Darwin
or explicitly set to `null` on Linux. By filtering out packages without
maintainers, these are ignored - and we should potentially get a small
performance improvement as well.
(cherry picked from commit f2ca5796de)
This commit is contained in:
committed by
github-actions[bot]
parent
c4b3f85ffb
commit
4198e557f3
@@ -22,18 +22,27 @@ let
|
||||
|
||||
anyMatchingFiles = files: builtins.any anyMatchingFile files;
|
||||
|
||||
attrsWithMaintainers = builtins.map (
|
||||
name:
|
||||
let
|
||||
package = lib.getAttrFromPath (lib.splitString "." name) pkgs;
|
||||
in
|
||||
{
|
||||
inherit name package;
|
||||
# TODO: Refactor this so we can ping entire teams instead of the individual members.
|
||||
# Note that this will require keeping track of GH team IDs in "maintainers/teams.nix".
|
||||
maintainers = package.meta.maintainers or [ ];
|
||||
}
|
||||
) (changedattrs ++ removedattrs);
|
||||
attrsWithMaintainers = lib.pipe (changedattrs ++ removedattrs) [
|
||||
(builtins.map (
|
||||
name:
|
||||
let
|
||||
# Some packages might be reported as changed on a different platform, but
|
||||
# not even have an attribute on the platform the maintainers are requested on.
|
||||
# Fallback to `null` for these to filter them out below.
|
||||
package = lib.attrByPath (lib.splitString "." name) null pkgs;
|
||||
in
|
||||
{
|
||||
inherit name package;
|
||||
# TODO: Refactor this so we can ping entire teams instead of the individual members.
|
||||
# Note that this will require keeping track of GH team IDs in "maintainers/teams.nix".
|
||||
maintainers = package.meta.maintainers or [ ];
|
||||
}
|
||||
))
|
||||
# No need to match up packages without maintainers with their files.
|
||||
# This also filters out attributes where `packge = null`, which is the
|
||||
# case for libintl, for example.
|
||||
(builtins.filter (pkg: pkg.maintainers != [ ]))
|
||||
];
|
||||
|
||||
relevantFilenames =
|
||||
drv:
|
||||
|
||||
Reference in New Issue
Block a user