On 02/02/2018 10:51 AM, Neil Bowers wrote:
For the 5.29.* development cycle starting in May of this year, I would
like to be able to use a ranking of CPAN distros which goes beyond asking:
* "How many other distributions depend on this one?"
... to asking:
* "How many distributions by other authors/maintainers depend on this
Would that be feasible? Has anyone attempted this already?
When we were discussing the River model at QAH, and in discussions
afterwards, this came up. In the end we decided to keep things simple
and go with the current common definition. There are some tools in the
CPAN ecosystem that only count dependencies written by others.
Can you point us toward those tools?
We’d need to agree which dists get ignored in this alternate scheme.
Please note that I'm not looking to replace the current definition. I'm
looking to develop supplementary definition(s) -- and their
implementations -- that can be useful in particular circumstances.
Consider this example:
Here MARY has released a bunch of dists, but Foo-Bar is also relied on
by other dists written by MUNGO and MIDGE.
The river count for Foo-Bar would be 2 here (ignoring the whole branch
that contains only dists from MARY), but the Foo river count should be
3, I think. Foo-Bar “counts”, because it in turn is depended on by dists
from other authors. Otherwise the river count would be 2 for both Foo
and Foo-Bar. Basically we’re starting at the “bottom" of the dependency
graph, and trimming sub-graphs all from one author.
Also consider this example:
What’s the river count of Plant — 0, 1, or 3? I think it should be 1, in
this alternate measure.
I.e. for sub-graphs by the same author, you only include the dist at the
head of the sub-graph.
It would be useful to have both measures available: raw-river and
When looking at a dist there are (at least) three figures that might be
of interest: the full river count (total number of direct and indirect
dependencies), the author-filtered river count (as above), and the
number of direct dependencies (which could be split in 2 as well).
Thank you very much.