develooper Front page | | Postings from March 2017

Re: BBC testing from upriver downwards

Thread Previous | Thread Next
James E Keenan
March 30, 2017 20:36
Re: BBC testing from upriver downwards
Message ID:
On 03/20/2017 09:32 PM, James E Keenan wrote:
> On 03/17/2017 09:42 PM, Karen Etheridge wrote:
>> ​> ​
>> 1. Compose a list of CPAN distros starting with those farthest up river,
>> i.e., distros that only depend on the perl 5 core.  Within that set of
>> distros I'd like to order them from most reverse dependencies to
>> fewest.  Then go down river from there.
>> ​David Golden has a script for generating the CPAN river heirarchy --
>> the last run of this that I know of (at least, it's the data I've been
>> working off of) is at
>> <>. It lists the
>> distributions in their position on the CPAN river, and their top 5 users
>> (reverse dependencies).  This would be a natural place to start testing,
>> and determining which branches of the river have blockages (the first
>> instance of a no-dot-in-INC issue).  David, can you generate a fresh
>> copy?​
> Karen, thanks for that link.  Actually, just using the first 1000 or so
> distros in that gist as is would suffice for now.
> We now have a perl-5.25.11 tarball which contains
> no-dot-by-default-in-@INC.  So we have a real (dev) release with which
> to begin testing CPAN distros.
> The next question is:  How can I set up a reporting apparatus such that
> when a distro fails I can retain the complete test run/output on disk
> for inspection?

The approach I took today was as follows:

1. I took the file which David Golden prepared last year as a proxy for 
the current state of the river.  I decompressed it to a plain-text file 
called 'river-2016-02-27.txt'.

2. I wrote a program (attached) called to parse 
the plain-text file for the first 1000 distros found, which were stored 
in another plain-text file called top-1000.txt.

3. Built and installed perl5 blead for testing, then installed 'cpanm' 
against that perl.

4. cat top-1000.txt | xargs bin/cpanm install && go get breakfast

5. Copied and renamed the 'cpanm' build.log to 20170330-1000-build.log.gz.

6. grepped out relevant lines from the build log:

zgrep FAIL 20170330-1000-build.log.gz | grep -v 'Result: FAIL' | sed -e 
's/^-> //' > 20170330-1000-fails.txt

7. Wrote second perl program (attached) called '' to 
record the order in which various modules *first* appeared in the 
'fails' file and the total number of times each module was cited. 
Results are attached as 'order-of-battle-20170330.txt'.

What is the "order of battle"?  It's the order in which, as of today, we 
need to get new CPAN releases out so that down-river distros are no 
longer failing due to failures in their upstream dependencies.

For example, today David Golden prepared a new version of Sub::Uplevel 
-- the #1 distro in the order of battle.  Once he releases that to CPAN, 
a tremendous number of downstream distros will have their prerequisites 
satisfied and -- assuming they don't have their own configure/build/test 
failures -- will become installable via this perl-5.26.0-friendly cpanm.

This approach is useful for me because I only have a laptop to work 
with.  YMMV.

Thank you very much.
Jim Keenan

Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About