on master help sign in
Merge branch 'multi-github-mentions' of https://github.com/bergmark/stackage
a2ac2c3Michael Snoyman
Stackage/BuildPlan.hs+3−2
@@ -12,6 +12,7 @@ import Distribution.Text (display, simpleParse)
12import Stackage.Types
12import Stackage.Types
13import qualified System.IO.UTF8
13import qualified System.IO.UTF8
14import Data.Char (isSpace)
14import Data.Char (isSpace)
15+import Stackage.Util
15
16
16readBuildPlan :: FilePath -> IO BuildPlan
17readBuildPlan :: FilePath -> IO BuildPlan
17readBuildPlan fp = do
18readBuildPlan fp = do
@@ -95,7 +96,7 @@ instance AsString SelectedPackageInfo where
95 toString SelectedPackageInfo {..} = unwords
96 toString SelectedPackageInfo {..} = unwords
96 [ display spiVersion
97 [ display spiVersion
97 , toString spiHasTests
98 , toString spiHasTests
98− , maybe "@" ("@" ++) spiGithubUser
99+ , (\v -> if null v then "@" else v) $ githubMentions spiGithubUser
99 , unMaintainer spiMaintainer
100 , unMaintainer spiMaintainer
100 ]
101 ]
101 fromString s1 = do
102 fromString s1 = do
@@ -105,7 +106,7 @@ instance AsString SelectedPackageInfo where
105 Right (SelectedPackageInfo
106 Right (SelectedPackageInfo
106 { spiVersion = version
107 { spiVersion = version
107 , spiHasTests = hasTests
108 , spiHasTests = hasTests
108− , spiGithubUser = gu
109+ , spiGithubUser = [gu]
109 , spiMaintainer = Maintainer m
110 , spiMaintainer = Maintainer m
110 }, "")
111 }, "")
111
112
Stackage/Config.hs+8−8
@@ -485,15 +485,15 @@ defaultStablePackages ghcVer requireHP = unPackageMap $ execWriter $ do
485-- organization. See:
485-- organization. See:
486--
486--
487-- https://github.com/fpco/stackage/issues/226#issuecomment-45644142
487-- https://github.com/fpco/stackage/issues/226#issuecomment-45644142
488−convertGithubUser :: String -> String
488+convertGithubUser :: String -> [String]
489convertGithubUser x =
489convertGithubUser x =
490− fromMaybe x $ Map.lookup (map toLower x) pairs
490+ fromMaybe [x] $ Map.lookup (map toLower x) pairs
491 where
491 where
492 pairs = Map.fromList
492 pairs = Map.fromList
493− [ ("diagrams", "diagrams/Core")
493+ [ ("diagrams", ["diagrams/Core"])
494− , ("yesodweb", "snoyberg")
494+ , ("yesodweb", ["snoyberg"])
495− , ("fpco", "snoyberg")
495+ , ("fpco", ["snoyberg"])
496− , ("faylang", "bergmark")
496+ , ("faylang", ["bergmark"])
497− , ("silkapp", "silkapp/stackage")
497+ , ("silkapp", ["bergmark"])
498− , ("snapframework","mightybyte")
498+ , ("snapframework",["mightybyte"])
499 ]
499 ]
Stackage/InstallInfo.hs+2−4
@@ -153,9 +153,7 @@ showDep (PackageName name, BuildInfo {..}) =
153 , showVersion biVersion
153 , showVersion biVersion
154 , " ("
154 , " ("
155 , unMaintainer biMaintainer
155 , unMaintainer biMaintainer
156− , case biGithubUser of
156+ , " " ++ githubMentions biGithubUser
157− Nothing -> ""
158− Just x -> " @" ++ x
159 , ")"
157 , ")"
160 , ": "
158 , ": "
161 , unwords $ map unP biUsers
159 , unwords $ map unP biUsers
@@ -194,7 +192,7 @@ checkBadVersions settings core (PackageDB pdb) buildPlan =
194 , " ("
192 , " ("
195 , unMaintainer $ biMaintainer bi
193 , unMaintainer $ biMaintainer bi
196 , case Map.lookup name pdb of
194 , case Map.lookup name pdb of
197− Just PackageInfo { piGithubUser = Just gu } -> " @" ++ gu
195+ Just PackageInfo { piGithubUser = gus } -> " " ++ githubMentions gus
198 _ -> ""
196 _ -> ""
199 , ")"
197 , ")"
200 ]
198 ]
Stackage/LoadDatabase.hs+2−2
@@ -10,7 +10,7 @@ import qualified Data.ByteString.Lazy.Char8 as L8
10import Data.List (stripPrefix)
10import Data.List (stripPrefix)
11import qualified Data.Map as Map
11import qualified Data.Map as Map
12import Data.Maybe (catMaybes, listToMaybe,
12import Data.Maybe (catMaybes, listToMaybe,
13− mapMaybe)
13+ mapMaybe, fromMaybe)
14import Data.Monoid (Monoid (..))
14import Data.Monoid (Monoid (..))
15import Data.Set (member)
15import Data.Set (member)
16import qualified Data.Set as Set
16import qualified Data.Set as Set
@@ -168,7 +168,7 @@ loadPackageDB settings coreMap core deps = do
168 , piBuildToolsAll = buildToolsExe' `Set.union` buildToolsOther'
168 , piBuildToolsAll = buildToolsExe' `Set.union` buildToolsOther'
169 , piGPD = mgpd
169 , piGPD = mgpd
170 , piExecs = execs
170 , piExecs = execs
171− , piGithubUser = mgithub
171+ , piGithubUser = fromMaybe [] mgithub
172 }
172 }
173
173
174 parseDeps p lbs =
174 parseDeps p lbs =
Stackage/Test.hs+1−3
@@ -153,9 +153,7 @@ runTestSuite cabalVersion settings testdir (packageName, SelectedPackageInfo {..
153 , package
153 , package
154 , "("
154 , "("
155 , unMaintainer spiMaintainer
155 , unMaintainer spiMaintainer
156− , case spiGithubUser of
156+ , githubMentions spiGithubUser
157− Nothing -> ""
158− Just x -> " @" ++ x
159 , ")"
157 , ")"
160 ]
158 ]
161 rm_r dir
159 rm_r dir
Stackage/Types.hs+3−3
@@ -34,7 +34,7 @@ data PackageInfo = PackageInfo
34 , piBuildToolsAll :: Set Executable -- ^ required for all stanzas
34 , piBuildToolsAll :: Set Executable -- ^ required for all stanzas
35 , piGPD :: Maybe GenericPackageDescription
35 , piGPD :: Maybe GenericPackageDescription
36 , piExecs :: Set Executable
36 , piExecs :: Set Executable
37− , piGithubUser :: Maybe String
37+ , piGithubUser :: [String]
38 }
38 }
39 deriving (Show, Eq)
39 deriving (Show, Eq)
40
40
@@ -47,7 +47,7 @@ data BuildInfo = BuildInfo
47 , biUsers :: [PackageName]
47 , biUsers :: [PackageName]
48 , biMaintainer :: Maintainer
48 , biMaintainer :: Maintainer
49 , biDeps :: Map PackageName VersionRange
49 , biDeps :: Map PackageName VersionRange
50− , biGithubUser :: Maybe String
50+ , biGithubUser :: [String]
51 , biHasTests :: Bool
51 , biHasTests :: Bool
52 }
52 }
53
53
@@ -73,7 +73,7 @@ data InstallInfo = InstallInfo
73data SelectedPackageInfo = SelectedPackageInfo
73data SelectedPackageInfo = SelectedPackageInfo
74 { spiVersion :: Version
74 { spiVersion :: Version
75 , spiMaintainer :: Maintainer
75 , spiMaintainer :: Maintainer
76− , spiGithubUser :: Maybe String
76+ , spiGithubUser :: [String]
77 , spiHasTests :: Bool
77 , spiHasTests :: Bool
78 }
78 }
79 deriving (Show, Read)
79 deriving (Show, Read)
Stackage/Util.hs+4−1
@@ -5,7 +5,7 @@ import qualified Codec.Archive.Tar as Tar
5import qualified Codec.Archive.Tar.Entry as TarEntry
5import qualified Codec.Archive.Tar.Entry as TarEntry
6import Control.Monad (guard, when)
6import Control.Monad (guard, when)
7import Data.Char (isSpace, toUpper)
7import Data.Char (isSpace, toUpper)
8−import Data.List (stripPrefix)
8+import Data.List (intercalate, stripPrefix)
9import qualified Data.Map as Map
9import qualified Data.Map as Map
10import Data.Maybe (mapMaybe)
10import Data.Maybe (mapMaybe)
11import qualified Data.Set as Set
11import qualified Data.Set as Set
@@ -168,3 +168,6 @@ replaceTarball tarballdir pkgname = do
168 else return pkgname
168 else return pkgname
169 where
169 where
170 fp = tarballdir </> pkgname <.> "tar.gz"
170 fp = tarballdir </> pkgname <.> "tar.gz"
171+
172+githubMentions :: [String] -> String
173+githubMentions = intercalate "," . map ('@' :)