Skip Menu |

This queue is for tickets about the Dist-Zilla-PluginBundle-Author-JQUELIN CPAN distribution.

Report information
The Basics
Id: 88828
Status: resolved
Priority: 0/
Queue: Dist-Zilla-PluginBundle-Author-JQUELIN

People
Owner: Nobody in particular
Requestors: KENTNL [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: 3.002
Fixed in: (no value)



Subject: @Author::JQUELIN should not load modules directly

https://metacpan.org/source/JQUELIN/Dist-Zilla-PluginBundle-Author-JQUELIN-3.002/lib/Dist/Zilla/PluginBundle/Author/JQUELIN.pm#L24

https://metacpan.org/source/JQUELIN/Dist-Zilla-PluginBundle-Author-JQUELIN-3.002/lib/Dist/Zilla/PluginBundle/Author/JQUELIN.pm#L146

^ These sections are not nessecary in the JQUELIN.pm module, as Dist::Zilla will load all the modules that it is given configurations for, the same way it loads plugins declared directly in dist.ini

Additionally, due to a quirk in Dist::Zilla, anything that fails in the module during COMPILE results in dzil saying "Whoops! Your plugin bundle might not be installed" while hiding the true error.

While it is true that that is a dzil bug, this design choice also inhibits a few other things.

For instance, I have a module now I can pass a name of a dzil plugin bundle, and it will give me a dist.ini format output from that bundle.

Your code needlessly requires the plugins themselves to be loaded, even in they are never needed for anything =).

And worst, the presence of these lines presently prevents Bootstrap::lib being usable on dists that use @Author::JQUELIN . All dists! :)

Here's what happens with Test::Compile with your bundle the way it is:

>$ perl -Ilib -MDist::Zilla::PluginBundle::Author::JQUELIN -E1
> Dist::Zilla::Plugin::Test::Compile does not define $Dist::Zilla::Plugin::Test::Compile::VERSION--version check failed at /home/kent/perl5/perlbrew/perls/perl-5.19.3/lib/site_perl/5.19.3/Dist/Zilla/PluginBundle/Author/JQUELIN.pm line 60.
> BEGIN failed--compilation aborted at /home/kent/perl5/perlbrew/perls/perl-5.19.3/lib/site_perl/5.19.3/Dist/Zilla/PluginBundle/Author/JQUELIN.pm line 60.
> Compilation failed in require.
> BEGIN failed--compilation aborted.


Urk, .. thats load_class needlessly bailing because Test::Compile doesn't have a VERSION :S

removing all the use declarations and load_class

 

> perl -Ilib -MDist::Zilla::PluginBundle::Author::JQUELIN -E1

^ HAPPY SAILING \o/

And now [Bootstrap::lib] works

> dzil build
> [Bootstrap::lib] Bootstrapping /home/kent/perl/dist-zilla-plugin-test-compile/lib
> [DZ] beginning to build Dist-Zilla-Plugin-Test-Compile
> [@Filter/Git::NextVersion] Bumping version from 2.031 to 2.032
> [DZ] guessing dist's main_module is lib/Dist/Zilla/Plugin/Test/Compile.pm
> [DZ] extracting distribution abstract from lib/Dist/Zilla/Plugin/Test/Compile.pm
> [@Filter/MetaProvides::Package] No namespaces detected in file lib/Dist/Zilla/Plugin/Test/Compile/Conflicts.pm
> [MetaProvides::Package] No namespaces detected in file lib/Dist/Zilla/Plugin/Test/Compile/Conflicts.pm
> [@Filter/PkgVersion] skipping private package Dist::Zilla::Plugin::Test::Compile::Conflicts in lib/Dist/Zilla/Plugin/Test/Compile/Conflicts.pm
> [Authority] skipping private package Dist::Zilla::Plugin::Test::Compile::Conflicts
> [@Filter/ReadmeAnyFromPod] Override README.mkdn in root
> [@Filter/CheckChangeLog] [CheckChangeLog] OK with Changes
> [DZ] writing Dist-Zilla-Plugin-Test-Compile in Dist-Zilla-Plugin-Test-Compile-2.032
> [DZ] building archive with Archive::Tar::Wrapper
> [DZ] writing archive to Dist-Zilla-Plugin-Test-Compile-2.032.tar.gz


 

fixed in 3.005