0.54_01 - Missing prerequisites causing failures from CPAN-testers.

[email protected] Mon, 7 Apr 2014 14:17:50 +1000
Newsgroups perl.inline
Message-ID <47E10195F55D472FACFA74AA2A5E4B3B@OwnerPC311012>
Hi,

This is a bit strange.
In 0.54_01 top level Makefile.PL, I've replaced the old code that handled 
the conditional loading of {Test::Warn=>$twv} into PREREQ_PM, with a cleaner 
rendition. (See attached patch.)

In a nutshell, this new rendition is:

###########################
my $twv = $] > 5.013 ? 0.23 : 0.21;

my $prereq_pm = {
    Data::Dumper => 2.09,
    Digest::MD5 => 2.09,
    Parse::RecDescent => 1.80,
    File::Spec => 0.8,
    Test::Warn => $twv,
};
delete $prereq_pm->{'Test::Warn'} if $] <= 5.007;

###########################

But now, for the first time, I'm seeing test failures on 5.16.3 because 
Test::Warn is not getting loaded. Furthermore, these failing reports specify 
*no* prerequisites:

[quote]
------------------------------
PREREQUISITES
------------------------------

Prerequisite modules loaded:

    No requirements found

------------------------------
[/quote]

That's rubbish - Parse::RecDescent is *always* a pre-requisite.
I surmise that it must be this revised code that is causing this error to 
arise .... though I'm buggered if I can see how that could be.

To date this has happened in only 2 cases - both 5.16.3, from different 
testers, different systems:
http://www.cpantesters.org/cpan/report/9f275d62-7864-1014-ad6f-831c93e8ee67
http://www.cpantesters.org/cpan/report/8bdf6702-bdd8-11e3-8a89-eea0f1eb6092

I don't have 5.16.3 installed. Any insights into what's going awry ?
Otherwise I'll just revert it to the old code (whose only problems were its 
long-windedness and lack of sophistication).

Of those 2 failing reports, the first comes from Christian Walde.
He also tested 0.54 a few days ago with what looks to me to be the very same 
smoker. There were no problems then as regards getting the prereqs set 
correctly:

[quote]
------------------------------
PREREQUISITES
------------------------------

Prerequisite modules loaded:

requires:

    Module              Need Have
    ------------------- ---- --------
    Data::Dumper        2.09 2.139
    Digest::MD5         2.09 2.52
    File::Spec          0.8  3.40
    Parse::RecDescent   1.8  1.967009
    Test::Warn          0.23 0.30

build_requires:

    Module              Need Have
    ------------------- ---- --------
    ExtUtils::MakeMaker 0    6.63_02


------------------------------
[/quote]

That report (which contains a different failure) can be found in full at:
http://www.cpantesters.org/cpan/report/63a42468-770a-1014-9b4d-7b2a93e8ee67

Cheers,
Rob
0001-Makefile.PL-simplify-5.6-PREREQ_PM-handling.patch (application/octet-stream, 1.4 KB)
From f195ee259a0247f382b961fa38cdd20f41c25c54 Mon Sep 17 00:00:00 2001
From: Reini Urban <[email protected]>
Date: Fri, 4 Apr 2014 10:31:41 -0500
Subject: [PATCH 1/5] Makefile.PL: simplify 5.6 PREREQ_PM handling

---
 Makefile.PL | 24 ++++++++----------------
 1 file changed, 8 insertions(+), 16 deletions(-)

diff --git Makefile.PL Makefile.PL
index 8ea8cfb..158bafa 100644
--- Makefile.PL
+++ Makefile.PL
@@ -40,22 +40,14 @@ unless($md5_check) {
 
 my $twv = $] > 5.013 ? 0.23 : 0.21;
 
-my $prereq_pm = $] > 5.007 ?
-                             {
-                              Data::Dumper => 2.09,
-                              Digest::MD5 => 2.09,
-	                        Parse::RecDescent => 1.80,
-                              File::Spec => 0.8,
-                              Test::Warn => $twv,
-                             }
-
-                           :
-                             {
-                              Data::Dumper => 2.09,
-                              Digest::MD5 => 2.09,
-	                        Parse::RecDescent => 1.80,
-                              File::Spec => 0.8,
-                             };
+my $prereq_pm = {
+    Data::Dumper => 2.09,
+    Digest::MD5 => 2.09,
+    Parse::RecDescent => 1.80,
+    File::Spec => 0.8,
+    Test::Warn => $twv,
+};
+delete $prereq_pm->{'Test::Warn'} if $] <= 5.007;
 
 WriteMakefile(
     NAME => 'Inline',
-- 
1.9.1