mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-10 03:23:29 +03:00
release-attrpaths-superset.nix: remove attr set exclusion
The removal of these attrs became unnecessary after 72f462bdba
was merged, as these get now filtered out by `recursiveMapPackages` in `release.nix`
This commit is contained in:
parent
2df7d531fc
commit
1d36c2a680
1 changed files with 8 additions and 80 deletions
|
@ -30,63 +30,6 @@
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
|
||||||
# No release package attrpath may have any of these attrnames as
|
|
||||||
# its initial component.
|
|
||||||
#
|
|
||||||
# If you can find a way to remove any of these entries without
|
|
||||||
# causing CI to fail, please do so.
|
|
||||||
#
|
|
||||||
excluded-toplevel-attrs = {
|
|
||||||
# spliced packagesets
|
|
||||||
__splicedPackages = true;
|
|
||||||
pkgsBuildBuild = true;
|
|
||||||
pkgsBuildHost = true;
|
|
||||||
pkgsBuildTarget = true;
|
|
||||||
pkgsHostHost = true;
|
|
||||||
pkgsHostTarget = true;
|
|
||||||
pkgsTargetTarget = true;
|
|
||||||
buildPackages = true;
|
|
||||||
targetPackages = true;
|
|
||||||
|
|
||||||
# cross packagesets
|
|
||||||
pkgsLLVM = true;
|
|
||||||
pkgsMusl = true;
|
|
||||||
pkgsStatic = true;
|
|
||||||
pkgsCross = true;
|
|
||||||
pkgsx86_64Darwin = true;
|
|
||||||
pkgsi686Linux = true;
|
|
||||||
pkgsLinux = true;
|
|
||||||
pkgsExtraHardening = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# No release package attrname may have any of these at a component
|
|
||||||
# anywhere in its attrpath. These are the names of gigantic
|
|
||||||
# top-level attrsets that have leaked into so many sub-packagesets
|
|
||||||
# that it's easier to simply exclude them entirely.
|
|
||||||
#
|
|
||||||
# If you can find a way to remove any of these entries without
|
|
||||||
# causing CI to fail, please do so.
|
|
||||||
#
|
|
||||||
excluded-attrnames-at-any-depth = {
|
|
||||||
lib = true;
|
|
||||||
override = true;
|
|
||||||
__functor = true;
|
|
||||||
__functionArgs = true;
|
|
||||||
__splicedPackages = true;
|
|
||||||
newScope = true;
|
|
||||||
scope = true;
|
|
||||||
pkgs = true;
|
|
||||||
test-pkgs = true;
|
|
||||||
callPackage = true;
|
|
||||||
mkDerivation = true;
|
|
||||||
overrideDerivation = true;
|
|
||||||
overrideScope = true;
|
|
||||||
|
|
||||||
# Special case: lib/types.nix leaks into a lot of nixos-related
|
|
||||||
# derivations, and does not eval deeply.
|
|
||||||
type = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# __attrsFailEvaluation is a temporary workaround to get top-level
|
# __attrsFailEvaluation is a temporary workaround to get top-level
|
||||||
# eval to succeed (under builtins.tryEval) for the entire
|
# eval to succeed (under builtins.tryEval) for the entire
|
||||||
# packageset, without deep invasve changes into individual
|
# packageset, without deep invasve changes into individual
|
||||||
|
@ -104,17 +47,11 @@ let
|
||||||
# part of the (unfiltered) release jobset iff all of the following
|
# part of the (unfiltered) release jobset iff all of the following
|
||||||
# are true:
|
# are true:
|
||||||
#
|
#
|
||||||
# 1. The first component of the attrpath is not in
|
# 1. The attrpath leads to a value for which lib.isDerivation is true
|
||||||
# `excluded-toplevel-attrs`
|
|
||||||
#
|
#
|
||||||
# 2. No attrname in the attrpath belongs to the list of forbidden
|
# 2. No proper prefix of the attrpath has __attrsFailEvaluation=true
|
||||||
# attrnames `excluded-attrnames-at-any-depth`
|
|
||||||
#
|
#
|
||||||
# 3. The attrpath leads to a value for which lib.isDerivation is true
|
# 3. Any proper prefix of the attrpath at which lib.isDerivation
|
||||||
#
|
|
||||||
# 4. No proper prefix of the attrpath has __attrsFailEvaluation=true
|
|
||||||
#
|
|
||||||
# 5. Any proper prefix of the attrpath at which lib.isDerivation
|
|
||||||
# is true also has __recurseIntoDerivationForReleaseJobs=true.
|
# is true also has __recurseIntoDerivationForReleaseJobs=true.
|
||||||
#
|
#
|
||||||
# The last condition is unfortunately necessary because there are
|
# The last condition is unfortunately necessary because there are
|
||||||
|
@ -150,14 +87,9 @@ let
|
||||||
lib.pipe value [
|
lib.pipe value [
|
||||||
(builtins.mapAttrs (
|
(builtins.mapAttrs (
|
||||||
name: value:
|
name: value:
|
||||||
builtins.addErrorContext
|
builtins.addErrorContext "while evaluating package set attribute path '${
|
||||||
"while evaluating package set attribute path '${lib.showAttrPath (path ++ [ name ])}'"
|
lib.showAttrPath (path ++ [ name ])
|
||||||
(
|
}'" (justAttrNames (path ++ [ name ]) value)
|
||||||
if excluded-attrnames-at-any-depth.${name} or false then
|
|
||||||
[ ]
|
|
||||||
else
|
|
||||||
(justAttrNames (path ++ [ name ]) value)
|
|
||||||
)
|
|
||||||
))
|
))
|
||||||
builtins.attrValues
|
builtins.attrValues
|
||||||
builtins.concatLists
|
builtins.concatLists
|
||||||
|
@ -176,16 +108,12 @@ let
|
||||||
in
|
in
|
||||||
if !trace then result else lib.trace "** ${lib.concatStringsSep "." path}" result;
|
if !trace then result else lib.trace "** ${lib.concatStringsSep "." path}" result;
|
||||||
|
|
||||||
unfiltered = import ./release-outpaths.nix {
|
releaseOutpaths = import ./release-outpaths.nix {
|
||||||
inherit checkMeta;
|
inherit checkMeta;
|
||||||
attrNamesOnly = true;
|
attrNamesOnly = true;
|
||||||
inherit path;
|
inherit path;
|
||||||
};
|
};
|
||||||
|
|
||||||
filtered = lib.pipe unfiltered [
|
|
||||||
(pkgs: builtins.removeAttrs pkgs (builtins.attrNames excluded-toplevel-attrs))
|
|
||||||
];
|
|
||||||
|
|
||||||
paths = [
|
paths = [
|
||||||
# I am not entirely sure why these three packages end up in
|
# I am not entirely sure why these three packages end up in
|
||||||
# the Hydra jobset. But they do, and they don't meet the
|
# the Hydra jobset. But they do, and they don't meet the
|
||||||
|
@ -202,7 +130,7 @@ let
|
||||||
"pkgsMusl"
|
"pkgsMusl"
|
||||||
"stdenv"
|
"stdenv"
|
||||||
]
|
]
|
||||||
] ++ justAttrNames [ ] filtered;
|
] ++ justAttrNames [ ] releaseOutpaths;
|
||||||
|
|
||||||
names = map (path: (lib.concatStringsSep "." path)) paths;
|
names = map (path: (lib.concatStringsSep "." path)) paths;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue