diff --git a/lib/MetaCPAN/Document/Distribution.pm b/lib/MetaCPAN/Document/Distribution.pm index 131551c71..25bde766d 100644 --- a/lib/MetaCPAN/Document/Distribution.pm +++ b/lib/MetaCPAN/Document/Distribution.pm @@ -37,26 +37,19 @@ sub releases { sub set_first_release { my $self = shift; - $self->unset_first_release; - my $release = $self->releases->sort( ["date"] )->first; - return unless $release; - return $release if $release->first; - $release->_set_first(1); - $release->put; - return $release; -} -sub unset_first_release { - my $self = shift; - my $releases - = $self->releases->filter( { term => { first => 'true' }, } ) - ->size(200)->scroll; - while ( my $release = $releases->next ) { - $release->_set_first(0); - $release->update; + my @releases = $self->releases->sort( ["date"] )->all; + + my $first = shift @releases; + $first->_set_first(1); + $first->put; + + for my $rel (@releases) { + $rel->_set_first(0); + $rel->put; } - $self->index->refresh if $releases->total; - return $releases->total; + + return $first; } __PACKAGE__->meta->make_immutable; diff --git a/lib/MetaCPAN/Script/Release.pm b/lib/MetaCPAN/Script/Release.pm index 5978f2bc0..25381f12d 100644 --- a/lib/MetaCPAN/Script/Release.pm +++ b/lib/MetaCPAN/Script/Release.pm @@ -275,10 +275,6 @@ sub import_archive { # update 'first' value $document->set_first; $document->put; - - sleep 2 - if defined $ENV{'METACPAN_SERVER_CONFIG_LOCAL_SUFFIX'} - and $ENV{'METACPAN_SERVER_CONFIG_LOCAL_SUFFIX'} eq 'testing'; } sub _build_backpan_index { diff --git a/t/00_setup.t b/t/00_setup.t index 2e1929b34..818b206fd 100644 --- a/t/00_setup.t +++ b/t/00_setup.t @@ -81,6 +81,7 @@ copy( $src_dir->file('bugs.tsv'), $fakecpan_dir->file('bugs.tsv') ); $server->index_releases; $server->set_latest; +$server->set_first; $server->index_authors; $server->index_cpantesters; diff --git a/t/lib/MetaCPAN/TestServer.pm b/t/lib/MetaCPAN/TestServer.pm index 0afd2b81b..e6c4b2a0d 100644 --- a/t/lib/MetaCPAN/TestServer.pm +++ b/t/lib/MetaCPAN/TestServer.pm @@ -6,6 +6,7 @@ use CPAN::Repository::Perms; use MetaCPAN::Script::Author; use MetaCPAN::Script::CPANTesters (); use MetaCPAN::Script::Latest; +use MetaCPAN::Script::First; use MetaCPAN::Script::Mapping; use MetaCPAN::Script::Release; use MetaCPAN::Server (); @@ -184,6 +185,13 @@ sub set_latest { 'latest' ); } +sub set_first { + my $self = shift; + local @ARGV = ('first'); + ok( MetaCPAN::Script::First->new_with_options( $self->_config )->run, + 'first' ); +} + sub index_authors { my $self = shift;