develooper Front page | perl.perl5.porters | Postings from January 2017

Scalar-List-Utils: blead and upstream out-of-synch

Thread Next
From:
James E Keenan
Date:
January 23, 2017 13:29
Subject:
Scalar-List-Utils: blead and upstream out-of-synch
Message ID:
33b605c5-b08b-1f73-47a8-d5a00b4d075a@verizon.net
We have some problems with the integration of the Scalar-List-Utils 
distribution with the Perl 5 core distribution.  Scalar-List-Utils is 
maintained upstream on CPAN, which means that reports of bugs are 
supposed to be reported first on its bug tracker, 
https://rt.cpan.org/Dist/Display.html?Name=Scalar-List-Utils.  Once 
corrections are made upstream, we patch the core distribution.  Changes 
should not be made first in core unless there is an urgent, compelling 
reason to do so.

In late October and early November a series of corrections were made to 
Scalar-List-Utils in the core distribution with respect to its 
performance on the netbsd-vax platform.  In reverse chronological order, 
those commits were:

aa3ecafd01033b5ee5566f754a882d417a39e0ad
8e21c40378fa83db73acbf74b1cb99ac60432ee8
d1deb742f98169ce12c103478382902d83f6717a
059d8568a141af07d90f38d161fc6ba4993d4467
5bc8afd5b5a672585a115f4556f6b734dae83184
1476bbfa98fcd0efc3a4d1ccdd0b021ad7403986
cdeaf44d582bf74f4c686dc58b288d8d33f25b95
3ad3fb7edd9a5db1e0cf38ad50a84824ef641c39
5b15f36c4b1c5025dccabeef937495997e37e512

Because this work was committed to blead first, customizations were 
necessary in Porting/Maintainers.pl and other porting-tests-related 
fixes were needed as well.  So there is more code in the commits above 
than was, strictly speaking, needed for Scalar-List-Utils.  The code 
that was needed for that was subsequently reported upstream at 
https://rt.cpan.org/Ticket/Display.html?id=118470 but upstream has not 
yet been patched -- which means we have to continue to maintain the 
customizations in Porting/Maintainers.pl and elsewhere.

At the same time, our smoke testers were reporting intermittent failures 
in cpan/Scalar-List-Utils/t/tainted.t.  See, e.g., 
http://perl5.test-smoke.org/report/52519.  These test failures were 
first reported to the Scalar-List-Utils bug tracker 
(https://rt.cpan.org/Ticket/Display.html?id=119169) on Dec 07 2016.  A 
correction was discussed there and the upstream maintainer released 
version 1.47 on Dec 22 2016.

That version was not and has not yet been integrated into the core 
distribution.  Such integration would be complex given that blead 
contains the previously discussed customizations.  As a stopgap measure, 
on Dec 23 2016, the file with the failing tests was patched in blead 
(only) -- but with an expiration date on the corrective action of the patch:

#####
diff --git a/cpan/Scalar-List-Utils/t/tainted.t 
b/cpan/Scalar-List-Utils/t/tainted.t
index e483dfd..9e0df5e 100644
--- a/cpan/Scalar-List-Utils/t/tainted.t
+++ b/cpan/Scalar-List-Utils/t/tainted.t
@@ -15,10 +15,13 @@ ok( !tainted($var), 'known variable');

  my $key = (grep { !/^PERL/ } keys %ENV)[0];

+SKIP: { # Skip these to get blead to pass, but the skip expires soon
+skip 'is randomly failing', 2 unless $] gt 5.025009;
  ok( tainted($ENV{$key}),       'environment variable');

  $var = $ENV{$key};
  ok( tainted($var),     'copy of environment variable');
+}
#####

In blead we are now past 5.25.9.

#####
$ ./perl -v | head -2 | tail -1
This is perl 5, version 25, subversion 10 (v5.25.10 
(v5.25.9-15-g03fedef)) built for x86_64-linux

$ ./perl -Ilib -E 'say $]'
5.025010
#####

Not surprisingly, we are once again experiencing intermittent test 
failures in cpan/Scalar-List-Utils/t/tainted.t.  See, e.g., 
http://perl.develop-help.com/raw/?id=198039.

So we are now in a situation where blead and upstream are out of synch 
with respect to Scalar-List-Utils in multiple ways.  We are not getting 
the benefits of the upstream maintainer's work on 
https://rt.cpan.org/Ticket/Display.html?id=119169 and, consequently, 
that ticket remains open -- as does the upstream ticket with the 
netbsd-vax corrections.

This is not good.

We have several other, much larger problems in the interaction between 
blead and CPAN that we have to address before the upcoming pre-5.26.0 
code freeze.  Having this Scalar-List-Util problem is a distraction.

My recommendation is that we:

1. Revert the netbsd-vax-related changes out of Perl 5 blead.

2. Integrate Scalar-List-Utils v1.47 into blead.

3. Urge the Scalar-List-Utils maintainer to accept the 
netbsd-vax-related changes and release a v1.48 with those changes.  (We 
would then integrate 1.48 into blead.)

I recommend this approach because:

1. Getting S-L-U 1.47 into blead would get us smoke test PASSes across 
all platforms.  That's a greater benefit than having the 
netbsd-vax-related changes in blead without also having them upstream.

2. Getting S-L-U 1.47 into blead would enable us to get rid of the 
customizations in Porting/Maintainers.pl and the no-longer-working 
stopgap in tainted.t.

3. This would be consistent with our standard procedure for reporting 
problems with libraries maintained upstream but distributed with core.

To this end, I have created the following branch:  revert-cpan-118470. 
I am attaching a diff of that branch against blead.  You can review its 
smoke test results at 
http://perl.develop-help.com/?b=smoke-me%2Fjkeenan%2Frevert-cpan-118470.

Thank you very much.
Jim Keenan

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