hackage reverse dependencies

Matthew Gruen wikigracenotes at gmail.com
Mon Oct 14 08:55:43 UTC 2013


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>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
> 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/fdbdf9a1/attachment.html>


More information about the cabal-devel mailing list