@@ -29,16 +29,37 @@ sub release_changes {
29
29
my @releases = _releases($content );
30
30
31
31
my @changelogs ;
32
- while ( my $r = shift @releases ) {
33
- if ( _versions_cmp( $r -> {version_parsed }, $version ) == 0 ) {
34
- $r -> {current } = 1;
35
- push @changelogs , $r ;
36
- if ( $opts {include_dev } ) {
37
- for my $dev_r (@releases ) {
38
- last
39
- if !$dev_r -> {dev };
40
- push @changelogs , $dev_r ;
41
- }
32
+
33
+ if ( _versions_cmp( $releases [-1]-> {version_parsed }, $version ) == 0 )
34
+ {
35
+ @releases = reverse @releases ;
36
+ }
37
+ elsif (
38
+ _versions_cmp( $releases [0]-> {version_parsed }, $version ) == 0 )
39
+ {
40
+ # noop
41
+ }
42
+ else {
43
+ @releases = sort {
44
+ _versions_cmp( $b -> {version_parsed }, $a -> {version_parsed } )
45
+ } @releases ;
46
+ if ( _versions_cmp( $releases [0]-> {version_parsed }, $version )
47
+ != 0 )
48
+ {
49
+ @releases = ();
50
+ }
51
+ }
52
+
53
+ if (@releases ) {
54
+ my $current = shift @releases ;
55
+ $current -> {current } = 1;
56
+ push @changelogs , $current ;
57
+
58
+ if ( $opts {include_dev } ) {
59
+ for my $dev_r (@releases ) {
60
+ last
61
+ if !$dev_r -> {dev };
62
+ push @changelogs , $dev_r ;
42
63
}
43
64
}
44
65
}
@@ -105,7 +126,6 @@ sub _releases {
105
126
= MetaCPAN::Web::Model::API::Changes::Parser-> parse($content );
106
127
107
128
my @releases
108
- = sort { _versions_cmp( $b -> {version_parsed }, $a -> {version_parsed } ) }
109
129
map {
110
130
my $v = _parse_version( $_ -> {version } );
111
131
my $trial = $_ -> {version } =~ / -TRIAL$ /
0 commit comments