@@ -20,6 +20,7 @@ import Stackage2.CorePackages
20import Stackage2.PackageConstraints
20import Stackage2.PackageConstraints
21import Stackage2.PackageIndex
21import Stackage2.PackageIndex
22import Stackage2.Prelude
22import Stackage2.Prelude
23+import Stackage2.GithubPings
23import Control.Monad.State.Strict (execState, get, put)
24import Control.Monad.State.Strict (execState, get, put)
24import qualified Data.Map as Map
25import qualified Data.Map as Map
25import qualified Data.Set as Set
26import qualified Data.Set as Set
@@ -77,6 +78,7 @@ instance desc ~ () => FromJSON (BuildPlan desc) where
77data PackageBuild desc = PackageBuild
78data PackageBuild desc = PackageBuild
78 { pbVersion :: Version
79 { pbVersion :: Version
79 , pbMaintainer :: Maybe Maintainer
80 , pbMaintainer :: Maybe Maintainer
81+ , pbGithubPings :: Set Text
80 , pbUsers :: Set PackageName
82 , pbUsers :: Set PackageName
81 , pbFlags :: Map FlagName Bool
83 , pbFlags :: Map FlagName Bool
82 , pbTestState :: TestState
84 , pbTestState :: TestState
@@ -95,6 +97,7 @@ instance ToJSON (PackageBuild desc) where
95 [ maybe [] (\m -> ["maintainer" .= m]) pbMaintainer
97 [ maybe [] (\m -> ["maintainer" .= m]) pbMaintainer
97 [ "version" .= asText (display pbVersion)
99 [ "version" .= asText (display pbVersion)
100+ , "github-pings" .= pbGithubPings
98 , "users" .= map unPackageName (unpack pbUsers)
101 , "users" .= map unPackageName (unpack pbUsers)
99 , "flags" .= Map.mapKeysWith const (\(FlagName f) -> asText $ pack f) pbFlags
102 , "flags" .= Map.mapKeysWith const (\(FlagName f) -> asText $ pack f) pbFlags
100 , "test-state" .= pbTestState
103 , "test-state" .= pbTestState
@@ -106,6 +109,7 @@ instance desc ~ () => FromJSON (PackageBuild desc) where
106 parseJSON = withObject "PackageBuild" $ \o -> PackageBuild
109 parseJSON = withObject "PackageBuild" $ \o -> PackageBuild
107 <$> (o .: "version" >>= efail . simpleParse . asText)
110 <$> (o .: "version" >>= efail . simpleParse . asText)
108 <*> o .:? "maintainer"
111 <*> o .:? "maintainer"
112+ <*> o .:? "github-pings" .!= mempty
109 <*> (Set.map PackageName <$> (o .:? "users" .!= mempty))
113 <*> (Set.map PackageName <$> (o .:? "users" .!= mempty))
110 <*> (toFlags <$> (o .:? "flags" .!= mempty))
114 <*> (toFlags <$> (o .:? "flags" .!= mempty))
111 <*> o .: "test-state"
115 <*> o .: "test-state"
@@ -267,6 +271,7 @@ simplifyDesc gpd = do
267 return PackageBuild
271 return PackageBuild
268 { pbVersion = version
272 { pbVersion = version
269 , pbMaintainer = fmap snd $ lookup name $ pcPackages defaultPackageConstraints
273 , pbMaintainer = fmap snd $ lookup name $ pcPackages defaultPackageConstraints
274+ , pbGithubPings = getGithubPings gpd
270 , pbUsers = mempty -- must be filled in later
275 , pbUsers = mempty -- must be filled in later
271 , pbFlags = packageFlags name
276 , pbFlags = packageFlags name
272 , pbTestState =
277 , pbTestState =