@@ -2,7 +2,7 @@
22module Stackage.Config where
33
44import Control.Monad (when)
5−import Control.Monad.Trans.Writer (execWriter, tell)
5+import Control.Monad.Trans.Writer (Writer, execWriter, tell)
66import Data.Char (toLower)
77import qualified Data.Map as Map
88import Data.Maybe (fromMaybe)
@@ -191,6 +191,7 @@ defaultStablePackages :: GhcMajorVersion
191191 -> Bool -- ^ using haskell platform?
192192 -> Map PackageName (VersionRange, Maintainer)
193193defaultStablePackages ghcVer requireHP = unPackageMap $ execWriter $ do
194+ when (ghcVer == GhcMajorVersion 7 8 && requireHP) haskellPlatform78
194195 mapM_ (add "michael@snoyman.com") $ words =<<
195196 [ "yesod yesod-newsfeed yesod-sitemap yesod-static yesod-test yesod-bin"
196197 , "markdown mime-mail-ses"
@@ -515,12 +516,78 @@ defaultStablePackages ghcVer requireHP = unPackageMap $ execWriter $ do
515516
516517 -- https://github.com/fpco/stackage/issues/277
517518 addRange "Michael Snoyman" "pandoc" "< 1.13"
518− where
519− add maintainer package = addRange maintainer package "-any"
520− addRange maintainer package range =
521− case simpleParse range of
522− Nothing -> error $ "Invalid range " ++ show range ++ " for " ++ package
523− Just range' -> tell $ PackageMap $ Map.singleton (PackageName package) (range', Maintainer maintainer)
519+
520+add :: String -> String -> Writer PackageMap ()
521+add maintainer package = addRange maintainer package "-any"
522+
523+addRange :: String -> String -> String -> Writer PackageMap ()
524+addRange maintainer package range =
525+ case simpleParse range of
526+ Nothing -> error $ "Invalid range " ++ show range ++ " for " ++ package
527+ Just range' -> tell $ PackageMap $ Map.singleton (PackageName package) (range', Maintainer maintainer)
528+
529+-- | Hard coded Haskell Platform versions
530+haskellPlatform78 :: Writer PackageMap ()
531+haskellPlatform78 = do
532+ addRange "Haskell Platform" "ghc" "== 7.8.3"
533+ addRange "Haskell Platform" "haddock" "== 2.14.2"
534+ addRange "Haskell Platform" "array" "== 0.5.0.0"
535+ addRange "Haskell Platform" "base" "== 4.7.0.1"
536+ addRange "Haskell Platform" "bytestring" "== 0.10.4.0"
537+ addRange "Haskell Platform" "Cabal" "== 1.18.1.3"
538+ addRange "Haskell Platform" "containers" "== 0.5.5.1"
539+ addRange "Haskell Platform" "deepseq" "== 1.3.0.2"
540+ addRange "Haskell Platform" "directory" "== 1.2.1.0"
541+ addRange "Haskell Platform" "filepath" "== 1.3.0.2"
542+ addRange "Haskell Platform" "haskell2010" "== 1.1.2.0"
543+ addRange "Haskell Platform" "haskell98" "== 2.0.0.3"
544+ addRange "Haskell Platform" "hpc" "== 0.6.0.1"
545+ addRange "Haskell Platform" "old-locale" "== 1.0.0.6"
546+ addRange "Haskell Platform" "old-time" "== 1.1.0.2"
547+ addRange "Haskell Platform" "pretty" "== 1.1.1.1"
548+ addRange "Haskell Platform" "process" "== 1.2.0.0"
549+ addRange "Haskell Platform" "template-haskell" "== 2.9.0.0"
550+ addRange "Haskell Platform" "time" "== 1.4.2"
551+ addRange "Haskell Platform" "transformers" "== 0.3.0.0"
552+ addRange "Haskell Platform" "unix" "== 2.7.0.1"
553+ addRange "Haskell Platform" "xhtml" "== 3000.2.1"
554+ addRange "Haskell Platform" "async" "== 2.0.1.5"
555+ addRange "Haskell Platform" "attoparsec" "== 0.10.4.0"
556+ addRange "Haskell Platform" "case-insensitive" "== 1.1.0.3"
557+ addRange "Haskell Platform" "fgl" "== 5.5.0.1"
558+ addRange "Haskell Platform" "GLURaw" "== 1.4.0.1"
559+ addRange "Haskell Platform" "GLUT" "== 2.5.1.1"
560+ addRange "Haskell Platform" "hashable" "== 1.2.2.0"
561+ addRange "Haskell Platform" "haskell-src" "== 1.0.1.6"
562+ addRange "Haskell Platform" "html" "== 1.0.1.2"
563+ addRange "Haskell Platform" "HTTP" "== 4000.2.10"
564+ addRange "Haskell Platform" "HUnit" "== 1.2.5.2"
565+ addRange "Haskell Platform" "mtl" "== 2.1.3.1"
566+ addRange "Haskell Platform" "network" "== 2.4.2.3"
567+ addRange "Haskell Platform" "OpenGL" "== 2.9.2.0"
568+ addRange "Haskell Platform" "OpenGLRaw" "== 1.5.0.0"
569+ addRange "Haskell Platform" "parallel" "== 3.2.0.4"
570+ addRange "Haskell Platform" "parsec" "== 3.1.5"
571+ addRange "Haskell Platform" "primitive" "== 0.5.2.1"
572+ addRange "Haskell Platform" "QuickCheck" "== 2.6"
573+ addRange "Haskell Platform" "random" "== 1.0.1.1"
574+ addRange "Haskell Platform" "regex-base" "== 0.93.2"
575+ addRange "Haskell Platform" "regex-compat" "== 0.95.1"
576+ addRange "Haskell Platform" "regex-posix" "== 0.95.2"
577+ addRange "Haskell Platform" "split" "== 0.2.2"
578+ addRange "Haskell Platform" "stm" "== 2.4.2"
579+ addRange "Haskell Platform" "syb" "== 0.4.1"
580+ addRange "Haskell Platform" "text" "== 1.1.0.0"
581+ addRange "Haskell Platform" "transformers" "== 0.3.0.0"
582+ addRange "Haskell Platform" "unordered-containers" "== 0.2.4.0"
583+ addRange "Haskell Platform" "vector" "== 0.10.9.1"
584+ addRange "Haskell Platform" "xhtml" "== 3000.2.1"
585+ addRange "Haskell Platform" "zlib" "== 0.5.4.1"
586+ addRange "Haskell Platform" "alex" "== 3.1.3"
587+ addRange "Haskell Platform" "cabal-install" "== 1.18.0.5"
588+ addRange "Haskell Platform" "haddock" "== 2.14.2"
589+ addRange "Haskell Platform" "happy" "== 1.19.4"
590+ addRange "Haskell Platform" "hscolour" "== 1.20.3"
524591
525592-- | Replacement Github users. This is useful when a project is owned by an
526593-- organization. It also lets you ping multiple users.