kentnl / File-ShareDir-ProjectDistDir

Simple set-and-forget using of a '/share' directory in your projects root
Other
5 stars 5 forks source link

Warning causing problems #8

Closed pghmcfc closed 10 years ago

pghmcfc commented 11 years ago

Not sure if this is a bug in F:S:P or further down, but I see this when running the test suite:

$ ./Build test
t/00-compile.t ...................... ok
# 
# 
# Generated by Dist::Zilla::Plugin::ReportVersions::Tiny v1.09
# perl: 5.016003 (wanted 5.006) on linux from /usr/bin/perl
# 
# Carp                                          => 1.26       (want any version)
# Dist::Zilla::PluginBundle::Author::KENTNL     => module not found. (want v1.8.3) 
# Dist::Zilla::PluginBundle::Author::KENTNL::Lite => module not found. (want v1.3.0) 
# File::ShareDir                                => 1.03       (want any version)
# FindBin                                       => 1.51       (want any version)
# IO::Handle                                    => 1.33       (want any version)
# IPC::Open3                                    => 1.12       (want any version)
# Module::Build                                 => 0.4007     (want 0.4007) 
# Path::Class::Dir                              => 0.32       (want any version)
# Path::Class::File                             => 0.32       (want any version)
# Path::FindDev                                 => 0.2.0      (want any version)
# Path::IsDev                                   => 0.3.0      (want any version)
# Path::Tiny                                    => 0.033      (want any version)
# Pod::Coverage::TrustPod                       => module not found. (want any version)
# Sub::Exporter                                 => 0.986      (want any version)
# Test::CPAN::Changes                           => module not found. (want 0.19)   
# Test::CPAN::Meta                              => module not found. (want any version)
# Test::Kwalitee                                => module not found. (want 1.08)   
# Test::More                                    => 0.98       (want 0.98)   
# Test::Pod                                     => module not found. (want 1.41)   
# Test::Pod::Coverage                           => module not found. (want 1.08)   
# lib                                           => 0.63       (want any version)
# strict                                        => 1.07       (want any version)
# version                                       => 0.9902     (want 0.9901) 
# warnings                                      => 1.13       (want any version)
# 
# Thanks for using my code.  I hope it works for you.
# If not, please try and include this output in the bug report.
# That will help me reproduce the issue and solve your problem.
# 
t/000-report-versions-tiny.t ........ ok
Name "Path::IsDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 92.
t/01_devel.t ........................ ok
Name "Path::IsDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 92.
t/02_installed_only.t ............... ok
Name "Path::IsDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 92.
t/03_installed_and_dev_different.t .. ok
Name "Path::IsDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 92.
t/04_developing_installed.t ......... ok
Name "Path::IsDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 92.
t/05_devel_spec.t ................... ok
Name "Path::IsDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 92.
t/06_distname.t ..................... ok
All tests successful.
Files=8, Tests=10,  1 wallclock secs ( 0.03 usr  0.00 sys +  0.89 cusr  0.07 csys =  0.99 CPU)
Result: PASS

