let TYPES = ../types.dhall let length = https://prelude.dhall-lang.org/List/length let show = https://prelude.dhall-lang.org/Natural/show in \(stackage-resolver : Text) -> \(pkg-set : TYPES.PkgSet) -> \ ( pkg-config : { constraints : List TYPES.PkgVer , source-pkgs : { deps-external : List TYPES.SourceRepoPkg , deps-internal : List TYPES.SourceRepoPkg , forks-external : List TYPES.SourceRepoPkg , forks-internal : List TYPES.SourceRepoPkg } } ) -> let deps-external = pkg-config.source-pkgs.deps-external let deps-internal = pkg-config.source-pkgs.deps-internal let forks-external = pkg-config.source-pkgs.forks-external let forks-internal = pkg-config.source-pkgs.forks-internal let source-deps = deps-external # deps-internal # forks-external # forks-internal let count = \(xs : List TYPES.SourceRepoPkg) -> show (length TYPES.SourceRepoPkg xs) let countPkgs = \(xs : List Text) -> show (length Text xs) let pkgs = merge { AllPkgs = \(pkgs : List Text) -> pkgs , PkgUpgrade = \(pkgs : TYPES.PkgTodoList) -> pkgs.done } pkg-set let pkgs-comment = merge { AllPkgs = \(pkgs : List Text) -> "-- We have ${countPkgs pkgs} packages." , PkgUpgrade = \(pkgs : TYPES.PkgTodoList) -> "-- We have upgraded ${countPkgs pkgs.done} packages and have ${countPkgs pkgs.todo} yet to do." } pkg-set let cabal = ./cabal/package.dhall in '' import: ./project-stackage/${stackage-resolver}.config ${pkgs-comment} ${cabal.packages pkgs} -- We have ${count source-deps} source packages listed in this order: -- * external ${count deps-external} -- * internal ${count deps-internal} -- * external forks ${count forks-external} -- * internal forks ${count forks-internal} -- Source Packages, external (3rd party). ${cabal.repo-items deps-external} -- Source Packages, internal to this organisation (private and public). ${cabal.repo-items deps-internal} -- Source Packages, external (3rd party) forks of other repositories. -- Can we help upstream? ${cabal.repo-items forks-external} -- Source Packages, internal forks of other repositories. -- Can we upstream and unfork? ${cabal.repo-items forks-internal} -- Constraints are equivalent to stack package-version extra dependencies. ${cabal.constraints pkg-config.constraints} ''