Repository: lucy Updated Branches: refs/heads/0.6 764a88944 -> 8aafcd961 refs/heads/master 05fc61872 -> 3c97420f7
Rework PAUSE exclusions Remove class lists in Lucy::Redacted and `_gen_pause_exclusion_list`. The generated `no_index` section was essentially ineffective, because it was overridden by the auto-generated `provides` section. It was also cluttered with files that wouldn't be indexed anyway. Add `no_index` section manually in Build.PL. Since version 0.40_11, this stops Module::Build from creating a `provides` section in the CPAN META files. Add directories `sample` and `devel` to `no_index` in order to stop MetaCPAN from indexing their contents. Remove the custom `distmeta` action which checked version numbers in .pm files and relied on the `provides` section being generated. Part of LUCY-313. Project: http://git-wip-us.apache.org/repos/asf/lucy/repo Commit: http://git-wip-us.apache.org/repos/asf/lucy/commit/7512189b Tree: http://git-wip-us.apache.org/repos/asf/lucy/tree/7512189b Diff: http://git-wip-us.apache.org/repos/asf/lucy/diff/7512189b Branch: refs/heads/0.6 Commit: 7512189ba7581c32ec0752f6111aa799a69b5da6 Parents: 764a889 Author: Nick Wellnhofer <wellnho...@aevum.de> Authored: Thu Nov 24 15:05:39 2016 +0100 Committer: Nick Wellnhofer <wellnho...@aevum.de> Committed: Fri Dec 2 20:12:53 2016 +0100 ---------------------------------------------------------------------- perl/Build.PL | 4 ++ perl/buildlib/Lucy/Build.pm | 76 ++----------------------------------- perl/buildlib/Lucy/Redacted.pm | 63 ------------------------------ 3 files changed, 7 insertions(+), 136 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucy/blob/7512189b/perl/Build.PL ---------------------------------------------------------------------- diff --git a/perl/Build.PL b/perl/Build.PL index 3fddd54..f4484aa 100644 --- a/perl/Build.PL +++ b/perl/Build.PL @@ -55,6 +55,10 @@ my $builder = Lucy::Build->new( 'Clownfish' => 0.006000, 'Clownfish::CFC' => 0.006000, }, + no_index => { + directory => [qw( buildlib devel sample )], + package => [qw( Lucy::Test )], + }, meta_merge => { keywords => [qw( search lucy lucene )], }, meta_add => { resources => { http://git-wip-us.apache.org/repos/asf/lucy/blob/7512189b/perl/buildlib/Lucy/Build.pm ---------------------------------------------------------------------- diff --git a/perl/buildlib/Lucy/Build.pm b/perl/buildlib/Lucy/Build.pm index 87047ba..50a4ba5 100644 --- a/perl/buildlib/Lucy/Build.pm +++ b/perl/buildlib/Lucy/Build.pm @@ -216,20 +216,11 @@ limitations under the License. END_AUTOGEN } -sub _check_module_build_for_dist { - eval "use Module::Build 0.38;"; - die "./Build dist reqiures Module::Build 0.38 or higher--this is only " - . Module::Build->VERSION . $/ if $@; -} - -sub ACTION_distdir { - _check_module_build_for_dist; - shift->SUPER::ACTION_distdir(@_); -} - sub ACTION_dist { my $self = shift; - _check_module_build_for_dist; + + die("Module::Build 0.40_11 is required for ./Build dist") + if $Module::Build::VERSION < 0.40_11; # Create POD. $self->depends_on('pod'); @@ -263,10 +254,6 @@ sub ACTION_dist { move( "MANIFEST", "MANIFEST.bak" ) or die "move() failed: $!"; $self->depends_on('manifest'); - my $no_index = $self->_gen_pause_exclusion_list; - my $meta_add = $self->meta_add || {}; - $meta_add->{no_index} = $no_index; - $self->meta_add( $meta_add ); $self->SUPER::ACTION_dist; # Clean up. @@ -277,63 +264,6 @@ sub ACTION_dist { move( "MANIFEST.bak", "MANIFEST" ) or die "move() failed: $!"; } -sub ACTION_distmeta { - my $self = shift; - $self->SUPER::ACTION_distmeta(@_); - # Make sure everything has a version. - require CPAN::Meta; - my $v = version->new($self->dist_version); - my $meta = CPAN::Meta->load_file('META.json'); - my $provides = $meta->provides; - while (my ($pkg, $data) = each %{ $provides }) { - die "$pkg, defined in $data->{file}, has no version\n" - unless $data->{version}; - die "$pkg, defined in $data->{file}, is " - . version->new($data->{version})->normal - . " but should be " . $v->normal . "\n" - unless $data->{version} == $v; - } -} - -# Generate a list of files for PAUSE, search.cpan.org, etc to ignore. -sub _gen_pause_exclusion_list { - my $self = shift; - - # Only exclude files that are actually on-board. - open( my $man_fh, '<', 'MANIFEST' ) or die "Can't open MANIFEST: $!"; - my @manifest_entries = <$man_fh>; - chomp @manifest_entries; - - my @excluded_files; - for my $entry (@manifest_entries) { - # Allow README and Changes. - next if $entry =~ m#^(README|Changes)#; - - # Allow public modules. - if ( $entry =~ m#^(perl/)?lib\b.+\.(pm|pod)$# ) { - open( my $fh, '<', $entry ) or die "Can't open '$entry': $!"; - my $content = do { local $/; <$fh> }; - next if $content =~ /=head1\s*NAME/; - } - - # Disallow everything else. - push @excluded_files, $entry; - } - - # Exclude redacted modules. - if ( eval { require "buildlib/Lucy/Redacted.pm" } ) { - my @redacted = map { - my @parts = split( /\W+/, $_ ); - catfile( $LIB_DIR, @parts ) . '.pm' - } Lucy::Redacted->redacted, Lucy::Redacted->hidden; - push @excluded_files, @redacted; - } - - my %uniquifier; - @excluded_files = sort grep { !$uniquifier{$_}++ } @excluded_files; - return { file => \@excluded_files }; -} - sub ACTION_semiclean { my $self = shift; print "Cleaning up most build files.\n"; http://git-wip-us.apache.org/repos/asf/lucy/blob/7512189b/perl/buildlib/Lucy/Redacted.pm ---------------------------------------------------------------------- diff --git a/perl/buildlib/Lucy/Redacted.pm b/perl/buildlib/Lucy/Redacted.pm deleted file mode 100644 index 21abca8..0000000 --- a/perl/buildlib/Lucy/Redacted.pm +++ /dev/null @@ -1,63 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You under the Apache License, Version 2.0 -# (the "License"); you may not use this file except in compliance with -# the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -use strict; -use warnings; - -package Lucy::Redacted; - -our $VERSION = '0.006000'; -$VERSION = eval $VERSION; - -use Exporter 'import'; -our @EXPORT_OK = qw( list ); - -# Return a partial list of Lucy classes which were once public but are -# now either deprecated, removed, or moved. - -sub redacted { - return qw( - Lucy::Analysis::LCNormalizer - Lucy::Analysis::Token - Lucy::Analysis::TokenBatch - Lucy::Index::Term - Lucy::InvIndex - Lucy::InvIndexer - Lucy::Object::Obj - Lucy::QueryParser::QueryParser - Lucy::Search::BooleanQuery - Lucy::Search::QueryFilter - Lucy::Search::SearchServer - Lucy::Search::SearchClient - ); -} - -# Hide additional stuff from PAUSE and search.cpan.org. -sub hidden { - return qw( - Lucy::Analysis::Inversion - Clownfish::Num - Lucy::Plan::Int32Type - Lucy::Plan::Int64Type - Lucy::Plan::Float32Type - Lucy::Plan::Float64Type - Lucy::Redacted - Lucy::Test::Object::TestCharBuf - Lucy::Test::TestUtils - Lucy::Util::BitVector - ); -} - -1;