Oops! I didn't include the list on my first reply.
But on the other hand I have completed the analysis. So here is the final list:
http://rafb.net/paste/results/p4hveb43.html


Michael G Schwern wrote:

On Sat, Dec 25, 2004 at 11:04:15PM -0600, Andy Lester wrote:
I'm working on an article for perl.com on the Phalanx project. Those of
you involved, can you please give a summary of what you've done? Or
better yet, give me a summary and update the wiki as well?

Don't know if you saw Maddingue's update of his analysis of how many modules depend on module X.

Here is the current version of my script if anyone wants to play it: http://rafb.net/paste/results/mQIw3x42.html

It generates a simple text file with the name of each prereq module on each line. Then I use the following script prereqs2score.pl to generate the score list
http://rafb.net/paste/results/DjokqD87.html


<Maddingue> http://nopaste.snit.ch:8001/1458 -- using Module::CoreList and checking against 5.8.0

Here is a new version of the list: http://rafb.net/paste/results/1jHQhu17.html


It includes only modules from A to M. This time, I used Module::Depends::Intrusive to gather more information, so it contains the dependencies of nearly all the modules up to this. Currently, I also record all the distributions that are buggy or that have a Makefile.PL too interactive for Module::Depends::Intrusive in order to skip them for next run. Some just die() or exit() and must also be skipped in order

Also some of them should be aggrigated together (ie. URI and URI::URL are the same distribution, LWP, LWP::Simple and HTTP::Request, > etc...).

There's the "circle jerk" or "nepotism" score to be taken into account. ie.
Dependencies from modules of the same author should carry less weight. For
example, Kwiki has a lot of dependencies. But before you weigh its
importance you must consider many of the modules that depend on
Kwiki were written by Ingy and Autrijus. So another metric to look at is
not just how many dependents a module has but how many different authors
depend on it.


Finally, you can do a deep dependency scan. The "how much will break when
this breaks" score. Taking into account not just what depends on a given
module but what depends on that, and on that and so on down the line.
For example. In Maddingue's list Class::DBI has 32 dependencies. Class::DBI depends on Ima::DBI but Ima::DBI doesn't even show up on the list. If Ima::DBI breaks, Class::DBI and everything it depends on breaks. So all of
Class::DBI's dependencies can be weighted towards Ima::DBI.


I think all of this can be derived from a list of
Module: Dependency1, Dependency 2, etc...

I'll add more information to the dependency list once I have sorted out all the distributions that prevent any automated running of these scripts.



Sébastien Aperghis-Tramoni -- - --- -- - -- - --- -- - --- -- - --[ http://maddingue.org ] Close the world, txEn eht nepO



Reply via email to