Skip Menu |

This queue is for tickets about the Devel-REPL CPAN distribution.

Report information
The Basics
Id: 88542
Status: resolved
Priority: 0/
Queue: Devel-REPL

People
Owner: ether [...] cpan.org
Requestors: dsteinbrunner [...] pobox.com
zefram [...] fysh.org
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in: (no value)
Fixed in: 1.003022



Subject: missing dependency
t/00-check-deps.t .. ok # Failed test 'Devel/REPL/Plugin/Refresh.pm loaded ok' # at t/00-compile.t line 70. # got: '2' # expected: '0' Can't locate Module/Refresh.pm in @INC (you may need to install the Module::Refresh module)
Subject: many undeclared deps
Date: Mon, 9 Sep 2013 15:15:22 +0100
To: bug-Devel-REPL [...] rt.cpan.org
From: Zefram <zefram [...] fysh.org>
Devel-REPL-1.003021 declares a bunch of modules as a "recommends", not "requires", but massively fails its test suite if they are not actually installed: {{{{ $ ./Build test t/00-check-deps.t .. ok t/00-compile.t ..... 6/39 # Failed test 'Devel/REPL/Plugin/Completion.pm loaded ok' # at t/00-compile.t line 70. # got: '2' # expected: '0' Can't locate PPI.pm in @INC (you may need to install the PPI module) (@INC contains: /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/arch /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/arch /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib /opt/perl-5.18.1/lib/site_perl/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/lib/site_perl/5.18.1 /opt/perl-5.18.1/vendor/lib/vendor_perl/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/vendor/lib/vendor_perl/5.18.1 /opt/perl-5.18.1/lib/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/lib/5.18.1 .) at /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib/Devel/REPL/Plugin/Completion.pm line 13. BEGIN failed--compilation aborted at /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib/Devel/REPL/Plugin/Completion.pm line 13. Compilation failed in require at -e line 1. # Failed test 'Devel/REPL/Plugin/CompletionDriver/INC.pm loaded ok' # at t/00-compile.t line 70. # got: '2' # expected: '0' Can't locate File/Next.pm in @INC (you may need to install the File::Next module) (@INC contains: /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/arch /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/arch /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib /opt/perl-5.18.1/lib/site_perl/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/lib/site_perl/5.18.1 /opt/perl-5.18.1/vendor/lib/vendor_perl/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/vendor/lib/vendor_perl/5.18.1 /opt/perl-5.18.1/lib/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/lib/5.18.1 .) at /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib/Devel/REPL/Plugin/CompletionDriver/INC.pm line 11. BEGIN failed--compilation aborted at /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib/Devel/REPL/Plugin/CompletionDriver/INC.pm line 11. Compilation failed in require at -e line 1. # Failed test 'Devel/REPL/Plugin/CompletionDriver/Keywords.pm loaded ok' # at t/00-compile.t line 70. # got: '2' # expected: '0' Can't locate B/Keywords.pm in @INC (you may need to install the B::Keywords module) (@INC contains: /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/arch /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/arch /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib /opt/perl-5.18.1/lib/site_perl/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/lib/site_perl/5.18.1 /opt/perl-5.18.1/vendor/lib/vendor_perl/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/vendor/lib/vendor_perl/5.18.1 /opt/perl-5.18.1/lib/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/lib/5.18.1 .) at /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib/Devel/REPL/Plugin/CompletionDriver/Keywords.pm line 11. BEGIN failed--compilation aborted at /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib/Devel/REPL/Plugin/CompletionDriver/Keywords.pm line 11. Compilation failed in require at -e line 1. t/00-compile.t ..... 12/39 # Failed test 'Devel/REPL/Plugin/DDC.pm loaded ok' # at t/00-compile.t line 70. # got: '2' # expected: '0' Can't locate Data/Dumper/Concise.pm in @INC (you may need to install the Data::Dumper::Concise module) (@INC contains: /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/arch /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/arch /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib /opt/perl-5.18.1/lib/site_perl/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/lib/site_perl/5.18.1 /opt/perl-5.18.1/vendor/lib/vendor_perl/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/vendor/lib/vendor_perl/5.18.1 /opt/perl-5.18.1/lib/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/lib/5.18.1 .) at /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib/Devel/REPL/Plugin/DDC.pm line 12. BEGIN failed--compilation aborted at /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib/Devel/REPL/Plugin/DDC.pm line 12. Compilation failed in require at -e line 1. # Failed test 'Devel/REPL/Plugin/DDS.pm loaded ok' # at t/00-compile.t line 70. # got: '2' # expected: '0' Can't locate Data/Dump/Streamer.pm in @INC (you may need to install the Data::Dump::Streamer module) (@INC contains: /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/arch /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/arch /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib /opt/perl-5.18.1/lib/site_perl/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/lib/site_perl/5.18.1 /opt/perl-5.18.1/vendor/lib/vendor_perl/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/vendor/lib/vendor_perl/5.18.1 /opt/perl-5.18.1/lib/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/lib/5.18.1 .) at /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib/Devel/REPL/Plugin/DDS.pm line 12. BEGIN failed--compilation aborted at /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib/Devel/REPL/Plugin/DDS.pm line 12. Compilation failed in require at -e line 1. t/00-compile.t ..... 18/39 # Failed test 'Devel/REPL/Plugin/Interrupt.pm loaded ok' # at t/00-compile.t line 70. # got: '2' # expected: '0' Can't locate Sys/SigAction.pm in @INC (you may need to install the Sys::SigAction module) (@INC contains: /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/arch /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/arch /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib /opt/perl-5.18.1/lib/site_perl/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/lib/site_perl/5.18.1 /opt/perl-5.18.1/vendor/lib/vendor_perl/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/vendor/lib/vendor_perl/5.18.1 /opt/perl-5.18.1/lib/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/lib/5.18.1 .) at /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib/Devel/REPL/Plugin/Interrupt.pm line 12. BEGIN failed--compilation aborted at /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib/Devel/REPL/Plugin/Interrupt.pm line 12. Compilation failed in require at -e line 1. # Failed test 'Devel/REPL/Plugin/LexEnv.pm loaded ok' # at t/00-compile.t line 70. # got: '2' # expected: '0' Can't locate Lexical/Persistence.pm in @INC (you may need to install the Lexical::Persistence module) (@INC contains: /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/arch /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/arch /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib /opt/perl-5.18.1/lib/site_perl/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/lib/site_perl/5.18.1 /opt/perl-5.18.1/vendor/lib/vendor_perl/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/vendor/lib/vendor_perl/5.18.1 /opt/perl-5.18.1/lib/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/lib/5.18.1 .) at /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib/Devel/REPL/Plugin/LexEnv.pm line 13. BEGIN failed--compilation aborted at /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib/Devel/REPL/Plugin/LexEnv.pm line 13. Compilation failed in require at -e line 1. # Failed test 'Devel/REPL/Plugin/MultiLine/PPI.pm loaded ok' # at t/00-compile.t line 70. # got: '2' # expected: '0' Can't locate PPI.pm in @INC (you may need to install the PPI module) (@INC contains: /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/arch /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/arch /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib /opt/perl-5.18.1/lib/site_perl/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/lib/site_perl/5.18.1 /opt/perl-5.18.1/vendor/lib/vendor_perl/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/vendor/lib/vendor_perl/5.18.1 /opt/perl-5.18.1/lib/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/lib/5.18.1 .) at /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib/Devel/REPL/Plugin/MultiLine/PPI.pm line 12. BEGIN failed--compilation aborted at /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib/Devel/REPL/Plugin/MultiLine/PPI.pm line 12. Compilation failed in require at -e line 1. t/00-compile.t ..... 24/39 # Failed test 'Devel/REPL/Plugin/PPI.pm loaded ok' # at t/00-compile.t line 70. # got: '2' # expected: '0' Can't locate PPI.pm in @INC (you may need to install the PPI module) (@INC contains: /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/arch /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/arch /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib /opt/perl-5.18.1/lib/site_perl/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/lib/site_perl/5.18.1 /opt/perl-5.18.1/vendor/lib/vendor_perl/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/vendor/lib/vendor_perl/5.18.1 /opt/perl-5.18.1/lib/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/lib/5.18.1 .) at /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib/Devel/REPL/Plugin/PPI.pm line 12. BEGIN failed--compilation aborted at /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib/Devel/REPL/Plugin/PPI.pm line 12. Compilation failed in require at -e line 1. t/00-compile.t ..... 30/39 # Failed test 'Devel/REPL/Plugin/Refresh.pm loaded ok' # at t/00-compile.t line 70. # got: '2' # expected: '0' Can't locate Module/Refresh.pm in @INC (you may need to install the Module::Refresh module) (@INC contains: /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/arch /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/arch /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib /opt/perl-5.18.1/lib/site_perl/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/lib/site_perl/5.18.1 /opt/perl-5.18.1/vendor/lib/vendor_perl/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/vendor/lib/vendor_perl/5.18.1 /opt/perl-5.18.1/lib/5.18.1/x86_64-linux-ld /opt/perl-5.18.1/lib/5.18.1 .) at /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib/Devel/REPL/Plugin/Refresh.pm line 13. BEGIN failed--compilation aborted at /opt/perl-5.18.1/cpan/build/Devel-REPL-1.003021-B4cWJr/blib/lib/Devel/REPL/Plugin/Refresh.pm line 13. Compilation failed in require at -e line 1. t/00-compile.t ..... 37/39 Bailout called. Further testing stopped: Compilation problems FAILED--Further testing stopped: Compilation problems }}}} From the above errors it looks like the phantom prerequisites are at least PPI, File::Next, B::Keywords, Data::Dumper::Concise, Data::Dump::Streamer, Sys::SigAction, Lexical::Persistence, and Module::Refresh. After installing these eight, the test passes; the other two "recommends" (App::Nopaste and PPI::XS) are evidently not hard dependencies. -zefram
On 2013-09-09 07:15:45, zefram@fysh.org wrote: Show quoted text
> Devel-REPL-1.003021 declares a bunch of modules as a "recommends", not > "requires", but massively fails its test suite if they are not > actually > installed:
Ah, this is an artifact of the MI->dzil conversion, where previously the Makefile.PL was installing all the optional features when not running interactively, and now it doesn't (the -default = 1 mechanism isn't yet supported by cpanm or other clients). Will fix ASAP.
Subject: Re: [rt.cpan.org #88542] many undeclared deps
Date: Mon, 9 Sep 2013 20:05:08 +0100
To: Karen Etheridge via RT <bug-Devel-REPL [...] rt.cpan.org>
From: Zefram <zefram [...] fysh.org>
Karen Etheridge via RT wrote: Show quoted text
>Ah, this is an artifact of the MI->dzil conversion, where previously >the Makefile.PL was installing all the optional features when not running >interactively, and now it doesn't
It's a bit more complicated than that. Devel-REPL-1.003020's META.yml declares them all as "requires", but also has dynamic_config=1, so Makefile.PL gets to decide dynamically which are required. 1.003021's META.yml has dynamic_config=0, declares the optional deps as "recommends", and statically declares the optional features with the requirements for each. Given dynamic_config=0, it is a bug for tests to fail if the modules not listed as "requires" are not installed. Take care that you don't use default installation of `optional' dependencies to paper over a faulty test suite. -zefram
On 2013-09-09 12:05:27, zefram@fysh.org wrote: Show quoted text
> Karen Etheridge via RT wrote:
> >Ah, this is an artifact of the MI->dzil conversion, where previously > >the Makefile.PL was installing all the optional features when not running > >interactively, and now it doesn't
> > It's a bit more complicated than that.
Yes, I'm saying how the problem came to be. :) The real cause is actually something else, that came along for the ride with the conversion -- the presence of compile tests, which assume that all modules in the dist are compilable... which they aren't, if some of the optional features were omitted. The compile tests need to take into consideration that not all the plugins are testable if features were omitted. I'll write an additional test that is author-only, using Test::Without::Module to be sure that everything still passes even without the optional features. This is entirely my fault for not testing against a fresh perl with nothing installed in it.
On Mon Sep 09 15:15:11 2013, ETHER wrote: Show quoted text
> This is entirely my fault for not testing against a fresh perl with > nothing installed in it.
You might find it useful to know that you can do: $ cpan -t . to test an unreleased distribution without installing dependencies. I do that with a pristine perl installation (which stays pristine with this method) before each module release.
fixed in 1.003022