Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

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

Report information
The Basics
Id: 78151
Status: open
Priority: 0/
Queue: Dist-Zilla

People
Owner: Nobody in particular
Requestors: jonathan [...] leto.net
Cc: ether [...] cpan.org
AdminCc:

Bug Information
Severity: Normal
Broken in: 4.300020
Fixed in: (no value)



Subject: AutoPrereq + "use feature 'foo'" adds feature.pm as a dependency
I ran into this bug by using AutoPrereq and "use feature 'say'", which then added feature.pm as a dependency. I didn't notice until 100 CPANtesters failure reports said they couldn't find the feature.pm module. This was discussed on #distzilla: rjbs: If Perl::Prereqscanner sees "use feature 'current_sub'" it should be adding perl 5.16.0 to the prereqs Another similar case is that if you have "use foo 0.01", perl 5.12 should be added as a dep, since requiring a specific version of a Perl module was added in 5.12. The information in Module::CoreList should be sufficient to implement this "missing feature"
On Mon, Jul 2, 2012 12:04:38 PM, LETO wrote: Show quoted text
> Another similar case is that if you have "use foo 0.01", perl 5.12 > should be added as a dep, since requiring a specific version of a Perl > module was added in 5.12.
Do you mean "package foo 0.01"? "use foo 0.01" has been around much longer than 5.12.
On Mon Jul 02 13:11:31 2012, CJM wrote: Show quoted text
> On Mon, Jul 2, 2012 12:04:38 PM, LETO wrote:
> > Another similar case is that if you have "use foo 0.01", perl 5.12 > > should be added as a dep, since requiring a specific version of a Perl > > module was added in 5.12.
> > Do you mean "package foo 0.01"? "use foo 0.01" has been around much > longer than 5.12.
Yes, CJM, you are correct. I was mixing up "use foo 0.001" and "package foo 0.001". Thanks!
leto was confused. What we did discuss on IRC was looking into Module::CoreList so you can see that if someone says "use less 0.03" then we need perl 5.12, since less is not available outside of core. I'm not sure whether Module::CoreList provides upstream info, though. -- rjbs
On Mon, Jul 2, 2012 12:57:32 PM, RJBS wrote: Show quoted text
> I'm not sure whether Module::CoreList provides upstream info, though.
It doesn't. Or rather, the upstream info it provides is more in the way of "What is the primary repo?" rather than "Is this dual-life?" But I think that it makes sense to add dual-life info to Module::CoreList. The first counter-example I found is Attribute::Handlers, which says upstream blead but does have a CPAN release.
On Mon Jul 02 11:25:49 2012, CJM wrote: Show quoted text
> On Mon, Jul 2, 2012 12:57:32 PM, RJBS wrote:
> > I'm not sure whether Module::CoreList provides upstream info, though.
> > It doesn't. Or rather, the upstream info it provides is more in the way > of "What is the primary repo?" rather than "Is this dual-life?" But I > think that it makes sense to add dual-life info to Module::CoreList. > > The first counter-example I found is Attribute::Handlers, which says > upstream blead but does have a CPAN release.
Module::CoreList now provides this info.
On 2012-07-02 10:04:38, LETO wrote: Show quoted text
> I ran into this bug by using AutoPrereq and "use feature 'say'", which > then added feature.pm as a dependency. I didn't notice until 100 > CPANtesters failure reports said they couldn't find the feature.pm module. > > This was discussed on #distzilla: > > rjbs: If Perl::Prereqscanner sees "use feature 'current_sub'" it should > be adding perl 5.16.0 to the prereqs > > Another similar case is that if you have "use foo 0.01", perl 5.12 > should be added as a dep, since requiring a specific version of a Perl > module was added in 5.12.
Should [AutoPrereqs] be expected to handle these cases, or should it defer to [MinimumPerl] (and [Test::MinimumVersion])? I suppose Perl::PrereqScanner can always call out to Perl::MinimumVersion, so we get the same data either way...