in reply to Deciding dependency versions
G'day Bod,
I was going to provide an answer specific to your Business::Stripe::Webhook module; however, the link you provided resulted in "Error 404 - Not Found", so I can't do that.
[Note: I've made reference to v5.16.3 based on what you wrote in "Re^2: Multidimensional arrays".]
I see ++hv has already supplied an excellent response. The information I've given below is intended to be complementary.
Do you have a 'use VERSION;' statement in your code? I'd generally consider it to be a good idea to include one; although, it's not essential. In Makefile.PL, a MIN_PERL_VERSION entry should mirror this.
"The modules I have selected are all core."
They may be core in v5.16.3 but not necessarily in your MIN_PERL_VERSION. I assume you have this code:
use strict; use warnings;
As warnings is not dual-life (i.e. can't install separately from CPAN), you'll need at least:
use 5.006;
based on:
$ corelist strict warnings Data for 2022-05-27 strict was first released with perl 5 Data for 2022-05-27 warnings was first released with perl v5.6.0
Here's when the modules that you listed first entered core:
$ corelist JSON::PP HTTP::Tiny Digest::SHA Time::Piece Data for 2022-05-27 JSON::PP was first released with perl v5.13.9 Data for 2022-05-27 HTTP::Tiny was first released with perl v5.13.9 Data for 2022-05-27 Digest::SHA was first released with perl v5.9.3 Data for 2022-05-27 Time::Piece was first released with perl v5.9.5
And here's the versions you'd get with v5.16:
$ corelist -v 5.016 JSON::PP HTTP::Tiny Digest::SHA Time::Piece JSON::PP 2.27200 HTTP::Tiny 0.017 Digest::SHA 5.71 Time::Piece 1.20_01
"I strongly suspect that I could go for earlier ones ..."
As you wind back your MIN_PERL_VERSION, you'll need an increasing number of modules from CPAN. Some examples (undef indicates not in core for that Perl version):
$ corelist -v 5.010 JSON::PP HTTP::Tiny Digest::SHA Time::Piece JSON::PP undef HTTP::Tiny undef Digest::SHA 5.45 Time::Piece 1.12 $ corelist -v 5.008 JSON::PP HTTP::Tiny Digest::SHA Time::Piece JSON::PP undef HTTP::Tiny undef Digest::SHA undef Time::Piece undef
Unless module installations are performed manually, utilities like cpan and cpanm will install the latest from CPAN. These modules may have dependencies with later versions (than those in core) and will also need to be installed.
As I believe you're using Strawberry Perl, you can install different Perl versions using berrybrew. I haven't used it myself, but have heard good things; and the author is fellow monk stevieb, so I'm sure you could get good support if that's needed.
Install v5.14; don't add any CPAN modules; add your Business::Stripe::Webhook code; and see if that works without any problems. Repeat with other Perl versions. Try with just a few CPAN installations. You could end up with something like this in Makefile.PL
MIN_PERL_VERSION => 5.012, PREREQ_PM => { Digest::SHA => 0, Time::Piece => 0, JSON::PP => '2.27200', HTTP::Tiny => '0.017', },
[Aside: Nothing to do with your question, but I thought I'd alert you to a security vulnerability in HTTP::Tiny. See: "CVE-2023-31486"; "RFC: Making SSL_verify safer"; "Change verify_SSL default to 1, add ENV var to enable insecure default".]
— Ken
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Deciding dependency versions
by Bod (Parson) on Jun 10, 2023 at 21:28 UTC | |
by kcott (Archbishop) on Jun 10, 2023 at 23:25 UTC | |
by Tux (Canon) on Jun 11, 2023 at 11:00 UTC | |
by Bod (Parson) on Jun 11, 2023 at 11:51 UTC | |
by Bod (Parson) on Jun 11, 2023 at 12:12 UTC | |
by kcott (Archbishop) on Jun 11, 2023 at 14:09 UTC | |
by Bod (Parson) on Jun 11, 2023 at 16:40 UTC |