From e6d45588ad829d825156d30b5b9c5642e45b37f9 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Fri, 12 Jul 2024 20:41:18 +0200 Subject: [PATCH] tests.haskell.cabalSdist: Prevent rebuilds when Nix files change The generated file sets its own directory as the source, including the generated file itself, which causes rebuilds when that file is reformatted. We can avoid this by overriding the source with a filtered version and using that throughout the tests. See https://github.com/NixOS/nixpkgs/pull/320572 for more context --- pkgs/test/haskell/cabalSdist/default.nix | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/pkgs/test/haskell/cabalSdist/default.nix b/pkgs/test/haskell/cabalSdist/default.nix index c0a9d406a503..4432e95ab56e 100644 --- a/pkgs/test/haskell/cabalSdist/default.nix +++ b/pkgs/test/haskell/cabalSdist/default.nix @@ -1,7 +1,18 @@ -{ lib, haskellPackages, runCommand }: +{ lib, haskell, haskellPackages, runCommand }: let - localRaw = haskellPackages.callPackage ./local/generated.nix {}; + src = lib.fileset.toSource { + root = ./local; + fileset = lib.fileset.unions [ + ./local/app + ./local/CHANGELOG.md + ./local/local.cabal + ]; + }; + # This prevents the source from depending on the formatting of the ./local/generated.nix file + localRaw = haskell.lib.compose.overrideSrc { + inherit src; + } (haskellPackages.callPackage ./local/generated.nix {}); in lib.recurseIntoAttrs rec { @@ -20,14 +31,14 @@ lib.recurseIntoAttrs rec { assumptionLocalHasDirectReference = runCommand "localHasDirectReference" { drvPath = builtins.unsafeDiscardOutputDependency localRaw.drvPath; } '' - grep ${./local} $drvPath >/dev/null + grep ${src} $drvPath >/dev/null touch $out ''; localHasNoDirectReference = runCommand "localHasNoDirectReference" { drvPath = builtins.unsafeDiscardOutputDependency localFromCabalSdist.drvPath; } '' - grep -v ${./local} $drvPath >/dev/null + grep -v ${src} $drvPath >/dev/null touch $out ''; }