Hi! I'm currently thinking about a new CPANTS metric (and I even have a half-finished implementation..), and I'd like to get some feedback on it, before spending more time on it (or even releasing it..)
The metric will be called prereq_matches_use and shall check if all the modules used in a dist are also listed as a prereq. (prereq is either gatherd directly from Meta.YMLs 'requires', by parsing Build.PL or Makefile.PL) As you might know this is quite tricky, because some modules live in strange dists (e.g. HTTP::Request -> libwww-perl) and some modules are in Core (I'll check this with Module::CoreList). The first implementation 'simply' selects all distinct dists from all modules (of which CPANTS know which dist they are in..) used in a dist, and compares this with the distinct dists from all listed prereqs. This results in: Of 12039 dists, 5419 have missing deps Adiitionally, there is a lot of potential finetuning possible: - do not award the kwalitee point if there are too many listed prereqs (i.e. the dist requires another dist, without actually using it.) This might be controversial, because authors could lists dists as a prereq which are a prereq of a prereq (etc) - for various valid (?) reasons... - also check build_requires (I'm not sure if other buildtools than Module::Build support this), with this twist: If dists are only used in tests, but are listed in 'requires', do not award a kwalitee point. What do you think? -- #!/usr/bin/perl http://domm.plix.at for(ref bless{},just'another'perl'hacker){s-:+-$"-g&&print$_.$/}