Skip to content

Commit

Permalink
show all changelog entries since last stable
Browse files Browse the repository at this point in the history
  • Loading branch information
haarg committed Apr 23, 2016
1 parent 6c5f526 commit 644f694
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 12 deletions.
10 changes: 8 additions & 2 deletions lib/MetaCPAN/Web/Controller/Release.pm
Expand Up @@ -131,8 +131,14 @@ sub view : Private {
qw( mark_unauthorized_releases )
),

( $changes ? ( last_version_changes => $changes ) : () )

(
@$changes
? (
last_version_changes => $changes->[0],
changelogs => $changes,
)
: ()
)
);
}

Expand Down
39 changes: 31 additions & 8 deletions lib/MetaCPAN/Web/Model/API/Changes.pm
Expand Up @@ -28,20 +28,43 @@ sub last_version {
warn "Error parsing changes: $_" if $ENV{CATALYST_DEBUG};
};
}
return unless $releases && @$releases;

# Ok, lets make sure we get the right release..
my $changelog = $self->find_changelog( $release->{version}, $releases );

return unless $changelog;
return $self->filter_release_changes( $changelog, $release );
return [] unless $releases && @$releases;

my @releases = sort { $b->[0] <=> $a->[0] }
map {
my $v = $_->{version};
$v =~ s/-TRIAL$//;
my $dev = $_->{version} =~ /_|-TRIAL$/;
[ version->parse($v), $v, $dev, $_ ];
} @$releases;

my @changelogs;
my $found;
for my $r (@releases) {
if ($found) {
if ( $r->[2] ) {
push @changelogs, $r->[3];
}
else {
last;
}
}
elsif ( $r->[0] eq $release->{version} ) {
push @changelogs, $r->[3];
$found = 1;
}
}
return [ map { $self->filter_release_changes( $_, $release ) }
@changelogs ];
}

sub find_changelog {
my ( $self, $version, $releases ) = @_;

foreach my $rel (@$releases) {
return $rel if ( $rel->{version} eq $version || $rel->{version} eq "$version-TRIAL" );
return $rel
if ( $rel->{version} eq $version
|| $rel->{version} eq "$version-TRIAL" );
}
}

Expand Down
6 changes: 4 additions & 2 deletions root/release.html
Expand Up @@ -82,10 +82,12 @@

<div id="last-changes" class="well collapsed">
<div id="last-changes-container">
<h2 id="whatsnew">Changes for version <% last-changes-container.version %></h2>
<%- FOREACH changes IN changelogs %>
<h2 id="whatsnew">Changes for version <% changes.version %></h2>
<div class="change-entries">
<% change_group(last-changes-container.entries) | none %>
<% change_group(changes.entries) | none %>
</div>
<%- END %>
</div>
<button id="last-changes-toggle" class="btn-link" onclick="$('#last-changes').toggleClass('collapsed'); return false;">[ <span class="hide-more">Hide More</span><span class="show-more">Show More</span> ]</button>
</div>
Expand Down

0 comments on commit 644f694

Please sign in to comment.