I'm not certain of the best place to ask this, besides [EMAIL PROTECTED], so hopefully it'll get to the right people.

P.S. Please CC all your replies directly to me as I don't subscribe to the high traffic cpan-testers list.

I am seeing periodically that some/all CPAN testers, which I am not sure whether they are automated processes or people, have a large flaw in the way they are testing new uploads.

And that is, despite the fact that distributions often explicitely cite the module names and versions they depend on, in their machine-readable Makefile.PL or META.yml files, the testers are not looking at these and ensuring that they first have said dependencies before testing the new distributions.

And so a number of false-negatives, FAILs, are being produced that were avoidable. Said FAIL would be a PASS if the dependency was downloaded (and tested itself) first.

My question here is, am I seeing a generic flaw in the system, or am I seeing a fluke, or am I doing something wrong with how I produce my distributions?

And if the system is flawed, can I work around it in any way other than making sure there is a large lag time between the upload of a depended-on module and a dependant module?

A specific recent case of false-negative is the following.

At [Tue, 23 Mar 2004 00:48:01 +0100] PAUSE time, I uploaded SQL-SyntaxModel-0.28 (containing SQL::SyntaxModel v0.15). A few hours later, at [Tue, 23 Mar 2004 07:49:12 +0100] PAUSE time, I uploaded Rosetta-0.28 (containing Rosetta v0.12). The latter is dependent on the former.

Later that day, I get this test report on Rosetta-0.28:

Delivered-To: [EMAIL PROTECTED]
Date: 23 Mar 2004 12:52:21 -0000
To: [EMAIL PROTECTED]
Subject: FAIL Rosetta-0.28 sun4-solaris 2.8
From: [EMAIL PROTECTED]
<snip>
--
This is an error report generated automatically by CPANPLUS,
version 0.049.

Below is the error stack during 'make test':

PERL_DL_NONLAZY=1 /usr/local/perl-5.8.1/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/Rosetta....SQL::SyntaxModel version 0.15 required--this is only version 0.13 at /net/sunu991/disc1/.cpanplus/5.8.1/build/Rosetta-0.28/blib/lib/Rosetta.pm line 17.
BEGIN failed--compilation aborted at /net/sunu991/disc1/.cpanplus/5.8.1/build/Rosetta-0.28/blib/lib/Rosetta.pm line 17.
Compilation failed in require at t/Rosetta.t line 8.
BEGIN failed--compilation aborted at t/Rosetta.t line 8.
dubious
Test returned status 255 (wstat 65280, 0xff00)
DIED. FAILED test 1
Failed 1/1 tests, 0.00% okay
Failed Test Stat Wstat Total Fail Failed List of Failed

Now, this is part of the Makefile.PL for Rosetta-0.28:


        PREREQ_PM => {
                'Locale::KeyedText' => 0.03,
                'SQL::SyntaxModel' => 0.15,
        },

This is the corresponding part of META.yml:

requires:
    Locale::KeyedText:             0.03
    SQL::SyntaxModel:              0.15

Note that all of my last few distributions were made using "make dist" under Perl 5.8.3, the newest stable version. And if relevant, under Mac OS X 10.2.8.

Now, I don't know whether any part of the problem relates to the module version number and the distribution version number being different, but I would expect that the difference shouldn't matter, and that only the module version number would be considered regarding dependencies. Also, CPAN does store an index of which module versions are in which distribution versions, so it shouldn't be any trouble for an automated testing program to grab the right distribution.

Finally, the problem I am noticing seems to be compounded with the fact that as soon as a distribution fails under one tester, it is much less likely to be tested by someone else. Note that under normal circumstances I think that this is a perfectly reasonable course of action. But given the problem that happened, this is an issue because no one is saying that, yes, there actually is no problem with the distribution.

So thank you in advance for any feedback or suggestions on how I can work around this problem.

Good day. -- Darren Duncan

Reply via email to