Packdeps needs new hosting

I just noticed that packdeps.haskellers.com is no longer available. It used to be a site where you could explore reverse dependencies of Hackage packages.

It was working in May 2024.

The site says they are looking for new hosting, so I thought I’d mention it here.

This is a parked page for haskellers.com and packdeps.haskellers.com. These sites were previously hosted by FP Complete, and are looking for a new home. If anyone is interested in picking these up, feel free to reach out to Michael Snoyman.

7 Likes

For what it’s worth, Hackage shows reverse dependencies these days. For example from profunctors:

image

4 Likes

At least for me, the primary feature of the site is the RSS feeds used to notify developers of new versions of dependencies for packages in Hackage. I just checked my feed reader, and the status is still Good even though it no longer works. Fetching a feed manually confirms that it returns the same HTML as the website.

I hope that a new home for the service can be found, as receiving such notifications via RSS is very helpful.

Note that developers who want to check for new versions of dependencies while the service is down may do so locally using the packdeps CLI.

You can simply use Hackage for that!

Login, go to the Account management page, and click “change your notification preferences”.

You can set it up so you get a notification when a dependency is updated for a package that you maintain. There are also multiple strictness level (always/bounds reject new dep version/build fails).

4 Likes

oooh packdeps/reverse is one of my fav online haskell resources! Great also for learning how libraries and their abstractions are used. Hope it won’t disappear.

Which functionality is Hackage missing?

1 Like

Hackage shows rev deps per-package, whereas on packdeps it’s one big list including last update IIRC.

4 Likes

Slightly tangential, but there is deps.dev that handles dependencies in other ecosystems. We (SRT) were chatting with the developers to integrate Haskell packages there, and I think there is some headcount dedicated to this in the next year.

Maybe the work can be preseeded with packdeps data?

3 Likes

Thank you! Such notifications are very helpful!

An additional benefit of packdeps RSS feeds, however, is that one is able to be notified of new versions of dependencies for packages that they contribute to but do not maintain.

1 Like

FWIW, the plan was for me to migrate this to the new Stackage infrastructure as well, but now that I am on a 20% contract I probably won’t be available for the work any time soon.

If someone wants to help do the work, feel free to ask questions at Host packdeps on stackage infrastructure? · Issue #5 · commercialhaskell/stackage-infrastructure · GitHub

EDIT: Or hire me to do the work. :slight_smile:

5 Likes

I have a simple script to explore reverse dependencies in PackDeps-style locally: RevDeps.hs · GitHub

E. g.,

$ cabal run RevDeps.hs -- text-builder-linear
oplang	[text-builder-linear >=0.1 && <0.2]
rerefined	[text-builder-linear >=0.1.2 && <0.2]
strongweak	[text-builder-linear >=0.1.2 && <0.2]
text-ansi	[text-builder-linear >=0.1.1 && <0.2]
text-builder-linear	[text-builder-linear]
vector-quicksort	[text-builder-linear]
2 Likes

I got a moment to elaborate the script into a package:

Now it also shows the total count of reverse dependencies. E. g.,

$ cabal run hackage-revdeps -- hspec HTF sandwich skeletest sydtest tasty test-framework
...

Total count:
HTF            46
hspec          2593
sandwich       7
sydtest        47
tasty          2164
test-framework 663
5 Likes

@Bodigrim on the last Cabal call we thought (in the light of Cabal library API breakage in 3.14.0.0 · Issue #10559 · haskell/cabal · GitHub) we could be interested in hunting down Cabal(-syntax) clients to make sure we don’t break them too badly with every new release. (By the way, searching collective dependencies of a list of packages rather than one package seems also valuable for our use case.) One issue I had in mind with hackage-revdeps (or the Reverse Dependencies link on Hackage for that matter) is that it will probably hit a lot of dead wood. Any chance your tool can be taught to scan only Stackage (a particular LTS or just nightly by default, it doesn’t matter all that much).

@artem if you want to limit the scope to Stackage only then Reverse dependencies on Cabal-syntax-3.10.3.0 :: Stackage Server is exactly what you are looking for.

1 Like

I’ve added another tool to track ecosystem trends by counting reverse dependencies at given points in the past. For example,

$ cabal run historical-hackage-revdeps -- --step 300 --start 2012-01-01 conduit pipes streaming streamly machines
Date       conduit pipes streaming streamly machines
2012-01-01       9     0         0        0        0
2012-10-27     117     1         0        0        0
2013-08-23     169    18         0        0        0
2014-06-19     218    42         0        0        1
2015-04-15     271    67         0        0        7
2016-02-09     314   106         3        0        9
2016-12-05     357   136         6        0       15
2017-10-01     401   161        19        0       18
2018-07-28     447   164        39        2       21
2019-05-24     477   183        57        5       26
2020-03-19     510   191        70       11       25
2021-01-13     534   196        70       19       25
2021-11-09     567   202        74       28       25
2022-09-05     586   205        75       33       25
2023-07-02     597   210        77       35       25
2024-04-27     604   209        81       35       25
2024-12-01     616   208        82       34       25
1 Like

And it’s released:

2 Likes