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:
parent
632c9c3b3a
commit
df5b6c61ec
@ -75,191 +75,197 @@ 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 {};
|
||||||
haskellPackages = packagePlatforms pkgs.haskellPackages;
|
|
||||||
haskell.compiler = packagePlatforms pkgs.haskell.compiler;
|
|
||||||
|
|
||||||
tests = let
|
jobs = mapTestOn (recursiveUpdateMany [
|
||||||
testPlatforms = packagePlatforms pkgs.tests;
|
{
|
||||||
in {
|
haskellPackages = packagePlatforms pkgs.haskellPackages;
|
||||||
haskell = testPlatforms.haskell;
|
haskell.compiler = packagePlatforms pkgs.haskell.compiler;
|
||||||
writers = testPlatforms.writers;
|
|
||||||
};
|
|
||||||
|
|
||||||
# top-level packages that depend on haskellPackages
|
tests = let
|
||||||
inherit (pkgsPlatforms)
|
testPlatforms = packagePlatforms pkgs.tests;
|
||||||
agda
|
in {
|
||||||
arion
|
haskell = testPlatforms.haskell;
|
||||||
bench
|
writers = testPlatforms.writers;
|
||||||
bustle
|
|
||||||
blucontrol
|
|
||||||
cabal-install
|
|
||||||
cabal2nix
|
|
||||||
cachix
|
|
||||||
carp
|
|
||||||
cedille
|
|
||||||
client-ip-echo
|
|
||||||
darcs
|
|
||||||
dconf2nix
|
|
||||||
dhall
|
|
||||||
dhall-bash
|
|
||||||
dhall-docs
|
|
||||||
dhall-lsp-server
|
|
||||||
dhall-json
|
|
||||||
dhall-nix
|
|
||||||
dhall-text
|
|
||||||
diagrams-builder
|
|
||||||
elm2nix
|
|
||||||
fffuu
|
|
||||||
futhark
|
|
||||||
ghcid
|
|
||||||
git-annex
|
|
||||||
git-brunch
|
|
||||||
gitit
|
|
||||||
glirc
|
|
||||||
hadolint
|
|
||||||
haskell-ci
|
|
||||||
haskell-language-server
|
|
||||||
hasura-graphql-engine
|
|
||||||
hci
|
|
||||||
hercules-ci-agent
|
|
||||||
hinit
|
|
||||||
hedgewars
|
|
||||||
hledger
|
|
||||||
hledger-iadd
|
|
||||||
hledger-interest
|
|
||||||
hledger-ui
|
|
||||||
hledger-web
|
|
||||||
hlint
|
|
||||||
hpack
|
|
||||||
hyper-haskell
|
|
||||||
hyper-haskell-server-with-packages
|
|
||||||
icepeak
|
|
||||||
idris
|
|
||||||
ihaskell
|
|
||||||
jl
|
|
||||||
koka
|
|
||||||
krank
|
|
||||||
lambdabot
|
|
||||||
ldgallery
|
|
||||||
madlang
|
|
||||||
matterhorn
|
|
||||||
mueval
|
|
||||||
neuron-notes
|
|
||||||
niv
|
|
||||||
nix-delegate
|
|
||||||
nix-deploy
|
|
||||||
nix-diff
|
|
||||||
nix-linter
|
|
||||||
nix-output-monitor
|
|
||||||
nix-script
|
|
||||||
nix-tree
|
|
||||||
nixfmt
|
|
||||||
nota
|
|
||||||
ormolu
|
|
||||||
pandoc
|
|
||||||
pakcs
|
|
||||||
petrinizer
|
|
||||||
place-cursor-at
|
|
||||||
pinboard-notes-backup
|
|
||||||
pretty-simple
|
|
||||||
shake
|
|
||||||
shellcheck
|
|
||||||
sourceAndTags
|
|
||||||
spacecookie
|
|
||||||
spago
|
|
||||||
splot
|
|
||||||
stack
|
|
||||||
stack2nix
|
|
||||||
stutter
|
|
||||||
stylish-haskell
|
|
||||||
taffybar
|
|
||||||
tamarin-prover
|
|
||||||
taskell
|
|
||||||
termonad-with-packages
|
|
||||||
tldr-hs
|
|
||||||
tweet-hs
|
|
||||||
update-nix-fetchgit
|
|
||||||
uqm
|
|
||||||
uuagc
|
|
||||||
vaultenv
|
|
||||||
wstunnel
|
|
||||||
xmobar
|
|
||||||
xmonad-with-packages
|
|
||||||
yi
|
|
||||||
zsh-git-prompt
|
|
||||||
;
|
|
||||||
|
|
||||||
elmPackages.elm = pkgsPlatforms.elmPackages.elm;
|
|
||||||
} // versionedCompilerJobs {
|
|
||||||
# Packages which should be checked on more than the
|
|
||||||
# default GHC version. This list can be used to test
|
|
||||||
# the state of the package set with newer compilers
|
|
||||||
# and to confirm that critical packages for the
|
|
||||||
# package sets (like Cabal, jailbreak-cabal) are
|
|
||||||
# working as expected.
|
|
||||||
cabal-install = all;
|
|
||||||
Cabal_3_4_0_0 = with compilerNames; [ ghc884 ghc8104 ];
|
|
||||||
funcmp = all;
|
|
||||||
haskell-language-server = all;
|
|
||||||
hoogle = all;
|
|
||||||
hsdns = all;
|
|
||||||
jailbreak-cabal = all;
|
|
||||||
language-nix = all;
|
|
||||||
nix-paths = all;
|
|
||||||
titlecase = all;
|
|
||||||
} // {
|
|
||||||
mergeable = pkgs.releaseTools.aggregate {
|
|
||||||
name = "haskell-updates-mergeable";
|
|
||||||
meta = {
|
|
||||||
description = ''
|
|
||||||
Critical haskell packages that should work at all times,
|
|
||||||
serves as minimum requirement for an update merge
|
|
||||||
'';
|
|
||||||
maintainers = lib.teams.haskell.members;
|
|
||||||
};
|
};
|
||||||
constituents = accumulateDerivations [
|
|
||||||
# haskell specific tests
|
# top-level packages that depend on haskellPackages
|
||||||
jobs.tests.haskell
|
inherit (pkgsPlatforms)
|
||||||
jobs.tests.writers # writeHaskell{,Bin}
|
agda
|
||||||
# important top-level packages
|
arion
|
||||||
jobs.cabal-install
|
bench
|
||||||
jobs.cabal2nix
|
bustle
|
||||||
jobs.cachix
|
blucontrol
|
||||||
jobs.darcs
|
cabal-install
|
||||||
jobs.haskell-language-server
|
cabal2nix
|
||||||
jobs.hledger
|
cachix
|
||||||
jobs.hledger-ui
|
carp
|
||||||
jobs.hpack
|
cedille
|
||||||
jobs.niv
|
client-ip-echo
|
||||||
jobs.pandoc
|
darcs
|
||||||
jobs.stack
|
dconf2nix
|
||||||
jobs.stylish-haskell
|
dhall
|
||||||
# important haskell (library) packages
|
dhall-bash
|
||||||
jobs.haskellPackages.cabal-plan
|
dhall-docs
|
||||||
jobs.haskellPackages.distribution-nixpkgs
|
dhall-lsp-server
|
||||||
jobs.haskellPackages.hackage-db
|
dhall-json
|
||||||
jobs.haskellPackages.policeman
|
dhall-nix
|
||||||
jobs.haskellPackages.xmonad
|
dhall-text
|
||||||
jobs.haskellPackages.xmonad-contrib
|
diagrams-builder
|
||||||
# haskell packages maintained by @peti
|
elm2nix
|
||||||
# imported from the old hydra jobset
|
fffuu
|
||||||
jobs.haskellPackages.hopenssl
|
futhark
|
||||||
jobs.haskellPackages.hsemail
|
ghcid
|
||||||
jobs.haskellPackages.hsyslog
|
git-annex
|
||||||
];
|
git-brunch
|
||||||
};
|
gitit
|
||||||
maintained = pkgs.releaseTools.aggregate {
|
glirc
|
||||||
name = "maintained-haskell-packages";
|
hadolint
|
||||||
meta = {
|
haskell-ci
|
||||||
description = "Aggregate jobset of all haskell packages with a maintainer";
|
haskell-language-server
|
||||||
maintainers = lib.teams.haskell.members;
|
hasura-graphql-engine
|
||||||
|
hci
|
||||||
|
hercules-ci-agent
|
||||||
|
hinit
|
||||||
|
hedgewars
|
||||||
|
hledger
|
||||||
|
hledger-iadd
|
||||||
|
hledger-interest
|
||||||
|
hledger-ui
|
||||||
|
hledger-web
|
||||||
|
hlint
|
||||||
|
hpack
|
||||||
|
hyper-haskell
|
||||||
|
hyper-haskell-server-with-packages
|
||||||
|
icepeak
|
||||||
|
idris
|
||||||
|
ihaskell
|
||||||
|
jl
|
||||||
|
koka
|
||||||
|
krank
|
||||||
|
lambdabot
|
||||||
|
ldgallery
|
||||||
|
madlang
|
||||||
|
matterhorn
|
||||||
|
mueval
|
||||||
|
neuron-notes
|
||||||
|
niv
|
||||||
|
nix-delegate
|
||||||
|
nix-deploy
|
||||||
|
nix-diff
|
||||||
|
nix-linter
|
||||||
|
nix-output-monitor
|
||||||
|
nix-script
|
||||||
|
nix-tree
|
||||||
|
nixfmt
|
||||||
|
nota
|
||||||
|
ormolu
|
||||||
|
pandoc
|
||||||
|
pakcs
|
||||||
|
petrinizer
|
||||||
|
place-cursor-at
|
||||||
|
pinboard-notes-backup
|
||||||
|
pretty-simple
|
||||||
|
shake
|
||||||
|
shellcheck
|
||||||
|
sourceAndTags
|
||||||
|
spacecookie
|
||||||
|
spago
|
||||||
|
splot
|
||||||
|
stack
|
||||||
|
stack2nix
|
||||||
|
stutter
|
||||||
|
stylish-haskell
|
||||||
|
taffybar
|
||||||
|
tamarin-prover
|
||||||
|
taskell
|
||||||
|
termonad-with-packages
|
||||||
|
tldr-hs
|
||||||
|
tweet-hs
|
||||||
|
update-nix-fetchgit
|
||||||
|
uqm
|
||||||
|
uuagc
|
||||||
|
vaultenv
|
||||||
|
wstunnel
|
||||||
|
xmobar
|
||||||
|
xmonad-with-packages
|
||||||
|
yi
|
||||||
|
zsh-git-prompt
|
||||||
|
;
|
||||||
|
|
||||||
|
elmPackages.elm = pkgsPlatforms.elmPackages.elm;
|
||||||
|
}
|
||||||
|
(versionedCompilerJobs {
|
||||||
|
# Packages which should be checked on more than the
|
||||||
|
# default GHC version. This list can be used to test
|
||||||
|
# the state of the package set with newer compilers
|
||||||
|
# and to confirm that critical packages for the
|
||||||
|
# package sets (like Cabal, jailbreak-cabal) are
|
||||||
|
# working as expected.
|
||||||
|
cabal-install = all;
|
||||||
|
Cabal_3_4_0_0 = with compilerNames; [ ghc884 ghc8104 ];
|
||||||
|
funcmp = all;
|
||||||
|
haskell-language-server = all;
|
||||||
|
hoogle = all;
|
||||||
|
hsdns = all;
|
||||||
|
jailbreak-cabal = all;
|
||||||
|
language-nix = all;
|
||||||
|
nix-paths = all;
|
||||||
|
titlecase = all;
|
||||||
|
})
|
||||||
|
{
|
||||||
|
mergeable = pkgs.releaseTools.aggregate {
|
||||||
|
name = "haskell-updates-mergeable";
|
||||||
|
meta = {
|
||||||
|
description = ''
|
||||||
|
Critical haskell packages that should work at all times,
|
||||||
|
serves as minimum requirement for an update merge
|
||||||
|
'';
|
||||||
|
maintainers = lib.teams.haskell.members;
|
||||||
|
};
|
||||||
|
constituents = accumulateDerivations [
|
||||||
|
# haskell specific tests
|
||||||
|
jobs.tests.haskell
|
||||||
|
jobs.tests.writers # writeHaskell{,Bin}
|
||||||
|
# important top-level packages
|
||||||
|
jobs.cabal-install
|
||||||
|
jobs.cabal2nix
|
||||||
|
jobs.cachix
|
||||||
|
jobs.darcs
|
||||||
|
jobs.haskell-language-server
|
||||||
|
jobs.hledger
|
||||||
|
jobs.hledger-ui
|
||||||
|
jobs.hpack
|
||||||
|
jobs.niv
|
||||||
|
jobs.pandoc
|
||||||
|
jobs.stack
|
||||||
|
jobs.stylish-haskell
|
||||||
|
# important haskell (library) packages
|
||||||
|
jobs.haskellPackages.cabal-plan
|
||||||
|
jobs.haskellPackages.distribution-nixpkgs
|
||||||
|
jobs.haskellPackages.hackage-db
|
||||||
|
jobs.haskellPackages.policeman
|
||||||
|
jobs.haskellPackages.xmonad
|
||||||
|
jobs.haskellPackages.xmonad-contrib
|
||||||
|
# haskell packages maintained by @peti
|
||||||
|
# imported from the old hydra jobset
|
||||||
|
jobs.haskellPackages.hopenssl
|
||||||
|
jobs.haskellPackages.hsemail
|
||||||
|
jobs.haskellPackages.hsyslog
|
||||||
|
];
|
||||||
};
|
};
|
||||||
constituents = accumulateDerivations
|
maintained = pkgs.releaseTools.aggregate {
|
||||||
(builtins.map
|
name = "maintained-haskell-packages";
|
||||||
(name: jobs.haskellPackages."${name}")
|
meta = {
|
||||||
(maintainedPkgNames pkgs.haskellPackages));
|
description = "Aggregate jobset of all haskell packages with a maintainer";
|
||||||
};
|
maintainers = lib.teams.haskell.members;
|
||||||
};
|
};
|
||||||
|
constituents = accumulateDerivations
|
||||||
|
(builtins.map
|
||||||
|
(name: jobs.haskellPackages."${name}")
|
||||||
|
(maintainedPkgNames pkgs.haskellPackages));
|
||||||
|
};
|
||||||
|
}
|
||||||
|
]);
|
||||||
|
|
||||||
in jobs
|
in jobs
|
||||||
|
Loading…
x
Reference in New Issue
Block a user