From d2bc53a7fafbc757d1fcbeece4616b9b8ec28400 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Thu, 4 Dec 2014 13:31:45 +0200 Subject: [PATCH] ProposedPlan --- Stackage2/CorePackages.hs | 7 ++++--- Stackage2/Prelude.hs | 4 +++- Stackage2/ProposedPlan.hs | 30 ++++++++++++++++++++++++++++++ stackage.cabal | 5 ++++- 4 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 Stackage2/ProposedPlan.hs diff --git a/Stackage2/CorePackages.hs b/Stackage2/CorePackages.hs index acee6fda..a0687233 100644 --- a/Stackage2/CorePackages.hs +++ b/Stackage2/CorePackages.hs @@ -1,10 +1,11 @@ -{-# LANGUAGE NoImplicitPrelude, OverloadedStrings #-} +{-# LANGUAGE NoImplicitPrelude #-} +{-# LANGUAGE OverloadedStrings #-} module Stackage2.CorePackages ( getCorePackages ) where -import Stackage2.Prelude -import qualified Data.Text as T +import qualified Data.Text as T +import Stackage2.Prelude -- | Get a @Map@ of all of the core packages. Core packages are defined as -- packages which ship with GHC itself. diff --git a/Stackage2/Prelude.hs b/Stackage2/Prelude.hs index d57b5d57..85d2ea79 100644 --- a/Stackage2/Prelude.hs +++ b/Stackage2/Prelude.hs @@ -12,7 +12,7 @@ import Data.Conduit.Process as X import Data.Typeable (TypeRep, typeOf) import Distribution.Package as X (PackageName (PackageName)) import qualified Distribution.Text as DT -import Distribution.Version as X (Version (..)) +import Distribution.Version as X (Version (..), VersionRange) import System.Exit (ExitCode (ExitSuccess)) unPackageName :: PackageName -> Text @@ -71,3 +71,5 @@ withCheckedProcess cp f = do ec <- waitForStreamingProcess sph checkExitCode cp ec return res + +newtype Maintainer = Maintainer { unMaintainer :: Text } diff --git a/Stackage2/ProposedPlan.hs b/Stackage2/ProposedPlan.hs new file mode 100644 index 00000000..52ae6304 --- /dev/null +++ b/Stackage2/ProposedPlan.hs @@ -0,0 +1,30 @@ +{-# LANGUAGE NoImplicitPrelude #-} +{-# LANGUAGE OverloadedStrings #-} +-- | Get the proposed build plan. +module Stackage2.ProposedPlan + ( ProposedPlan (..) + , defaultProposedPlan + ) where + +import Stackage2.Prelude +import qualified Stackage.Config as Old +import qualified Stackage.Types as Old + +data ProposedPlan = ProposedPlan + { ppPackages :: Map PackageName (VersionRange, Maintainer) + -- ^ This does not include core packages or dependencies, just packages + -- added by some maintainer. + , ppExpectedFailures :: Set PackageName + -- ^ At some point in the future, we should split this into Haddock + -- failures, test failures, etc. + } + +-- | The proposed plan from the requirements provided by contributors. +defaultProposedPlan :: ProposedPlan +defaultProposedPlan = ProposedPlan + { ppPackages = fmap (Maintainer . pack . Old.unMaintainer) + <$> Old.defaultStablePackages ghcVer False + , ppExpectedFailures = Old.defaultExpectedFailures ghcVer False + } + where + ghcVer = Old.GhcMajorVersion 7 8 diff --git a/stackage.cabal b/stackage.cabal index 2133edbb..9f85609f 100644 --- a/stackage.cabal +++ b/stackage.cabal @@ -9,9 +9,10 @@ author: Michael Snoyman maintainer: michael@fpcomplete.com category: Distribution build-type: Simple -cabal-version: >=1.8 +cabal-version: >=1.10 library + default-language: Haskell2010 exposed-modules: Stackage.NarrowDatabase Stackage.LoadDatabase Stackage.ModuleNameConflict @@ -31,6 +32,7 @@ library Stackage.ServerFiles Stackage2.Prelude + Stackage2.ProposedPlan Stackage2.CorePackages build-depends: base >= 4 && < 5 , containers @@ -51,6 +53,7 @@ library , text executable stackage + default-language: Haskell2010 hs-source-dirs: app main-is: stackage.hs build-depends: base