On Mon, Jun 9, 2008 at 4:32 PM, Gabor Szabo <[EMAIL PROTECTED]> wrote: > I am sending this to both the module-authors list so you can be > aware of the new metrics and the perl-qa list as they might > have a few words as well regarding kwalitee.
First, I have to say that I applaud and appreciate the effort that goes into developing new Kwalitee metrics -- however, I think that many ideas wind up less interesting or relevant than initially thought. I think that too many measures of little interest will lead authors to ignore CPANTS rather than optimize against it. That may be a feature or a deficiency, depending on one's perspective. Personally, I find that metrics of "inclusion" -- eg. in Debian -- are somewhat interesting, not unlike being a prerequisite for other modules. However, beyond that initial fact, fine distinctions around bugs/patches/etc. seem a bit too idiosyncratic. And as someone invested in development on Win32, I also see chromatic's point that isn't a very portable metric, which would be a shame to see for Perl 'Kwalitee". More useful might be a "redistributed" Kwalitee score, that looks to see whether something is distributed as part of a standard perl installation. E.g. XML::Parser is now bundled with Strawberry Perl and I think by ActiveState as well. A challenge to such metrics is what "distributed by" means. I recall at Oslo someone was trying to get thousands of CPAN modules to build as packages for FreeBSD so that CPAN modules all get managed through the same package management system, not a parallel one via CPAN.pm. Does that count as "distributed"? I think the Test::NoWarnings measure is fundamentally misguided. I generally think any Kwalitee metric that mandates the use of particular modules is misguided, so some criticisms I have relate to that. For instance, if I decide to write and use "Test::NoWarnings::Plus", that has all the features of Test::NoWarnings, should my Kwalitee go down? If I write my own testing framework that doesn't use Test::More, what then? And encouraging widespread use of a module may not be a good idea if it problems in that module would cause many CPAN distributions to fail tests. That already happens with Test::More. I don't want to add more distributions to a critical toolchain. Moreover, Test::NoWarnings doesn't actually check that code doesn't issue warnings. It just checks that code doesn't call 'warn' against the default warnings handler. E.g. use Test::More tests => 1; use Test::NoWarnings; print STDERR "This warning isn't caught by Test::NoWarnings\n"; sub log_error {} # would normally do something interesting local $SIG{__WARN__} = sub { log_error(@_); print STDERR @_, "\n" }; warn "This warning isn't caught either"; [As an aside, the Test::NoWarnings docs imply I shouldn't need a Test::More plan, but apparently I do.] So even if one thinks that Kwalitee implies not issuing warnings, Test::NoWarnings isn't the right way to test for that. I'm not sure there is a good way. Check for stuff on STDERR? That too probably has issues. > There are two issues regarding the criticism: > 1) I did not find any mention of any new metric that would be good. When you propose new metrics and ask for comments, I don't think you're likely to get new metrics proposed. You probably should ask for those in a separate thread. > 2) True, it would be great if more of the module authors knew about > CPANTS and cared. I agree so how could we let them know about > it besides posting on use.perl.org and on this mailing list? > Maybe http://perlbuzz.com/ ? Any other ideas? Have links to the relevant CPANTS pages added to the search.cpan.org author and distribution pages. Regards, David