Skip to content

Commit 42dd065

Browse files
committed
fix Module-CoreList to support versions larger than 5
Important fixes include: * sorting numerical versions using <=> * properly computing the family for versions larger than 5
1 parent 0c0408c commit 42dd065

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

dist/Module-CoreList/lib/Module/CoreList.pm

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ sub _looks_like_invocant ($) { local $@; !!eval { $_[0]->isa(__PACKAGE__) } }
1212
sub _undelta {
1313
my ($delta) = @_;
1414
my (%expanded, $delta_from, $base, $changed, $removed);
15-
for my $v (sort keys %$delta) {
15+
for my $v (sort { $a <=> $b } keys %$delta) {
1616
($delta_from, $changed, $removed) = @{$delta->{$v}}{qw( delta_from changed removed )};
1717
$base = $delta_from ? $expanded{$delta_from} : {};
1818
my %full = ( %$base, %{$changed || {}} );
@@ -54,7 +54,7 @@ sub first_release_raw {
5454

5555
my @perls = $version
5656
? grep { defined $version{$_}{ $module } &&
57-
$version{$_}{ $module } ge $version } keys %version
57+
$version{$_}{ $module } >= $version } keys %version
5858
: grep { exists $version{$_}{ $module } } keys %version;
5959

6060
return @perls;
@@ -69,7 +69,7 @@ sub first_release_by_date {
6969
sub first_release {
7070
my @perls = &first_release_raw;
7171
return unless @perls;
72-
return (sort { $a cmp $b } @perls)[0];
72+
return (sort { $a <=> $b } @perls)[0];
7373
}
7474

7575
sub find_modules {
@@ -123,9 +123,9 @@ sub removed_from_by_date {
123123
sub removed_raw {
124124
shift if defined $_[1] and $_[1] =~ PKG_PATTERN and _looks_like_invocant $_[0];
125125
my $mod = shift;
126-
return unless my @perls = sort { $a cmp $b } first_release_raw($mod);
126+
return unless my @perls = sort { $a <=> $b } first_release_raw($mod);
127127
my $last = pop @perls;
128-
my @removed = grep { $_ > $last } sort { $a cmp $b } keys %version;
128+
my @removed = grep { $_ > $last } sort { $a <=> $b } keys %version;
129129
return @removed;
130130
}
131131

@@ -430,11 +430,11 @@ sub changes_between {
430430
5.041004 => '2024-09-20',
431431
5.041005 => '2024-10-20',
432432
5.041006 => '2024-11-20',
433-
5.041007 => '2024-12-20',
433+
41.007 => '2024-12-20',
434434
);
435435

436436
for my $version ( sort { $a <=> $b } keys %released ) {
437-
my $family = int ($version * 1000) / 1000;
437+
my $family = $version > 41 ? int($version) : int( $version * 1000 ) / 1000;
438438
push @{ $families{ $family }} , $version;
439439
}
440440

@@ -22478,7 +22478,7 @@ for my $version ( sort { $a <=> $b } keys %released ) {
2247822478
removed => {
2247922479
}
2248022480
},
22481-
5.041007 => {
22481+
41.007 => {
2248222482
delta_from => 5.041006,
2248322483
changed => {
2248422484
'B::Op_private' => '5.041007',

dist/Module-CoreList/lib/Module/CoreList/Utils.pm

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ sub first_release_raw {
3232

3333
my @perls = $version
3434
? grep { exists $utilities{$_}{ $util } &&
35-
$utilities{$_}{ $util } ge $version } keys %utilities
35+
$utilities{$_}{ $util } >= $version } keys %utilities
3636
: grep { exists $utilities{$_}{ $util } } keys %utilities;
3737

3838
return grep { exists $Module::CoreList::released{$_} } @perls;
@@ -47,7 +47,7 @@ sub first_release_by_date {
4747
sub first_release {
4848
my @perls = &first_release_raw;
4949
return unless @perls;
50-
return (sort { $a cmp $b } @perls)[0];
50+
return (sort { $a <=> $b } @perls)[0];
5151
}
5252

5353
sub removed_from {
@@ -63,10 +63,10 @@ sub removed_from_by_date {
6363
sub removed_raw {
6464
my $util = shift;
6565
$util = shift if eval { $util->isa(__PACKAGE__) };
66-
return unless my @perls = sort { $a cmp $b } first_release_raw($util);
66+
return unless my @perls = sort { $a <=> $b } first_release_raw($util);
6767
@perls = grep { exists $Module::CoreList::released{$_} } @perls;
6868
my $last = pop @perls;
69-
my @removed = grep { $_ > $last } sort { $a cmp $b } keys %utilities;
69+
my @removed = grep { $_ > $last } sort { $a <=> $b } keys %utilities;
7070
return @removed;
7171
}
7272

@@ -2070,7 +2070,7 @@ my %delta = (
20702070
removed => {
20712071
}
20722072
},
2073-
5.041007 => {
2073+
41.007 => {
20742074
delta_from => 5.041006,
20752075
changed => {
20762076
},

0 commit comments

Comments
 (0)