@@ -29,16 +29,37 @@ sub release_changes {
2929 my @releases = _releases($content );
3030
3131 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 ;
4263 }
4364 }
4465 }
@@ -105,7 +126,6 @@ sub _releases {
105126 = MetaCPAN::Web::Model::API::Changes::Parser-> parse($content );
106127
107128 my @releases
108- = sort { _versions_cmp( $b -> {version_parsed }, $a -> {version_parsed } ) }
109129 map {
110130 my $v = _parse_version( $_ -> {version } );
111131 my $trial = $_ -> {version } =~ / -TRIAL$ /
0 commit comments