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

Reply via email to