develooper Front page | perl.module-authors | Postings from September 2009

Questions about encouraging testers

Thread Next
From:
craig
Date:
September 20, 2009 17:51
Subject:
Questions about encouraging testers
Message ID:
5FBFC4B4-FDF4-47D6-B1DB-25A001B91C55@animalhead.com
Hello module authors,

I have a story and 3 questions.

The  
story------------------------------------------------------------------- 
-------------------

Last February I submitted a module to CPAN.  Version 0.54 got 16 PASSes,
4 FAILS, and 128 UNKNOWNs.  The UNKNOWNs were for 2 reasons:

1. I hadn't used ppport to define some Perl flags that are public now  
but weren't on 5.6.
2. My module requires a C library 'mm' and I hadn't done anything to  
communicate
     this prerequisite to the testers.

This situation persisted for several months because it didn't occur  
to me to that
UNKNOWNs had reports to read like PASSes and FAILs have.  Finally in  
August
I learned this and fixed the module.  Several versions got uploaded  
in a week or
two, ending with 0.58.  One of the testers suggested I use  
Devel::CheckLib to
communicate the need for the C library.

Here's the start of Makefile.PL for version 0.58:
###################################################
use lib inc;
use Devel::AssertOS qw(Unix OS390 BeOS Cygwin);
use ExtUtils::MakeMaker;

my $libpath = '/usr/local/lib';

if (!-e "$libpath/libmm.so") {
     use Devel::CheckLib;

     print "\nIPC::MMA requires the mm library, which is available at  
http://www.ossp.org/pkg/lib/mm/\n";
     $libpath = prompt(" Please enter path to libmm.so:", $libpath);

     check_lib_or_exit(lib => 'mm', libpath => $libpath);
}
my $binpath = `which mm-config`;
chomp $binpath;
if ($binpath !~ m'^/') {
     print "installation requires mm-config, which should have been  
installed with the mm library\n";
     $binpath = prompt(" Please enter path to mm-config:");

     $binpath =~ s'(/(mm-config)?)?$'/mm-config';
     if (!-e $binpath || !-X $binpath) {
         warn "'$binpath' not found or not executable\n";
         exit;
}   }
my $cflags  = `$binpath --cflags`;
...
###################################################

The problem is that in 5 weeks, only three testers have submitted  
test reports for
version 0.58, resulting in 11 PASSes and 1 NA (on a Windows machine)

The  
questions--------------------------------------------------------------- 
-------------------

1. Why are there so few test reports?  Supposedly the prompt(" Please  
enter path...")
     which is provided by ExtUtils::MakeMaker, will not hang but will  
sense the smoky
     environment and return the default from $libpath.   
check_lib_or_exit will then
     report the problem in a way that will inform the tester of the  
need for the library.
     Right?

2. Do you think the following start for Makefile.PL would lead to  
more test reports?
###################################################
use lib inc;
use Devel::AssertOS qw(Unix OS390 BeOS Cygwin);
use ExtUtils::MakeMaker;

my $binpath = 'mm-config';
if (system 'which', $binpath) {

     # mm-config is not in PATH, but maybe it's installed outside PATH
     my $result = `find /usr ~ . -name "$binpath"`;
     if ($result !~ m"^(\.?/\S*?$binpath)$"m) {
         warn "Can't find '$binpath'\n";
         warn "IPC::MMA requires the mm library, including its  
'$binpath' utility\n";
         warn "The mm library is available at http://www.ossp.org/pkg/ 
lib/mm/\n";
         exit 0;
     }
     $binpath = $1;
}
# mm-config provides parameters to link with the mm library
my $cflags  = `$binpath --cflags`;
...
###################################################

3. If #2 is "yes" and I submit a new version with the above Makefile.PL,
should I call it 0.59 or 0.58_01?  There hasn't been a significant  
change
to the module itself since 0.54.

Thanks for being there,
cmac


Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About