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.
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 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.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 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).
A big thank-you to everyone who has taken the time to comment on this. I am surprised and gratified that people think it important enough to spend some time on.
Ultimately, I believe I would like to leave the commit as it is, and remove support for Perl versions below 5.8.1. My reasons are as follows:
1. I understand the argument for not removing the old code but I would not feel happy leaving the pre-5.8.1 code in place even with the explicit declaration that it is not supported. I can support it now, even though it is not particularly easy to do so. I could probably continue to do so for some time. But it is not easy for me to do so and if the code is there I would want it to work.
2. I do not have a large team helping me to support Devel::Cover. Or a small team. Any time I spend dealing with 5.6 is time I am not spending on something that could be of more use to more people. Or being with my family.
3. I still have a hard time believing that there is even one person using 5.6 or 5.8.0 who would be inconvenienced by not using the most recent version of Devel::Cover. I can just about believe that there might be people still using Devel::Cover with 5.6, but if they are unable to update their version of Perl would they really be able to update their version of Devel::Cover? And even if they could, the toolchain now requires 5.8.1, so they wouldn't be able to update that.
4. If someone really does want to support 5.6 or 5.8.0 on an ongoing basis and in a way which does not require a lot of effort on my part then I am quite happy to revert the commits and accept pull requets to that end. The door is not permanently shut.
I believe this covers all of the points people have raised.
However, I will hold off on making a release which increases the minimum supported version until the QAH in Rugby. It is possible that discussions there may change my mind.