in reply to Listing dependencies for Perl modules--should even the common ones get listed?

G'day Polyglot,

My thinking on this has varied over time: no core modules; no core pragmata; all modules.

My current thinking is:

I concur with what ++hippo pointed out: "Just because they are in core today ...". For example:

$ corelist CGI Data for 2023-09-20 CGI was first released with perl 5.004, deprecated (will be CPAN-only) + in v5.19.7 and removed from v5.21.0

And, of course, my thinking on this may change yet again at some future time. So, consider this as only suggestions and guidelines; then make your own choices.

— Ken

Replies are listed 'Best First'.
Re^2: Listing dependencies for Perl modules--should even the common ones get listed?
by etj (Priest) on Jan 12, 2025 at 11:22 UTC
    I list author-only stuff under `develop.requires`. A snippet from GraphQL's Makefile.PL:
    WriteMakefile( NAME => 'GraphQL', # ... META_MERGE => { "meta-spec" => { version => 2 }, dynamic_config => 0, resources => { x_IRC => 'irc://irc.perl.org/#graphql-perl', repository => { type => 'git', url => 'git@github.com:graphql-perl/graphql-perl.git', web => 'https://github.com/graphql-perl/graphql-perl', }, bugtracker => { web => 'https://github.com/graphql-perl/graphql-perl/issues', }, license => [ 'http://dev.perl.org/licenses/' ], }, prereqs => { develop => { requires => { 'Test::Pod::Coverage' => '1.08', 'Test::Pod' => '1.22', 'Pod::Markdown' => 0, }, }, runtime => { suggests => { 'Cpanel::JSON::XS' => '3.0237', 'JSON::XS' => 0, }, }, }, }, );
    That lets me minimise or avoid specifying them separately in continuous integration (CI) config.

      G'day etj,

      That's a far more complicated Makefile.PL than I currently write; however, I can see some distinct benefits to using it.

      I found ExtUtils::MakeMaker - META_MERGE which has some limited information. It doesn't mention {prereqs}{develop}{requires} or {prereqs}{runtime}{suggests}; I suspect there may be others.

      Can you point me to a definitive reference for the META_MERGE key? Thankyou.

      — Ken