diff options
author | Sergei Trofimovich <slyich@gmail.com> | 2022-07-26 22:22:27 +0100 |
---|---|---|
committer | Adam Joseph <adam@westernsemico.com> | 2022-09-12 12:53:31 -0700 |
commit | e7bafc814c26812bdad587f347d9a1856287719b (patch) | |
tree | 50eccf24f42a8820341f4e11d9f53f0dcee3162f /pkgs/top-level/release.nix | |
parent | 47de66b1a437c8dbef29b03be51dedb2274d0006 (diff) |
pkgs/top-level/release.nix: disallow symbol clash between 'pkgs' and local jobs
This change exposes symbol override that accidentally caused job loss on hydra: $ nix repl ./release.nix error: jobs: Unexpected attribute collision between 'jobs' and 'pkgs': stdenvBootstrapTools Added assert makes sure attribute clashes would not be re-introduced.
Diffstat (limited to 'pkgs/top-level/release.nix')
-rw-r--r-- | pkgs/top-level/release.nix | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index d96f742d5d3f4..61116328b29f5 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -30,7 +30,7 @@ let "aarch64" ] (arch: builtins.elem "${arch}-darwin" systemsWithAnySupport); - jobs = + nonPackageJobs = { tarball = import ./make-tarball.nix { inherit pkgs nixpkgs officialRelease supportedSystems; }; metrics = import ./metrics.nix { inherit pkgs nixpkgs; }; @@ -200,7 +200,15 @@ let }; }; - } // (mapTestOn ((packagePlatforms pkgs) // { + }; + + # Do not allow attribute collision between jobs inserted in + # 'nonPackageAttrs' and jobs pulled in from 'pkgs'. + # Conflicts usually cause silent job drops like in + # https://github.com/NixOS/nixpkgs/pull/182058 + jobs = lib.attrsets.unionOfDisjoint + nonPackageJobs + (mapTestOn ((packagePlatforms pkgs) // { haskell.compiler = packagePlatforms pkgs.haskell.compiler; haskellPackages = packagePlatforms pkgs.haskellPackages; idrisPackages = packagePlatforms pkgs.idrisPackages; |