After installing the dist anyway and then trying to build Pod::Spell, which has just introduced use of F:S:P, the test suite now fails (didn't with F:S:P 0.4.4):

$ make test AUTHOR_TESTING=1 RELEASE_TESTING=1
Skip blib/lib/auto/share/dist/Pod-Spell/wordlist (unchanged)
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
Name[\s]"Path::IsDev::Object::DEMOLISH"[\s]used[\s]only[\s]once:[\s]possible[\s]typo[\s]at[\s]/usr/share/perl5/vendor_perl/Class/Tiny.pm[\s]line[\s]92. at t/00-compile.t line 65, <GEN10> line 2.
#   Failed test 'no warnings found'
#   at t/00-compile.t line 82.
#          got: '1'
#     expected: '0'
# Looks like you failed 1 test of 4.
t/00-compile.t ................ 
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/4 subtests 
# 
# 
# Generated by Dist::Zilla::Plugin::ReportVersions::Tiny v1.09
# perl: 5.018001 (wanted 5.006) on linux from /usr/bin/perl
# 
# Carp                                          => 1.32       (want any version)
# Class::Tiny                                   => 0.008      (want any version)
# ExtUtils::MakeMaker                           => 6.76       (want 6.30)   
# File::ShareDir::Install                       => 0.05       (want 0.03)   
# File::ShareDir::ProjectDistDir                => 0.5.1      (want any version)
# File::Slurp                                   => 9999.19    (want any version)
# File::Spec                                    => 3.40       (want any version)
# File::Temp                                    => 0.2301     (want any version)
# IO::Handle                                    => 1.34       (want any version)
# IPC::Open3                                    => 1.13       (want any version)
# Lingua::EN::Inflect                           => 1.895      (want any version)
# Pod::Coverage::TrustPod                       => 0.100002   (want any version)
# Pod::Escapes                                  => 1.04       (want any version)
# Pod::Parser                                   => 1.61       (want any version)
# Test::CPAN::Changes                           => 0.23       (want 0.19)   
# Test::CPAN::Meta                              => 0.23       (want any version)
# Test::Deep                                    => 0.11       (want any version)
# Test::Kwalitee                                => 1.14       (want 1.08)   
# Test::More                                    => 0.9805     (want 0.88)   
# Test::Pod                                     => 1.48       (want 1.41)   
# Test::Pod::Coverage                           => 1.08       (want 1.08)   
# Text::Wrap                                    => 2012.0818  (want any version)
# base                                          => 2.18       (want any version)
# constant                                      => 1.27       (want any version)
# locale                                        => 1.02       (want any version)
# strict                                        => 1.07       (want any version)
# version                                       => 0.9904     (want 0.9901) 
# warnings                                      => 1.18       (want any version)
# 
# Thanks for using my code.  I hope it works for you.
# If not, please try and include this output in the bug report.
# That will help me reproduce the issue and solve your problem.
# 
t/000-report-versions-tiny.t .. ok
t/author-critic.t ............. ok
Name "Path::IsDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 92.
t/author-pod-spell.t .......... ok
t/author-test-eol.t ........... ok
Name "Path::IsDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 92.
t/basic.t ..................... ok
Name "Path::IsDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 92.
t/debug.t ..................... ok
Name "Path::IsDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 92.
t/get-stopwords.t ............. ok
t/release-cpan-changes.t ...... ok
# Unable to parse MANIFEST.SKIP file:
# No such file or directory
# Using default skip data from ExtUtils::Manifest 1.63
t/release-dist-manifest.t ..... ok
t/release-distmeta.t .......... ok
t/release-kwalitee.t .......... ok
t/release-meta-json.t ......... ok
t/release-minimum-version.t ... ok
t/release-mojibake.t .......... ok
t/release-pod-coverage.t ...... ok
t/release-pod-linkcheck.t ..... skipped: Test::Pod::LinkCheck required for testing POD
t/release-pod-syntax.t ........ ok
t/release-portability.t ....... ok
t/release-test-version.t ...... ok
t/release-unused-vars.t ....... ok
Name "Path::IsDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 92.
t/text-block.t ................ ok
Test Summary Report
-------------------
t/00-compile.t              (Wstat: 256 Tests: 4 Failed: 1)
  Failed test:  4
  Non-zero exit status: 1
Files=22, Tests=117, 10 wallclock secs ( 0.07 usr  0.02 sys +  9.21 cusr  0.32 csys =  9.62 CPU)
Result: FAIL
Failed 1/22 test programs. 1/117 subtests failed.
pghmcfc commented 11 years ago

Of course, if I don't set AUTHOR_TESTING then the Pod-Spell build succeeds but it doesn't look good with the warnings anyway ;-)

pghmcfc commented 11 years ago

Now that Path::FindDev uses Class::Tiny as well, it's producing warnings too:

