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 { } // { plugins = callPackage ./plugins { };
__attrsFailEvaluation = true;
};
} }

View File

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

View File

@ -39,7 +39,6 @@ let
lib.trivial.pipe extensions [ lib.trivial.pipe extensions [
(map (extension: lib.nameValuePair extension.extensionUuid extension)) (map (extension: lib.nameValuePair extension.extensionUuid extension))
builtins.listToAttrs 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 # 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 # Keep the last three versions in here
gnomeExtensions = lib.trivial.pipe (gnome46Extensions // gnome47Extensions // gnome48Extensions) [ gnomeExtensions = lib.trivial.pipe (gnome46Extensions // gnome47Extensions // gnome48Extensions) [
(v: builtins.removeAttrs v [ "__attrsFailEvaluation" ])
# Apply some custom patches for automatically packaged extensions # Apply some custom patches for automatically packaged extensions
(callPackage ./extensionOverrides.nix { }) (callPackage ./extensionOverrides.nix { })
# Add all manually packaged extensions # Add all manually packaged extensions

View File

@ -89,12 +89,7 @@ in
in in
{ {
# Packages suitable for build-time, e.g. `build.rs`-type stuff. # Packages suitable for build-time, e.g. `build.rs`-type stuff.
buildRustPackages = (selectRustPackage pkgsBuildHost).packages.stable // { 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;
};
};
# Analogous to stdenv # Analogous to stdenv
rustPlatform = makeRustPlatform self.buildRustPackages; rustPlatform = makeRustPlatform self.buildRustPackages;
rustc-unwrapped = self.callPackage ./rustc.nix ({ rustc-unwrapped = self.callPackage ./rustc.nix ({

View File

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

View File

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

View File

@ -147,8 +147,5 @@ in
python = toPythonModule python; python = toPythonModule python;
# Don't take pythonPackages from "global" pkgs scope to avoid mixing python versions. # 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;
pythonPackages = self // {
__attrsFailEvaluation = true;
};
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -30,31 +30,16 @@
}: }:
let 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 # 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: # are true:
# #
# 1. The attrpath leads to a value for which lib.isDerivation is true # 1. The attrpath leads to a value for which lib.isDerivation is true
# #
# 2. No proper prefix of the attrpath has __attrsFailEvaluation=true # 2. Any proper prefix of the attrpath at which lib.isDerivation
#
# 3. 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 second condition is unfortunately necessary because there are
# Hydra release jobnames which have proper prefixes which are # Hydra release jobnames which have proper prefixes which are
# attrnames of derivations (!). We should probably restructure # attrnames of derivations (!). We should probably restructure
# the job tree so that this is not the case. # the job tree so that this is not the case.
@ -81,8 +66,6 @@ let
else if !(lib.isAttrs value) then else if !(lib.isAttrs value) then
[ ] [ ]
else if (value.__attrsFailEvaluation or false) then
[ ]
else else
lib.pipe value [ lib.pipe value [
(builtins.mapAttrs ( (builtins.mapAttrs (