On 24/11/2016 06:37, Marvin Humphrey wrote:
The historical motivation behind all those manipulations was to improve the
presentation on search.cpan.org, by ensuring that only the classes actually
included in the public API showed up. Having a bunch of non-public classes
with blank or broken documentation cluttered things up.
This seems like a historical artifact then. We don't have any non-public
classes implemented in Perl these days. There are a couple of empty .pm files
for such classes, but these can be simply removed.
What I don't understand is the list of classes in Lucy::Redacted:
https://git1-us-west.apache.org/repos/asf?p=lucy.git;a=blob;f=perl/buildlib/Lucy/Redacted.pm;h=21abca8fb13e858487309f1e5d8401e16b945482;hb=HEAD
Most of these are completely gone. Some are non-public. For Lucy::Object::Obj,
there's some POD explaining that the class was moved:
https://git1-us-west.apache.org/repos/asf?p=lucy.git;a=blob;f=perl/lib/Lucy/Object/Obj.pm;h=79532f2c9b88ddcf5fbd9b97a16eccc5c90a5408;hb=HEAD
But if we want to keep such notes around, it doesn't make much sense to try
hide them from CPAN. (Note that the mechanism to hide them doesn't even work
as explained in LUCY-313.)
I'll simply go ahead and
- remove _gen_pause_exclusion_list in Lucy::Build,
- remove Lucy::Redacted,
- remove .pm files for non-public classes,
- add a no_index entry in Build.PL for buildlib and test code.
This removes a bunch of code with seemingly no effect and cleans up the CPAN
META files. The only danger I can see is breaking Perl code that still "use"s
an obsolete class.
Another side effect is that the "provides" section will be removed from the
CPAN META files. This breaks the version checks in our custom ACTION_distmeta.
This is unfortunate, but our update_version script should be robust enough. Or
are there other benefits from having a "provides" section?
http://search.cpan.org/~dagolden/CPAN-Meta-2.150010/lib/CPAN/Meta/Spec.pm#provides
All this data seems to be generated by the PAUSE indexer anyway, even if the
section is missing.
Nick