James E Keenan <[email protected]> writes:
> Daniel Pittman wrote:
I thought I responded to this including the list, but apparently it never came
through. So, I have excerpted the part that most interests me as a new author
on CPAN:
[...]
> I note in your Makefile.PL, you have:
>
> 'BUILD_REQUIRES' => {
> 'Carp' => '0',
> 'File::Find' => '0',
> 'File::Temp' => '0',
> 'Log::Any' => '0',
> 'Log::Any::Adapter' => '0',
> ...
> },
> 'PREREQ_PM' => {
> 'File::Basename' => '0',
> 'Log::Any::Adapter::Base' => '0',
> 'Log::Any::Adapter::Util' => '0',
> 'Unix::Syslog' => '0'
> },
>
> Without claiming to understand anything about Dist::Zilla, my gut reaction is
> that your settings are wrong. Why are Log::Any and Log::Any::Adapter placed
> under BUILD_REQUIRES rather than PREREQ_PM?
As far as I can tell, those are correct dependencies:
I use Log::Any when testing, but it is not technically a dependency of my code
at run-time. The Log::Any::Adapter modules are direct run-time dependencies,
so they are present.
Given that the Log::Any::Adapter distribution does include a dependency on
Log::Any, I believe that installing LAAS would do the right thing.
Is it generally the practice of CPAN authors to specify transitive
dependencies like that, though, or should I be looking at something like the
META.yml 'recommends' section to suggest this?
I didn't really bother with the recommends because, as far as I can tell from
reading about it, it doesn't actually have much support in the two main CPAN
toolchains, so doesn't really bring much value to anyone...
(In the Debian universe I would expect a recommends option, since the code
technically doesn't *require* Log::Any, but is not of much value without it.)
Daniel
--
✣ Daniel Pittman ✉ [email protected] ☎ +61 401 155 707
♽ made with 100 percent post-consumer electrons