Re: Is the CPAN river always a DAG?

[email protected] (Alberto Simoes) Tue, 27 Mar 2018 14:31:39 +0100
Newsgroups perl.cpan.workers
Message-ID <[email protected]>
On 03/27/2018 02:17 PM, James E Keenan wrote:
> A few weeks ago I made a presentation to the Philadelphia Perlmongers 
> (http://thenceforward.net/perl/talks/phlpm20180312/index.html) on the 
> subject "Testing CPAN against the Perl 5 Core Distribution:  Where Do We 
> Stand?".  In that presentation, I sketched the concept of the CPAN river 
> and described it as a directed acyclic graph (DAG) 
> (http://thenceforward.net/perl/talks/phlpm20180312/slide017.html), using 
> one of Neil Bower's images to make that point.
> 
> In the discussion afterwards, a prominent former COBOL programmer 
> suggested that there was nothing to exclude the possibility of circular 
> dependencies among CPAN distributions.  A could depend on B, which 
> depends on C, which depends on A.  If so, we would have a cyclic graph. 
> Wouldn't that undermine the concept of the CPAN river, he asked.
> 
> Since all I know about DAGs I got from reading Wikipedia and the 
> documentation to Jarkko's Graph.pm module, I didn't have a good 
> response.  So I promised to ask the question here.
> 
> * Can CPAN be cyclic?
> 
> * If so, then does that mean that, when we speak of CPAN as a river, we 
> are *imposing* DAG-ness on it by means of the algorithm(s) with which we 
> calculate the river (e.g., 
> https://github.com/dagolden/zzz-index-cpan-meta)?

As I see it, we can't have a non DAG where all dependent modules are non 
Perl-core modules. Or it would be impossible to install (ask cpan to 
install A, it will download B, then C, then try again to install A).

Nevertheless, we can have A1 that depends on B that depends on A2, where 
A2 exists as a core Perl module, older version than A1. Thus, B would be 
happy to build based on the previous, older, version, and then A1 use B.

I think I got some similar situation some years ago, but I can't refer 
whose modules they were.

Hope this can help,
ambs