hackage reverse dependencies

Carter Schonwald carter.schonwald at gmail.com
Mon Oct 14 16:17:38 UTC 2013


So you're saying we need to add a db proper to hackage2 server, like SQLite
or Postgres so as to make it more performant for interesting features?
 What's needed to do that?

On Monday, October 14, 2013, Matthew Gruen wrote:

> Hey, thanks for taking an interest in this. There is kind of a
> space-time-featureset tradeoff with revdeps, unfortunately. It seems to me
> like the challenge doesn't come so much from indirect deps, but rather from
> the sheer number of versions there are! There are 5600+ packages and 33800+
> versions, and the set of dependencies of foo-1.2 vs foo-1.3 can be
> completely different. Not to mention, when you look at the package page for
> a particular version, you may want to see the revdeps *for that version*,
> and at this point there are a billion possible combinations. npm's UI, in
> contrast, has an "always in HEAD" kind of feel.
>
> If you are interested in how the disabled implementation worked, by the
> way, I have a post here (as gracenotes):
> https://github.com/haskell/hackage-server/issues/40
>
> So revdeps is great, and there are many different killer uses for it, such
> as popularity metrics and finding upper version bounds which need updating.
> In sum, these require keeping around a lot of data. Because there's so
> much, acid-state is probably not a good place to store it. Not to mention,
> it's time-consuming to generate it from scratch and space-consuming to keep
> around data structures to incrementally update it. So there are some tool
> limitations, but it seems fundamentally tricky to do frugally.
>
> Matt
>
>
>
> On Mon, Oct 14, 2013 at 12:20 AM, Jens Petersen <
> juhp at community.haskell.org <javascript:_e({}, 'cvml',
> 'juhp at community.haskell.org');>> wrote:
>
>> Not really complaining :) but one of the things I had been looking
>> forward to with Hackage2 was the display of reverse-dependencies, but I
>> gather it was disabled for now (because it loads the server too much when
>> updating the data iirc?).
>>
>> I was thinking perhaps a compromise would be to show only direct
>> reverse-dependencies rather than including all indirect dependencies too.
>>  Perhaps that would make it scale better?  I think direct dependency
>> information is the most useful anyway (and also what packdeps provides).
>>
>> Before doing anything I thought I would ask here first if this makes
>> sense and should be work?
>> I for one would still really like to see basic reverse dependencies info
>> listed on hackage (I noticed yesterday that npm has them too).
>>
>> Jens
>>
>> _______________________________________________
>> cabal-devel mailing list
>> cabal-devel at haskell.org <javascript:_e({}, 'cvml',
>> 'cabal-devel at haskell.org');>
>> http://www.haskell.org/mailman/listinfo/cabal-devel
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/cabal-devel/attachments/20131014/5ccb0daa/attachment.html>


More information about the cabal-devel mailing list