top-level/release-attrpaths-superset: remove __attrsFailEvaluation

This doesn't seem to be necessary anymore. I confirmed by:
- Adding a lib.warn into the __attrsFailsEvaluation branch - never got
any.
- Removing it everywhere and running full Eval on it - no errors, no
rebuilds.
This commit is contained in:
Wolfgang Walther 2025-07-23 19:19:06 +02:00
parent 4ad7d21c88
commit 59233ecd0d
No known key found for this signature in database
GPG Key ID: B39893FA5F65CAE1
14 changed files with 16 additions and 78 deletions

View File

@ -431,8 +431,6 @@ rec {
];
};
plugins = callPackage ./plugins { } // {
__attrsFailEvaluation = true;
};
plugins = callPackage ./plugins { };
}

View File

@ -18,12 +18,7 @@ lib.makeScope newScope (
plugins = [ ];
};
# Prevent `pkgs/top-level/release-attrpaths-superset.nix` from recursing here.
pidginPackages = self // {
pidginPackages = self.pidginPackages // {
__attrsFailEvaluation = true;
};
};
pidginPackages = self;
pidgin-indicator = callPackage ./pidgin-indicator { };

View File

@ -39,7 +39,6 @@ let
lib.trivial.pipe extensions [
(map (extension: lib.nameValuePair extension.extensionUuid extension))
builtins.listToAttrs
(attrs: attrs // { __attrsFailEvaluation = true; })
];
# Map the list of extensions to an attrset based on the pname as key, which is more human readable than the UUID
@ -80,7 +79,6 @@ rec {
# Keep the last three versions in here
gnomeExtensions = lib.trivial.pipe (gnome46Extensions // gnome47Extensions // gnome48Extensions) [
(v: builtins.removeAttrs v [ "__attrsFailEvaluation" ])
# Apply some custom patches for automatically packaged extensions
(callPackage ./extensionOverrides.nix { })
# Add all manually packaged extensions

View File

@ -89,12 +89,7 @@ in
in
{
# Packages suitable for build-time, e.g. `build.rs`-type stuff.
buildRustPackages = (selectRustPackage pkgsBuildHost).packages.stable // {
# Prevent `pkgs/top-level/release-attrpaths-superset.nix` from recursing more than one level here.
buildRustPackages = self.buildRustPackages // {
__attrsFailEvaluation = true;
};
};
buildRustPackages = (selectRustPackage pkgsBuildHost).packages.stable;
# Analogous to stdenv
rustPlatform = makeRustPlatform self.buildRustPackages;
rustc-unwrapped = self.callPackage ./rustc.nix ({

View File

@ -31,12 +31,8 @@ let
ghc
extensible-self
all-cabal-hashes
buildHaskellPackages
;
# Prevent `pkgs/top-level/release-attrpaths-superset.nix` from recursing here.
buildHaskellPackages = buildHaskellPackages // {
__attrsFailEvaluation = true;
};
};
platformConfigurations =

View File

@ -90,16 +90,7 @@ let
inherit (luaPackages) requiredLuaModules;
};
withPackages = import ./with-packages.nix { inherit buildEnv luaPackages; };
pkgs =
let
lp = luaPackages;
in
lp
// {
luaPackages = lp.luaPackages // {
__attrsFailEvaluation = true;
};
};
pkgs = luaPackages;
interpreter = "${self}/bin/${executable}";
inherit executable luaversion;
luaOnBuild = luaOnBuildForHost.override {

View File

@ -147,8 +147,5 @@ in
python = toPythonModule python;
# Don't take pythonPackages from "global" pkgs scope to avoid mixing python versions.
# Prevent `pkgs/top-level/release-attrpaths-superset.nix` from recursing more than one level here.
pythonPackages = self // {
__attrsFailEvaluation = true;
};
pythonPackages = self;
}

View File

@ -21,9 +21,7 @@ lib.packagesFromDirectoryRecursive {
inherit sourceData patchesRoot versionData;
# Keep the crawled portion of Nixpkgs finite.
buildFreebsd = lib.dontRecurseIntoAttrs buildFreebsd // {
__attrsFailEvaluation = true;
};
buildFreebsd = lib.dontRecurseIntoAttrs buildFreebsd;
ports = fetchgit {
url = "https://git.FreeBSD.org/ports.git";

View File

@ -170,7 +170,6 @@ with pkgs;
system = stdenv.hostPlatform.system;
callTest = config: config.test.driver;
};
__attrsFailEvaluation = true;
};
### BUILD SUPPORT
@ -10099,15 +10098,11 @@ with pkgs;
rstudioServerWrapper = rstudioWrapper.override { rstudio = rstudio-server; };
rPackages =
(dontRecurseIntoAttrs (
callPackage ../development/r-modules {
overrides = (config.rPackageOverrides or (_: { })) pkgs;
}
))
// {
__attrsFailEvaluation = true;
};
rPackages = dontRecurseIntoAttrs (
callPackage ../development/r-modules {
overrides = (config.rPackageOverrides or (_: { })) pkgs;
}
);
### SERVERS

View File

@ -74,6 +74,4 @@ in
erlang_27 = self.packagesWith self.interpreters.erlang_27;
erlang_26 = self.packagesWith self.interpreters.erlang_26;
};
__attrsFailEvaluation = true;
}

View File

@ -29,7 +29,6 @@ let
{
inherit coq lib;
coqPackages = self // {
__attrsFailEvaluation = true;
recurseForDerivations = false;
};

View File

@ -70,7 +70,6 @@ let
else
pkgs.extend (
final: _: {
__attrsFailEvaluation = true;
recurseForDerivations = false;
# The CUDA package set will be available as cudaPackages_x_y, so we need only update the aliases for the
# minor-versioned and unversioned package sets.

View File

@ -36,11 +36,7 @@ with self;
{
inherit perl;
perlPackages = self // {
perlPackages = self.perlPackages // {
__attrsFailEvaluation = true;
};
};
perlPackages = self;
# Check whether a derivation provides a perl module.
hasPerlModule = drv: drv ? perlModule;

View File

@ -30,31 +30,16 @@
}:
let
# __attrsFailEvaluation is a temporary workaround to get top-level
# eval to succeed (under builtins.tryEval) for the entire
# packageset, without deep invasve changes into individual
# packages.
#
# Now that CI has been added, ensuring that top-level eval will
# not be broken by any new commits, you should not add any new
# occurrences of __attrsFailEvaluation, and should remove them
# wherever you are able to (doing so will likely require deep
# adjustments within packages). Once all of the uses of
# __attrsFailEvaluation are removed, it will be deleted from the
# routine below. In the meantime,
#
# The intended semantics are that an attrpath rooted at pkgs is
# part of the (unfiltered) release jobset iff all of the following
# part of the (unfiltered) release jobset iff both of the following
# are true:
#
# 1. The attrpath leads to a value for which lib.isDerivation is true
#
# 2. No proper prefix of the attrpath has __attrsFailEvaluation=true
#
# 3. Any proper prefix of the attrpath at which lib.isDerivation
# 2. Any proper prefix of the attrpath at which lib.isDerivation
# is true also has __recurseIntoDerivationForReleaseJobs=true.
#
# The last condition is unfortunately necessary because there are
# The second condition is unfortunately necessary because there are
# Hydra release jobnames which have proper prefixes which are
# attrnames of derivations (!). We should probably restructure
# the job tree so that this is not the case.
@ -81,8 +66,6 @@ let
else if !(lib.isAttrs value) then
[ ]
else if (value.__attrsFailEvaluation or false) then
[ ]
else
lib.pipe value [
(builtins.mapAttrs (