Open vanHoesel opened 1 year ago
Do your pipelines really run on <5.12 perls?
However, it's not easy to specify "require this version but no higher" in metadata, certainly not in a way that cpan clients will be able to understand.
Yes, I have pipelines that go all the way back to 5.8.
I pride myself that a module that has a perl
only dependency, that it runs all the way back. It does not take that much to just avoid the modern constructs like //=
.
Most of the open source code available at CPAN that I have worked on over the last years is something I want/need to be able to run on older systems.
Notably, the entire OpenTracing::Interface
, OpenTracing::Implementation
stack and ecosystem has been written and design with old systems in mind. That way, it allows DevOps to enable APM and visibility on older codebases out in the wild. I even know of use case where it runs on ModPerl
, something I did not expect to run it on.
It is extremely easy to specify that it should use some pre '0.200':
just update the Makefile.PL
like:
'Test::Deep' => '<0.200',
and if you have a ExtUtilsMakeMaker
that is recent enough to parse ranged version strings, that will just work.
And we can all have simple pipelines, that no not require tricks like installing dependencies manually with cpanm --notests Foo::Bar
before installing cpanm --instaldeps .
And it all works all the way back to perl 5.6.x ... nice, isn't it
More recent versions of
Test::Deep
, since January 2023, do break pipelines when running on ancient Perls.The author of
Test::Deep
has decided to rely on Perl 5.12, for now, and seems not to be shy of bumping up that minimal requirement even further.By locking out the recent changes from
Test::Deep
since1.200
, tool chains and pipelines continue happily running again.Test::Deep - Support older Perls