fractalide/racket2nix

Problem: Circular dependencies not a solved problem

clacke opened this issue · 1 comments

With fractalide/fractalide#281 , fractalide now has graph as a dependency, and graph depends on racket-doc and its big circular family of dependencies. It seems to be working for fractalide itself, but when I depend on fractalide I get a whole slew of these:

WARNING: This derivation should not have been depended on.
Any derivation depending on this one should have depended on one of these instead:
racket-doc

graph is a monolithic package, there's no graph-lib without the racket-doc dependency that one could depend on instead.

Solution: The real solution, which I have been kicking down the road, is that instead of hoping that everyone happen to encounter the circle through the same "top" package, all the packages in the circle become aliases of the same derivation.

The real real solution is ripping out the ad-hoc, imperative tree traversal and replace it with probably a datalog ruleset and a relatively simple query.