Skip to content

Commit cfb495a

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 75941c3 commit cfb495a

File tree

3 files changed

+16
-16
lines changed

3 files changed

+16
-16
lines changed

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

Lines changed: 10 additions & 10 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

@@ -431,11 +431,11 @@ sub changes_between {
431431
5.041005 => '2024-10-20',
432432
5.041006 => '2024-11-20',
433433
5.041007 => '2024-12-20',
434-
5.041008 => '2025-01-20',
434+
41.008 => '2025-01-20',
435435
);
436436

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

@@ -22499,11 +22499,11 @@ for my $version ( sort { $a <=> $b } keys %released ) {
2249922499
removed => {
2250022500
}
2250122501
},
22502-
5.041008 => {
22502+
41.008 => {
2250322503
delta_from => 5.041007,
2250422504
changed => {
22505-
'B::Op_private' => '5.041008',
22506-
'Config' => '5.041008',
22505+
'B::Op_private' => '41.008000',
22506+
'Config' => '41.008000',
2250722507
'Module::CoreList' => '5.20250120',
2250822508
'Module::CoreList::Utils'=> '5.20250120',
2250922509
},

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

@@ -2077,7 +2077,7 @@ my %delta = (
20772077
removed => {
20782078
}
20792079
},
2080-
5.041008 => {
2080+
41.008 => {
20812081
delta_from => 5.041007,
20822082
changed => {
20832083
},

lib/B/Op_private.pm

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)