Grokbase Groups Perl qa December 2004
FAQ
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?

I want to be able to say "SouthFlorida PM has improved the coverage of
Wango::Tango from 60% to 90%, and Chicago.PM has found and fixed three
bugs in HTML::Googah."

Thanks,
xoxo,
Andy

--
Andy Lester => andy@petdance.com => www.petdance.com => AIM:petdance

Search Discussions

  • Michael G Schwern at Dec 26, 2004 at 8:38 pm

    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.

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

    That's just for what has META.yml which leaves out about 5500 distributions.
    He's working on extending it for the rest.

    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...


    --
    Michael G Schwern schwern@pobox.com http://www.pobox.com/~schwern/
    Commence simultaneous panic on my mark.
  • Sébastien Aperghis-Tramoni at Dec 26, 2004 at 11:33 pm
    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
  • Thomas Klausner at Dec 27, 2004 at 7:59 pm
    Hi!
    On Mon, Dec 27, 2004 at 12:33:36AM +0100, S?bastien Aperghis-Tramoni wrote:

    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
    I haven't got any time in the last months to spend on CPANTS, but similar
    data is available here:
    http://cpants.dev.zsi.at/

    from the cpants.db (sqlite)

    sqlite> select requires,count(requires) as cnt from prereq group by requires
    order by cnt desc limit 30;
    requires cnt
    -------------------- ----------
    Test::More 992
    Carp 274
    perl 255
    DBI 222
    File::Spec 202
    Data::Dumper 159
    Digest::MD5 156
    LWP::UserAgent 151
    Storable 151
    Test::Simple 121
    URI 116
    Scalar::Util 105
    XML::Parser 97
    Tk 97
    IO::File 95
    Template 94
    Time::HiRes 93
    POE 93
    MIME::Base64 88
    File::Basename 80
    Params::Validate 80
    File::Temp 72
    DateTime 71
    CGI 70
    LWP 67
    Error 62
    HTML::Parser 62
    Kwiki 62
    POSIX 60
    HTTP::Request 60


    --
    #!/usr/bin/perl http://domm.zsi.at
    for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}
  • Sébastien Aperghis-Tramoni at Dec 28, 2004 at 7:51 am
    Hello,

    Here are the final lists of the modules dependencies. This time I grouped
    the modules by their respective distribution name.
    - score.txt is the list of the most requested modules/distributions
    - deps.txt gives, for each distribution, the list of distros that directly
    depend upon it.
    YAML versions are provided for both files.

    --
    Sébastien Aperghis-Tramoni

    Close the world, txEn eht nepO.
  • Sébastien Aperghis-Tramoni at Dec 28, 2004 at 11:27 am

    Selon Sébastien Aperghis-Tramoni <maddingue@free.fr>:

    Hello,

    Here are the final lists of the modules dependencies. This time I grouped
    the modules by their respective distribution name.
    I forgot to say that these lists were made by reading the META.yml when
    available, or by parsing Makefile.PL or Build.PL otherwise (borrowed the
    code from Thomas Klausner's Module::CPANTS::Generator::Prereq). Therefore
    they represent the dependencies of a large part of the CPAN.


    --
    Sébastien Aperghis-Tramoni

    Close the world, txEn eht nepO.
  • Michael G Schwern at Dec 29, 2004 at 2:42 am

    On Tue, Dec 28, 2004 at 08:51:41AM +0100, S?bastien Aperghis-Tramoni wrote:
    Here are the final lists of the modules dependencies. This time I grouped
    the modules by their respective distribution name.
    - score.txt is the list of the most requested modules/distributions
    - deps.txt gives, for each distribution, the list of distros that directly
    depend upon it.
    YAML versions are provided for both files.
    Thanks. I've done some more processing on the information. I checked not
    for number of dependent modules but for number of unique dependent authors.

    Here's the top N side-by-side for comparison. As you can see, modules which
    are only used by a specialized portion of CPAN fall off the list. POE,
    Kwiki, bioperl, OOTools, Tk, etc. fall off the list while some shoot up
    like XML-LibXML, YAML and Error.

    But LWP, URI, DBI and HTML-Parser remain the undisputed champions of CPAN
    dependency.

    By Author By Distribution.

    105 libwww-perl 195 libwww-perl
    72 URI 107 URI
    69 DBI 90 DBI
    56 HTML-Parser 74 HTML-Parser
    37 Template-Toolkit 69 Kwiki
    26 WWW-Mechanize 62 POE
    26 YAML 60 Template-Toolkit
    25 Compress-Zlib 58 DateTime
    25 POE 58 Params-Validate
    24 XML-LibXML 53 Class-Accessor
    23 Params-Validate 46 YAML
    23 DateTime 43 bioperl
    23 Class-Accessor 40 WWW-Mechanize
    21 TimeDate 38 OOTools
    19 Error 35 Tk
    18 IO-stringy 34 TimeDate
    18 Time-Piece 34 XML-LibXML
    17 MailTools 33 mod_perl
    17 Class-DBI 32 Class-DBI
    17 Parse-RecDescent 31 libapreq
    17 mod_perl 28 Error
    17 XML-Parser 28 Compress-Zlib
    16 XML-RSS 27 mod_perl
    16 Tk 26 Parse-RecDescent

    I've also attached a corrected version of deps.txt. A number of packages
    had version numbers attached (like Class-Foo-1.2). Also there was a bug in
    the bioperl information. Its number of dependencies is actually 2.


    --
    Michael G Schwern schwern@pobox.com http://www.pobox.com/~schwern/
    Woah, like, did anybody see my watch?

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupqa @
categoriesperl
postedDec 26, '04 at 5:04a
activeDec 29, '04 at 2:42a
posts7
users4
websiteqa.perl.org

People

Translate

site design / logo © 2021 Grokbase