http://www.perlmonks.org?node_id=1044576

vsespb has asked for the wisdom of the Perl Monks concerning the following question:

I have modules in my distributing, that I don't want to provide to end users. Actually I don't want to provide anything, except, probably, main module (App::MtAws), to end users, as my distribution is not a library, but a program, i.e. it is not for linking with other code.

The only thing should be available for end user is one script to be ran from command line, and some .pod in the future.

Examples of modules, I don't want to "provide" are: App::MtAws::Filter App::MtAws::GlacierRequest (total over 40).

here is the distribution

I have several issues with this.

1) I don't understand what different levels of "providing" a module exist. It seems that I don't want modules to be listed on CPAN pages, don't want it to appear in search, but I do want to "preserve" that namespace.

2) I have "no_index namespace" in my meta (both json and yml) (I've tried no_index directory also):

"no_index" : { "namespace" : [ "App::MtAws" ] },

but it seems it doesn't work, because I see in my meta the following:

"provides" : { "App::MtAws" : { "file" : "lib/App/MtAws.pm", "version" : "0.972" }, "App::MtAws::CheckLocalHashCommand" : { "file" : "lib/App/MtAws/CheckLocalHashCommand.pm" }, ...

3) Seems unneeded modules appear on metacpan pages but not on CPAN pages

4) When I upload new, non-dev version to PAUSE, I am getting the following email shortly:

Status of this distro: Decreasing version number ================================================ The following packages (grouped by status) have been found in the dist +ro: Status: Decreasing version number ================================= module: App::MtAws::CheckLocalHashCommand version: undef in file: lib/App/MtAws/CheckLocalHashCommand.pm status: Not indexed because lib/App/MtAws/CheckLocalHashComm +and.pm in V/VS/VSESPB/App-MtAws-0.962.tar.gz has a higher versio +n number (0) module: App::MtAws::ChildWorker version: undef in file: lib/App/MtAws/ChildWorker.pm status: Not indexed because lib/App/MtAws/ChildWorker.pm in V/VS/VSESPB/App-MtAws-0.962.tar.gz has a higher version number (0)

I believe this is because I previously used M:B version, which reported "version=0" for packages without version: example

and now I use M:B which reports no version in this case: example

Question is how to fix those emails and what else this issue affects in practice (except sending warning over email)?

5) I there a difference (in theory and practice) between

package # hide from pause mymodule

and
meta "no_index"
?