@@ -427,6 +427,22 @@ sub _has_cpan_meta_requirements {
427427 };
428428}
429429
430+ sub _min_EUMM {
431+ my ($self ) = @_ ;
432+ my @eumm_versions = sort grep defined , map {
433+ $_ -> {' ExtUtils::MakeMaker' }
434+ } grep defined , @{$self }{@PREREQ_KEYS };
435+ return 0 unless @eumm_versions ;
436+ $eumm_versions [0];
437+ }
438+
439+ sub _got_version_ranges {
440+ my ($self ) = @_ ;
441+ my @all_versions = map values %$_ , grep defined , @{$self }{@PREREQ_KEYS };
442+ return 0 unless @all_versions ;
443+ grep /[^v\d\._]/, @all_versions ;
444+ }
445+
430446sub new {
431447 my ($class ,$self ) = @_ ;
432448 my ($key );
@@ -447,6 +463,9 @@ sub new {
447463 # Cleanup all the module requirement bits
448464 my %key2cmr ;
449465 my $has_cpan_meta_requirements = _has_cpan_meta_requirements;
466+ warn " Warning: version range without prerequisite of EUMM >= 7.11_01"
467+ if $has_cpan_meta_requirements and $self -> _min_EUMM lt 7.1101
468+ and $self -> _got_version_ranges;
450469 for my $key (@PREREQ_KEYS ) {
451470 $self -> {$key } ||= {};
452471 if ($has_cpan_meta_requirements ) {
609628 elsif (
610629 $cmr
611630 ? !$cmr -> accepts_module($prereq , $pr_version )
612- : $required_version > $pr_version
631+ : $required_version lt $pr_version
613632 ) {
614633 warn sprintf " Warning: prerequisite %s %s not found. We have %s .\n " ,
615634 $prereq , $required_version , ($pr_version || ' unknown version' )
@@ -2684,7 +2703,8 @@ A hash of modules that are needed to run your module. The keys are
26842703the module names ie. Test::More, and the minimum version is the
26852704value. If the required version number is 0 any version will do.
26862705The versions given may be a Perl v-string (see L<version> ) or a range
2687- (see L<CPAN::Meta::Requirements> ).
2706+ (see L<CPAN::Meta::Requirements> ). If you give a range, you need to
2707+ specify a minimum EUMM of at least C<7.11_01 > .
26882708
26892709This will go into the C<requires > field of your F<META.yml> and the
26902710C<runtime > of the C<prereqs > field of your F<META.json> .
0 commit comments