top-level/release-haskell.nix: merge jobs using lib.recursiveUpdate

We have different attribute sets defining jobs: The list of base jobs,
the ones generated by versionedCompilerJobs and our added aggregate
jobs. During this we define `haskell` twice: Once for `haskell.compiler`
and once for `haskell.packages.*`. The `//` operator throws a way the
former which is fixed by using lib.recursiveUpdate.

Unfortunately makes the expression less pretty, but at least we have our
compiler jobs back.
This commit is contained in:
sternenseemann 2021-05-08 18:27:47 +02:00
parent 632c9c3b3a
commit df5b6c61ec

View File

@ -75,7 +75,10 @@ let
_: v: builtins.length (v.meta.maintainers or []) > 0 _: v: builtins.length (v.meta.maintainers or []) > 0
) set); ) set);
jobs = mapTestOn { recursiveUpdateMany = builtins.foldl' lib.recursiveUpdate {};
jobs = mapTestOn (recursiveUpdateMany [
{
haskellPackages = packagePlatforms pkgs.haskellPackages; haskellPackages = packagePlatforms pkgs.haskellPackages;
haskell.compiler = packagePlatforms pkgs.haskell.compiler; haskell.compiler = packagePlatforms pkgs.haskell.compiler;
@ -191,7 +194,8 @@ let
; ;
elmPackages.elm = pkgsPlatforms.elmPackages.elm; elmPackages.elm = pkgsPlatforms.elmPackages.elm;
} // versionedCompilerJobs { }
(versionedCompilerJobs {
# Packages which should be checked on more than the # Packages which should be checked on more than the
# default GHC version. This list can be used to test # default GHC version. This list can be used to test
# the state of the package set with newer compilers # the state of the package set with newer compilers
@ -208,7 +212,8 @@ let
language-nix = all; language-nix = all;
nix-paths = all; nix-paths = all;
titlecase = all; titlecase = all;
} // { })
{
mergeable = pkgs.releaseTools.aggregate { mergeable = pkgs.releaseTools.aggregate {
name = "haskell-updates-mergeable"; name = "haskell-updates-mergeable";
meta = { meta = {
@ -260,6 +265,7 @@ let
(name: jobs.haskellPackages."${name}") (name: jobs.haskellPackages."${name}")
(maintainedPkgNames pkgs.haskellPackages)); (maintainedPkgNames pkgs.haskellPackages));
}; };
}; }
]);
in jobs in jobs