@@ -114,6 +114,7 @@ rankIO
114
114
-> [PkgInfo ]
115
115
-> IO Scorer
116
116
117
+ rankIO _ _ _ _ _ _ [] = return (Scorer (118 + 16 + 4 + 1 ) 0 )
117
118
rankIO vers recentDownloads maintainers docs env tarCache pkgs = do
118
119
temp <- temporalScore pkg lastUploads versionList recentDownloads
119
120
versS <- versionScore versionList vers lastUploads pkg
@@ -131,10 +132,10 @@ rankIO vers recentDownloads maintainers docs env tarCache pkgs = do
131
132
versionList = sortBy (flip compare )
132
133
$ map (pkgVersion . package . packageDescription) (pkgDesc <$> pkgs)
133
134
packageEntr = do
134
- tarB <- packageTarball tarCache . head $ pkgs
135
+ tarB <- mapM ( packageTarball tarCache) (safeHead pkgs)
135
136
return
136
137
$ (\ (path, _, index) -> (path, ) <$> T. lookup index path)
137
- =<< rightToMaybe tarB
138
+ =<< (join $ rightToMaybe <$> tarB)
138
139
rightToMaybe (Right a) = Just a
139
140
rightToMaybe (Left _) = Nothing
140
141
@@ -243,17 +244,18 @@ temporalScore p lastUploads versionList recentDownloads = do
243
244
/ (if isApp then 5 else 6 )
244
245
)
245
246
5
246
- packageFreshness = case lastUploads of
247
- [] -> return 0
248
- _ -> freshness versionList ( head lastUploads) isApp
247
+ packageFreshness = case safeHead lastUploads of
248
+ Nothing -> return 0
249
+ ( Just l) -> freshness versionList l isApp
249
250
freshnessScore = fracScor 10 <$> packageFreshness
250
251
-- Missing dependencyFreshnessScore for reasonable effectivity needs caching
251
252
tractionScore = do
252
253
fresh <- packageFreshness
253
254
return $ boolScor 1 (fresh * int2Float recentDownloads > 1000 )
254
255
255
- rankPackagePage :: PackageDescription -> Scorer
256
- rankPackagePage p = tests <> benchs <> desc <> homeP <> sourceRp <> cats
256
+ rankPackagePage :: Maybe PackageDescription -> Scorer
257
+ rankPackagePage Nothing = Scorer 233 0
258
+ rankPackagePage (Just p) = tests <> benchs <> desc <> homeP <> sourceRp <> cats
257
259
where
258
260
tests = boolScor 50 (hasTests p)
259
261
benchs = boolScor 10 (hasBenchmarks p)
@@ -278,4 +280,4 @@ rankPackage versions recentDownloads maintainers docs tarCache env pkgs =
278
280
total
279
281
. (<>) (rankPackagePage pkgD)
280
282
<$> rankIO versions recentDownloads maintainers docs env tarCache pkgs
281
- where pkgD = packageDescription $ pkgDesc $ last pkgs
283
+ where pkgD = packageDescription . pkgDesc <$> safeLast pkgs
0 commit comments