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

Reply via email to