Upping minimum version for Devel::Cover

Devel::Cover is fast approaching its fifteenth birthday. When it was released the minimum Perl version supported was 5.6.1, and that was because the mechanism Devel::Cover needed was not introduced until 5.6.1.

Since that time, Devel::Cover has supported every new, stable version of Perl, whilst continuing to support every version from 5.6.1. Not every feature is available on every version, but most are.

I have recently pushed a commit which raises the minimum version to 5.8.1. The main reason for this is that it is becoming increasingly difficult to install 5.6.x and 5.8.0 to test against. Other reasons are that Devel::Cover has reduced functionality prior to 5.8.1, and that the official Perl toolchain now has a minimum version of 5.8.1. I'd rather spend my limited time on other aspects of Devel::Cover than supporting perl versions that are well over a decade old.

I doubt very much that anyone is seriously using current versions of Devel::Cover on versions of Perl before 5.8.1, but I'd be interested to hear from anyone who might find this new minimum requirement to be troublesome.

Otherwise, I'll plan on releasing Devel::Cover 1.22 with this new requirement in the near future.

10 Comments

I cannot argue with your difficulties in installing 5.6 to test with (I have a 5.6.2 install that *kind of* works, but it is awkward to use and impossible to submit cpan test reports from, so its use to me is only marginal). However, I would humbly suggest that you *not* change the 'use' line in code to *force* that 5.8.1 be used -- surely, if someone else wants to install the code under 5.6, and especially if they are motivated enough to fix its bugs, that should be sufficient?

This is similar to the policy in Moose -- while the official lowest perl version is 5.8.3, only 5.10+ is "supported" in the sense that bugs will be actively fixed. If a 5.8-only bug appears, we will accept patches to fix it, but we will not expend a lot of effort ourselves to fix it.

Don't turn off travis testing.

A Better option is to relocate 5.6 into the "allowed failures" section.

That way the failures will still be obvious to anyone who cares, and wants to fix it.

And that way when it gets fixed, the PR will show it got fixed.

Everybody who uses perl 5.6 and needs the latest version of Devel::Cover, please raise your hand.

Seriously, I don't think there is anyone out there with that profile. Unless you actually enjoy it, I don't think you (or anyone else) should bother supporting 5.6.x

Instead of that, include a note in the documentation of Devel::Cover pointing out which was the last version of DC tested on perl 5.6.1 and maybe even how to install it.

Then move on.

> I don't think you (or anyone else) should bother supporting 5.6.x

That's not how this works.

Its entirely fine that he doesn't want to support it himself.

But expecting the 5.6'ers to turn up today and magically wave a wand and say "here I am" and start contributing is just not going to work out as intended.

Getting 5.6 support is always a slow thing because there's not a lot of interest, and the people who are interested don't update frequently as it is ( not to mention, there is no paperwork they signed when they started using Devel::Cover that they would read all blogs on the matter )

Hence, its fine to go "Hey, I'm not going to bother caring about this myself, if it works it works, if it doesn't, it doesn't".

That way, when it does work, you don't make problems where there aren't any.

And when it doesn't work, you leave open the door of permission to "some interested party" to fix it at a future time.

That's shifting the burden on keeping 5.6 support into the interested parties.

But its not creating problems artificially where there aren't any already.

Ether wrote:

I would humbly suggest that you *not* change the 'use' line in code to *force* that 5.8.1 be used -- surely, if someone else wants to install the code under 5.6, and especially if they are motivated enough to fix its bugs, that should be sufficient?

I disagree. That approach privileges the wants of a hypothetical user over the needs of a very real library author. If someone is unhappy with Paul's decision, wants to install the code under 5.6 and fix its bugs, he or she can fork the code from github.

Thank you very much.
That approach privileges the wants of a hypothetical user over the needs of a very real library author.

It does? By which mechanism?

Let's not forget that Devel::Cover is a 100 % developer's tool. You don't need it on the system you're deploying your code to. So upping the required Perl version for Devel::Cover will not influence the requirements of your production code, only your developer's workstation and maybe your CI system.

So the question to ask is not: "who is still using 5.6.1 for production code" but "who is developing on 5.6.1 and has only 5.6.1 available on that machine?".

So the question to ask is not: "who is still using 5.6.1 for production code" but "who is developing on 5.6.1 and has only 5.6.1 available on that machine?".

So you check code coverage on e.g. 5.22 on your dev machine and that’s good enough to deploy to some other perl version(s) in production…?

If you can't support the 5.6, I'd up the version number, so some poor sod doesn't try installing non-working code on 5.6. If someone wants to fix it, let them, but I wouldn't advertise it as supporting something it doesn't (the version number does that).

Leave a comment

About Paul Johnson

user-pic I don't really blog about Perl.