@@ -17,6 +17,7 @@ import Distribution.Server.Features.Users
17
17
import Distribution.Server.Features.Upload (UploadFeature (.. ))
18
18
import Distribution.Server.Features.Documentation (DocumentationFeature (.. ))
19
19
import Distribution.Server.Features.TarIndexCache (TarIndexCacheFeature (.. ))
20
+ import Distribution.Server.Features.PackageRank
20
21
21
22
import Distribution.Server.Users.Users (userIdToName )
22
23
import qualified Distribution.Server.Users.UserIdSet as UserIdSet
@@ -87,18 +88,20 @@ data PackageItem = PackageItem {
87
88
-- How many benchmarks (>=0) this package has.
88
89
itemNumBenchmarks :: ! Int ,
89
90
-- Last upload date
90
- itemLastUpload :: ! UTCTime
91
+ itemLastUpload :: ! UTCTime ,
91
92
-- Hotness: a more heuristic way to sort packages. presently non-existent.
92
- -- itemHotness :: Int
93
+ -- itemHotness :: Int
94
+ -- heuristic way to sort packages
95
+ itemPackageRank :: ! Double
93
96
}
94
97
95
98
instance MemSize PackageItem where
96
- memSize (PackageItem a b c d e f g h i j k l) = memSize12 a b c d e f g h i j k l
99
+ memSize (PackageItem a b c d e f g h i j k l m ) = memSize13 a b c d e f g h i j k l m
97
100
98
101
99
102
emptyPackageItem :: PackageName -> PackageItem
100
103
emptyPackageItem pkg = PackageItem pkg Set. empty Nothing " " []
101
- 0 0 False 0 0 0 (UTCTime (toEnum 0 ) 0 )
104
+ 0 0 False 0 0 0 (UTCTime (toEnum 0 ) 0 ) 0
102
105
103
106
104
107
initListFeature :: ServerEnv
@@ -125,11 +128,11 @@ initListFeature _env = do
125
128
versions@ VersionsFeature {.. }
126
129
users@ UserFeature {.. }
127
130
uploads@ UploadFeature {.. }
128
- docum tar -> do
131
+ documentation tar -> do
129
132
130
133
let (feature, modifyItem, updateDesc) =
131
134
listFeature core download votesf tagsf versions users uploads
132
- itemCache itemUpdate docum tar _env
135
+ itemCache itemUpdate documentation tar _env
133
136
134
137
registerHookJust packageChangeHook isPackageChangeAny $ \ (pkgid, _) ->
135
138
updateDesc (packageName pkgid)
@@ -196,11 +199,11 @@ listFeature CoreFeature{..}
196
199
DownloadFeature {.. }
197
200
VotesFeature {.. }
198
201
TagsFeature {.. }
199
- VersionsFeature {.. }
202
+ versions @ VersionsFeature {.. }
200
203
UserFeature {.. }
201
204
UploadFeature {.. }
202
205
itemCache itemUpdate
203
- docum tar env
206
+ documentation tar env
204
207
= (ListFeature {.. }, modifyItem, updateDesc)
205
208
where
206
209
listFeatureInterface = (emptyHackageFeature " list" ) {
@@ -266,6 +269,8 @@ listFeature CoreFeature{..}
266
269
votes <- pkgNumScore pkgname
267
270
deprs <- queryGetDeprecatedFor pkgname
268
271
maintainers <- queryUserGroup (maintainersGroup pkgname)
272
+ packageR <- rankPackage versions (cmFind pkgname downs)
273
+ (UserIdSet. size maintainers) documentation tar env pkgs
269
274
270
275
return $ (,) pkgname $ (updateDescriptionItem (pkgDesc pkg) $ emptyPackageItem pkgname) {
271
276
itemTags = tags
@@ -275,6 +280,7 @@ listFeature CoreFeature{..}
275
280
-- [reverse index disabled] , itemRevDepsCount = directReverseCount revCount
276
281
, itemVotes = votes
277
282
, itemLastUpload = fst (pkgOriginalUploadInfo pkg)
283
+ , itemPackageRank = packageR
278
284
}
279
285
280
286
------------------------------
0 commit comments