Subject: bug#51021: detect loops in module/package graph

From: Ludovic Courtès <[email-masked]>
Date: Thu, 07 Oct 2021 15:28:48 +0200

Hi Mark,

Mark H Weaver <[email-masked]> skribis:

> raingloom <[email-masked]> writes:
>> I'll be short and blunt, currently it sucks big time whenever you have
>> a loop in your packages.
>
> Agreed.  I've been concerned about this problem since the early days of
> Guix.  See <https://bugs.gnu.org/18247>.
>
> Back in August 2014, there was a strongly connected component (SCC)
> containing 51 package modules:

Thanks for the analysis and for the updated patch!

Module cycles are something we allow and even rely on, so finding cycles
in itself is not necessarily helpful.  What would help is finding cyclic
top-level references, which are those that cause problems, but that’s
another story.

WDYT?

Now, I’m not sure if raingloom was talking about these cycles, or rather
about cycles in the package dependency graph?

Chris Baines proposed a patch a while back to report those, though I
can’t find it anymore.  IIRC, the difficulty was in making sure cycle
detection would not be too expensive, and in keeping a readable style.

Thanks,
Ludo’.