diff --git a/src/Hydra/lib/Hydra/Base/Controller/NixChannel.pm b/src/Hydra/lib/Hydra/Base/Controller/NixChannel.pm index e36c4b3d..7c3d06d9 100644 --- a/src/Hydra/lib/Hydra/Base/Controller/NixChannel.pm +++ b/src/Hydra/lib/Hydra/Base/Controller/NixChannel.pm @@ -68,10 +68,20 @@ sub name { return $build->resultInfo->releasename || $build->nixname; } + +sub sortPkgs { + # Sort by name, then timestamp. + return sort + { lc(name($a->{build})) cmp lc(name($b->{build})) + or $a->{build}->timestamp <=> $b->{build}->timestamp + } @_; +} + + sub channel_contents : Chained('nix') PathPart('') Args(0) { my ($self, $c) = @_; $c->stash->{template} = 'channel-contents.tt'; - $c->stash->{nixPkgs} = [sort { lc(name($a->{build})) cmp lc(name($b->{build})) } (values %{$c->stash->{nixPkgs}})]; + $c->stash->{nixPkgs} = [sortPkgs (values %{$c->stash->{nixPkgs}})]; }