in reply to Deciding dependency versions

Short answer: select the minimum versions you have tested.

Given these are core modules, a reasonable thing to do would be to consider the minimum version of perl you think you'd be prepared to support, install it locally (eg with perlbrew) to check that your tests pass on that version, and then specify the versions that shipped with that release.

I don't know anything about Stripe, but I'm guessing that a good number of the type of people that would want to use your module will be small-business owners that would not want to modify the perl their OS ships with (nor install an additional perl), so the earlier the version you can support the more people you will be able to serve.

Perl ships with a program corelist which will help with information about versions of modules in the various releases of perl it knows about. Note that when it says "Digest::SHA was first released with perl v5.9.3", a development release, that implies the first full release will have been v5.10.0:

% perl -v | head -2 This is perl 5, version 26, subversion 1 (v5.26.1) built for x86_64-li +nux-gnu-thread-multi % corelist Digest::SHA Data for 2017-09-22 Digest::SHA was first released with perl v5.9.3 % corelist Digest::SHA -v 5.10.0 Digest::SHA 5.45 % corelist -a Digest::SHA | grep '[02468]\.0 ' v5.10.0 5.45 v5.12.0 5.47 v5.14.0 5.61 v5.16.0 5.71 v5.18.0 5.84 v5.20.0 5.88 v5.22.0 5.95 v5.24.0 5.95 v5.26.0 5.96 %

Replies are listed 'Best First'.
Re^2: Deciding dependency versions
by Bod (Parson) on Jun 10, 2023 at 21:20 UTC
    I don't know anything about Stripe, but I'm guessing that a good number of the type of people that would want to use your module will be small-business owners that would not want to modify the perl their OS ships with

    I reckon that would be a very accurate assumption...

    For that reason, for the Perl version I start with v5.006 (because that's what Module::Starter specifies for Makefile.PL and check to see if I am using any Perl features that were not in that version. If I am, I ask myself if my code benefits from the later features. So, I have process I am happy with for selecting the minimum Perl version.

    Additionally, I have v5.16.3 running on my hosting so (almost) everything gets tested on that. I don't feel there is any need to support anything older but I will if it is only a case of changing a digit in Makefile.PL

    Perl ships with a program corelist

    Thanks for that - I didn't realise that. This will save me time looking up release versions in the online documentation :)

      Well, I'm going to guess you haven't tested it on perl-5.006, since JSON::PP starts with a use 5.008. :)