Index


About Supporting Older Releases of perl5 For CPAN Distributions

Top

TL;DR Summary

Due to several reasons, I am setting a minimal version of perl5 - 5.12.0 or even higher - for some of my CPAN distributions (not all). You should either upgrade your perl5, or alternatively pay me to support older releases of perl5.

Motivation

I hesitate to lower the supported version of perl because that may increase the maintenance burden (CPAN Testers / etc.). You should upgrade to a newer version of perl because 5.10 is very old (last released in August 2009 - http://use.perl.org/use.perl.org/articles/09/08/25/0556226.shtml ), is unmaintained and possibly broken and there's already perl 5.28.x . There's some discussion of dedicating time to doing such transitions and upgrades here - https://szabgab.com/what-does--if-it-aint-broke-dont-fix-it--really-mean.html .

If you cannot afford to upgrade the system's perl, you can try using perlbrew or similar tools. Often, using the system perl directly is not recommended anyway.

I hesitate to lower the requirement to 5.010, and then to 5.8 or possibly even lower. 5.012 is already generous enough. Someone told me that Linus Torvalds once said that his main responsibility as the chief maintainer of the Linux kernel project is to "Say 'No.'". This is one case where I wish to do exactly that.

I added a "use 5.012;" statement so Dist::Zilla can make the Kwalitee / CPANTS (see https://cpants.cpanauthors.org/ ) metrics better (minimum perl version). Reducing it further would have meant that I'd have to: 1. Risk test failures for 5.8 and 5.10. 2. Risk having to support end users with these old perl versions. All this is something I don't want to do as a precaution. Also see the joke thread at http://www.shlomifish.org/humour/fortunes/tinic.html#hamakor-discs-mozilla-1.1-1 . You really should upgrade to a newer perl5.

To quote Jenna Marbles in this video - https://www.youtube.com/watch?v=ROZjaxT_0Hw, which I found really funny and has some NSFW monologue, but SFW imagery: "Fuck that!".

Supporting Organisations With Strict Policies

Paul Bennett writes in https://www.mail-archive.com/module-authors@perl.org/msg10638.html :

    I have faced this question head-on with some of my modules.

    My take is that there are many, many corporations version-locked to
    specific "enterprise-grade" Linux distros, and stuck with system Perls
    maybe as old as 5.10, and potentially stuck with security policies that
    make solutions like perlbrew difficult.

    I try (when I can), therefore, to keep at least one version of my modules
    on CPAN that will run on 5.10 (5.8.8 sometimes), even if the default /
    latest CPAN version needs something newer for full functionality or higher
    performance or greater readability, or whatever.

    I may be alone in this, also, but whenever I clean up my PAUSE distros, I
    try to leave the $v.0 and the latest $v.$last versions of every module, for
    every major version $v of that module. This is in case anyone has a module
    (on or off CPAN) that has some kind of version locking in their deps.

Well, I don't have a lot of empathy for organisations with non-productive policies like that, but I suppose that if they really need that, then they can afford to pay me for my time and trouble, or to implement any of the other possible solutions.

Paying respect to the perl5-porters

The perl5-porters actively work to release new versions of the perl5 runtime with bug fixes (including for security bugs), new features, new automated tests, new optimisations, and other improvements, all while breaking as little backward compatibility as possible and while handling the human part of the process, such as handling bug reports, complaints, and discussion. Since the release of perl 5.12.0, a new stable version of perl5 was released yearly every May or close to it.

They deserve a lot of appreciation, and I hereby admit that I love them all. ♥♥♥! Thanks!

Many perl5 and CPAN contributors went to great effort to create open source solutions such as perlbrew or local::lib to facilitate using an up-to-date version of perl5, so there is little excuse to avoid updating.

As a result, while you are free to make use of older perl5 releases (while risking suffering from many potential bugs), I think it is unfair if you complain that CPAN authors like me set the minimum bar higher than 5.8.x/5.10.x. If you really need my distributions to work on your old perl5 releases, then please implement one of the suggestions below.

The payment terms

I request a payment of 100 USD per year per distribution, to make me support perl-5.8.x-or-above — not just for you — for everybody. At the end of the year, if I don't get a term renewal, I may continue to support the older versions, or I may not.

Note that you may opt to be credited as supporters of the distribution, in its documentation.

Alternative Options To Paying

* Use perlbrew

See https://perlbrew.pl/ .

* Apply a downstream patch.
* Fork it under a different name.
* Stop using it.

Or patch the reverse dependencies to use something else.

* Take over PAUSE maintainership.

References

* GitHub discussion
* module-authors discussion
* What does "if it ain't broke, don't fix it" really mean?

Contact

* https://metacpan.org/author/SHLOMIF
* http://www.shlomifish.org/me/contact-me/
* http://www.shlomifish.org/meta/donate/