On 30 November 2017 at 07:06, James E Keenan <jkee...@pobox.com> wrote: > This is a CPAN distribution naming question. > > My understanding is that the 'App' top-level namespace on CPAN is intended > for the use of distributions which someone will primarily use by running an > executable program found in the distribution's 'bin/' directory rather than > by constructing program using functions found in .pm files under the 'lib/' > directory. > > Examples: > > Distribution Executable > App-cpanminus cpanm > App-cpanminus-reporter cpanm-reporter > > Now suppose that I want to write a library which subclasses an 'App' > distribution but where I don't want to provide an "app", i.e., where I'm not > going to write a script in the 'bin/' directory but am simply going to write > methods in a module underneath 'lib/'. > > Should such a library go into the 'App' namespace? I wouldn't think so, > because it no longer provides an app. > > On the other hand, our ordinary practice when subclassing is to extend the > name one directory deeper. Dropping the 'App-' from the start of a distro's > name when subclassing the distro deviates from this practice. That's > potentially confusing to CPAN users. > > Specifically, I want to create a distro which subclass garu's > App-cpanminus-reporter but does not provide an installable in 'bin/'. Do I > call it: > > App-cpanminus-reporter-XXX > > ... or > > Cpanminus-reporter-XXX > > ... or something else? > > Thank you very much. > Jim Keenan
I'd say call it an App-* and not worry about the bin/ stuff. There are plenty of CPAN packages that ship bin/ things without being an App- anyway ( eg: Cpanel-JSON-XS ) So seeing the bin <-> App tight interconnection is the error here imo. After all, there's other CPAN Modules that ship within App-Foo like App-Foo-Bar which aren't even themselves containing things that could be conceivably executable, they're just implementation details of App-Foo And if the nature of your App-* design is such that you expect end users to instantiate a copy in their own bin-script, then shipping it as an App-* is entirely reasonable to me. -- Kent KENTNL - https://metacpan.org/author/KENTNL