Phalanx / CPANTS / Kwalitee
Hi! CPANTS and Phalanx both care about Kwalitee. So I thought it might be a good idea to come up with one more or less complete list of Kwalitee-hints that both projects can use. A lot of the hints listed at http://qa.perl.org/phalanx/kwalitee.html are rather vague, which is OK for Phalanx, as it is run by humans. But CPANTS needs a hard, computable list of hints. Anyway, here is what the dev-version of CPANTS currently cosiders as kwalitee-hints: * distname includes version * extracts nicely * does not include symlinks (which some OS cannot handle) * no strange permissions (files undeleteable by owner, eg) * contains files: * Makefile.PL or Build.PL or configure * README * MANIFEST * t/* or test.pl * one *.pm in top-level OR lib/ Hints that were in Leon's last release, but which I didn't port up to now: * POD errors * POD/Code ratio (what would be a good measurement?) * testers results * number of releases Some ideas: * wheater PREREQ_PM matches used modules (hard!) * AUTHOR != 'R.U. Thor' * Description * ratings * a lot of code analysis (to be done without running the code!!) Obviously, this list is far from complete, which is why I request some feedback on more hints for Kwalitee from all of you! -- #!/usr/bin/perl http://domm.zsi.at for(ref bless{},just'another'perl'hacker){s-:+-$-gprint$_.$/}
Re: Phalanx has started, and I need perl-qa's help
Hi! On Thu, Aug 21, 2003 at 10:48:11PM -0500, Andy Lester wrote: The Phalanx project has started its rampup to an official announcement. Phalanx is going to beef up the tests, coverage and docs on Perl and 100 heavily-used modules from CPAN. Have you got an plans on combining Phalanx and CPANTS? As far as I understand it, Phalanx is mainly a manual project. I.e. real humans (with brains and all) will look at some modules, apply some tests (as listed in http://qa.perl.org/phalanx/kwalitee.html) and improve those modules CPANTS on the other hand is 100% automatic and limited to dumb computing power. One of the basic ideas of CPANTS (when I first heard about from Schwern at YAPC::Europe 2001) was exactly what you're doing now: Improving the quality of CPAN. I guess that there could by some synergic effects (is this an English word? Synergieffekte in German?). Leon? -- #!/usr/bin/perl http://domm.zsi.at for(ref bless{},just'another'perl'hacker){s-:+-$-gprint$_.$/}
Re: Scrutinizing CPAN distributions (was Testing for valid path names...)
Hi! On Tue, Aug 19, 2003 at 04:00:44PM +0100, Tony Bowden wrote: I'd certainly like to see something like this worked on. We do a lot of this stuff automagically as part of our RCS anyway - people can't check in code that doesn't pass certain guidelines (all public methods documented etc.) Building this in a way so that people can just drop in simple 'test' modules to extend what's being checked for would be nice... There's Test::Distribution by Marcel Gruenauer (who's from Vienna, too). It sort of does parts of this, but it's supposed to be part of your test suite. I never took a closer look at it, though, so I don't knoe if/how it would fit into the CPANTS/kwalitee scheme. -- #!/usr/bin/perl http://domm.zsi.at for(ref bless{},just'another'perl'hacker){s-:+-$-gprint$_.$/}
Re: Scrutinizing CPAN distributions (was Testing for valid path names...)
Hi! On Mon, Aug 18, 2003 at 11:25:14PM +1000, Andrew Savige wrote: It doesn't have to eval the whole of CPAN to be useful. I see the mythical Module::Scrutinize as perhaps a little orthogonal to Module::CPANTS, as something that may help individual CPAN authors produce a higher quality product, running their CPAN module through it pointing out things that might be improved. It may also be handy to Just yesterday I was thinking of something like validator.cpan.org (parallel to validator.w3.org): Upload a dist and let it be checked by a future version of Module::CPANTS. You should get back a report and/or a kwalitee rating. If the kwalitee is too low, improve your distribution (where improve means: code the module so that it gets a high kwalitee). The hard part of this validation service is definitly deciding how to calculate kwalitee. 6) Prerequisite checker. What would you check, exactly? That the prerequisites in Makefile.PL/Build.PL/META.yml match the code. The current of Module::CPANTS includes a field called 'requires_module', which is basically prereq_pm. There's another field called 'uses' that contains all the modules used. (this is generated by parsing the code using a Parse::RecDescent based parser called Module::Extractuse (written by me (end-of-plug)). I didn't found the time to match those two data fields after dropping Core modules and modules provided by the distribution itself. But I'm planning to do it. -- #!/usr/bin/perl http://domm.zsi.at for(ref bless{},just'another'perl'hacker){s-:+-$-gprint$_.$/}