Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • Firstly, thanks for pointing out there is a discussion about something that is potentially of interest to the WHOLE of CPAN and not just a small subset. Wouldn't it be better to have a specialist list regarding META.yml specs, that discusses these sort of changes? A Module::Build list is not something I am going to sign up as I tear my hair out with MB at the best of times.

    When I first saw your post, I assumed this was part of the Module Authors list discussion a few weeks ago, but struggled to find the thread, then looked back at your post and realised my mistake. While I'm not sure Module Authors is the appropriate place, it would be more appropriate as I suspect more authors read it.

    Secondly, while I'm inclined to agree with your sentiment about users who don't upgrade, this particular issue seems a strange one.

    If your reason for creating a key is to highlight something that is essentially an executable (or a library for that matter), then then I would have to agree creating it is a worthwhile exercise. This could then lead to others supporting the META.yml spec who are non-Perl, such as for Python, PHP or Ruby distributions (don't know if they exist at the moment, but I see no reason why they shouldn't, and for them to have a similar toolchain to install them). However, I do think requires_perl is not appropriate, requires_executable using the same format as the requires would be more useful.

    There has long been a discussion about supporting libraries and a requires_library would be a suitable companion to requires_executable. Yes it would mean that a number of tools would need to change and it might be painful for authors in the short-term, but as most CPAN Testers are the ones likely to find the problems and be reporting them, it could be managed.

    • The main issue here is that META.yml is not authorative, with the exception of the configure_requires key.

      You need to run Makefile.PL in order to determine the configuration (and thus dependencies) for that host.

      Thus, META.yml is considered to be advisory only.

      New and useful keys in META.yml are those that are likely to be useful in an advisory context.

      Knowing the minimum Perl version meets this criteria, as useful things can be done by mapping dependencies at a graph level and working out which modules are
    • However, I do think requires_perl is not appropriate, requires_executable using the same format as the requires would be more useful.

      I came to that conclusion, too, but from a desire not to have a whole salad of "requires_perl", "recommends_perl", "test_requires_perl", "configure_requires_perl", etc...

      The trouble is a general purpose executable/external utility specification is a whole lot more difficult. Previously, everything in the META.yml was about the module being shipped. Now we want to specify thi