On Tue, 23 May 2006 09:35:27 -0500, Chris Dolan <[EMAIL PROTECTED]> wrote:

> On May 23, 2006, at 8:39 AM, David Golden wrote:
> 
> > How does "is_prereq" improve quality?
> >
> > Or, put differently, how does measuring something that an author  
> > can't control create an incentive to improve?
> 
> is_prereq is usually a proxy metric for software maturity: if someone  
> thinks your module is good enough that he would rather depend on it  
> than reinvent it, then it's probably a better-than-average module on  
> CPAN.

Very true for base modules like Getopt::Long, Test::More, or DBI
They are built to be used as basic blocks. DBI on itself is quite useless. It
only shows it's value combined with a DBD. The DBD itself however is more
unlikely to be required, as it is an end-block. That does not inhibit other
authors to extend on it (see DBD::Pg), but the functionality on itself quite
often is enough to not invite people to make it a requirement for a new
module (see DBD::mysql). These modules however are mature enough to compete.

> is_prereq is usually a vote of confidence,

I respectfully disagree completely.
It's been more than once that I did *not* install a module because it
required a module that I did not trust, either because of (the programming
style of) the author of that module, or because that module required yet
another zillion things I do not want installed (think YAML).

> so it is likely a good proxy for quality.  In fact I believe that because
> the author (usually) can't control it directly, is_prereq is one of the best  
> proxies for quality among the current kwalitee metrics.

I'd say: drop it. It's a worthless metric.

> CPANTS by itself does nothing to improve quality.  However, by  
> drawing attention to kwalitee metrics, I argue that CPANTS draws  
> attention to quality too.  Even if many authors don't understand  
> that, the ones that do makes CPANTS worthwhile.  If making it a game  
> helps to further raise awareness, then I think that should be  
> tolerated until CPANTS matures.

Hurray!
Yes, I used it to go over all my modules again, and use Covarage and pod
testing because of CPANTS. That indeed increased the qualitee of my modules

> IMHO, the best way to improve CPANTS and move away from the game  
> mentality is to continually add more tests.  Each added test  
> diminishes the weight of previous tests.  This will annoy the  
> "gamers" because their modules keep dropping in kwalitee, while those  
> that genuinely care about quality will appreciate the additional  
> measurements.  If some gamers get annoyed enough to quit the game,  
> that's not a big deal because they didn't really understand the point  
> of CPANTS anyway.  If some keep playing the game by cleaving to the  
> standards the community sets for them, then all the better for the  
> rest of us.

Tests should make sense. I still think there should be a test for copyright
notices, and TODO lists.

> As an example, consider pod_coverage.  It's a rather annoying metric,  
> most of us agree.  Test::Pod::Coverage really only needs to be run on  
> the author's machine, not on every user's machine.  However, by  
> adding pod_coverage to kwalitee we got LOTS of authors to improve  
> their POD with the cost of wasting cycles on users' machines.

Yep. Here too.

> I think that's a price worth paying -- at least until we rewrite the  
> metric to actually test POD coverage (which is a decent proxy for POD  
> quality) instead of just checking for the presence of a t/ 
> pod_coverage.t file (which is a weak proxy for POD quality, but  
> dramatically easier to measure).


-- 
H.Merijn Brand        Amsterdam Perl Mongers (http://amsterdam.pm.org/)
using & porting perl 5.6.2, 5.8.x, 5.9.x  on HP-UX 10.20, 11.00, 11.11,
& 11.23, SuSE 10.0, AIX 4.3 & 5.2, and Cygwin.       http://qa.perl.org
http://mirrors.develooper.com/hpux/           http://www.test-smoke.org
                       http://www.goldmark.org/jeff/stupid-disclaimers/

Reply via email to