Ovid / test--most

Test::Most -- The most commonly needed testing functionality in Perl
9 stars 14 forks source link

Lock `Test::Deep` to pre 1.200 #17

Open vanHoesel opened 1 year ago

vanHoesel commented 1 year ago

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 since 1.200, tool chains and pipelines continue happily running again.

Test::Deep - Support older Perls

karenetheridge commented 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.

vanHoesel commented 1 year ago

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 //=.

vanHoesel commented 1 year ago

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.

vanHoesel commented 1 year ago

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.

vanHoesel commented 1 year ago

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