$ ./Build test
t/00-compile.t ...................... ok
# 
# 
# Generated by Dist::Zilla::Plugin::ReportVersions::Tiny v1.09
# perl: 5.018001 (wanted 5.006) on linux from /usr/bin/perl
# 
# Carp                                          => 1.32       (want any version)
# Dist::Zilla::PluginBundle::Author::KENTNL     => module not found. (want v1.8.3) 
# Dist::Zilla::PluginBundle::Author::KENTNL::Lite => module not found. (want v1.3.0) 
# File::ShareDir                                => 1.03       (want any version)
# FindBin                                       => 1.51       (want any version)
# IO::Handle                                    => 1.34       (want any version)
# IPC::Open3                                    => 1.13       (want any version)
# Module::Build                                 => 0.4007     (want 0.4007) 
# Path::Class::Dir                              => 0.32       (want any version)
# Path::Class::File                             => 0.32       (want any version)
# Path::FindDev                                 => 0.3.0      (want any version)
# Path::IsDev                                   => 0.3.1      (want any version)
# Path::Tiny                                    => 0.033      (want any version)
# Pod::Coverage::TrustPod                       => module not found. (want any version)
# Sub::Exporter                                 => 0.986      (want any version)
# Test::CPAN::Changes                           => module not found. (want 0.19)   
# Test::CPAN::Meta                              => module not found. (want any version)
# Test::Kwalitee                                => module not found. (want 1.08)   
# Test::More                                    => 0.9805     (want 0.98)   
# Test::Pod                                     => module not found. (want 1.41)   
# Test::Pod::Coverage                           => module not found. (want 1.08)   
# lib                                           => 0.63       (want any version)
# strict                                        => 1.07       (want any version)
# version                                       => 0.9904     (want 0.9901) 
# warnings                                      => 1.18       (want any version)
# 
# Thanks for using my code.  I hope it works for you.
# If not, please try and include this output in the bug report.
# That will help me reproduce the issue and solve your problem.
# 
t/000-report-versions-tiny.t ........ ok
Name "Path::IsDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 93.
Name "Path::FindDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 93.
t/01_devel.t ........................ ok
Name "Path::IsDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 93.
Name "Path::FindDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 93.
t/02_installed_only.t ............... ok
Name "Path::FindDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 93.
Name "Path::IsDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 93.
t/03_installed_and_dev_different.t .. ok
Name "Path::FindDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 93.
Name "Path::IsDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 93.
t/04_developing_installed.t ......... ok
Name "Path::IsDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 93.
Name "Path::FindDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 93.
t/05_devel_spec.t ................... ok
Name "Path::IsDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 93.
Name "Path::FindDev::Object::DEMOLISH" used only once: possible typo at /usr/share/perl5/vendor_perl/Class/Tiny.pm line 93.
t/06_distname.t ..................... ok
All tests successful.
Files=8, Tests=10,  1 wallclock secs ( 0.04 usr  0.01 sys +  0.78 cusr  0.08 csys =  0.91 CPU)
Result: PASS
kentfredric commented 11 years ago

Thanks for the bug report.

I'd imaging thats Class::Tiny's fault, but hard to know.

So two questions,

  1. Can you try run the tests with PERL5OPT='-MCarp::Always' to get a bigger backtrace
  2. Can you try the latest ( 0.009 ) Class::Tiny to rule out anything it might have fixed?

I mean, I don't do anything directly with DEMOLISH, so I'm just going to go straight to reporting this bug there when I get a better backtrace =)

kentfredric commented 11 years ago

Actually, I think I have an idea ... its probably that you're using one of those annoying versions of something in the testing stack that turns additional warnings on globally, even for things that didn't ask for it.

Its still a bug, ... just working out where and what the right solution is is the hard part.

pghmcfc commented 10 years ago

I'm afraid I'm already using Class::Tiny 0.009 and when I used Carp::Always I got exactly the same diagnostics, nothing extra. Sorry about that.

dagolden commented 10 years ago

Fixed in Class::Tiny 0.010 being shipped to CPAN now.

pghmcfc commented 10 years ago

Works for me, thanks.

kentfredric commented 10 years ago

Fixed dependencies should exist for anyone who uses IsDev>=0.3.2 or FindDev>=0.3.1.

Thanks for reporting.