let sources = import ./sources.nix; lib = import (sources."nixpkgs" + "/lib"); inherit (import sources."project.nix" { inherit lib; }) dimension; in dimension "Nixpkgs version" { "nixos-19_03" = { nixpkgsSource = "nixpkgs"; isReferenceNixpkgs = true; enableDoc = false; }; "nixos-19_09" = { nixpkgsSource = "nixos-19.09"; enableDoc = true; }; "nixos-unstable" = { nixpkgsSource = "nixos-unstable"; enableDoc = true; }; } ( _name: { nixpkgsSource, isReferenceNixpkgs ? false, enableDoc ? true }: dimension "System" { "x86_64-linux" = { isReferenceTarget = isReferenceNixpkgs; }; # TODO: darwin # "x86_64-darwin" = { enableNixOSTests = false; }; } ( system: { isReferenceTarget ? false }: let pkgs = import ./. { inherit system; nixpkgsSrc = sources.${nixpkgsSource}; }; in { inherit (pkgs) arion tests; } // lib.optionalAttrs enableDoc { inherit (pkgs) doc doc-options doc-options-check; } // lib.optionalAttrs isReferenceTarget { inherit (pkgs.arion-project.haskellPkgs) arion-compose-checked; } ) )