Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace Travis CI with GitHub Actions #193

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

JRaspass
Copy link
Contributor

@JRaspass JRaspass commented Feb 9, 2024

This is a first pass at adding GitHub Actions to this project to replace the dead Travis CI. It runs and passes the test suite on every Perl release from 5.8 to 5.38.

However getting Perl 5.8, 5.10, 5.12, and to a lesser extent 5.14 working was a pain in the ass. The world has moved on and many of our direct and transitive dependencies don't support decade-and-a-half old Perls, who'd've thunk it!? My solution is to install a specific set of dependencies at specific versions:

# Install specific versions of deps that no longer support Perl 5.8
#
# Data::OptList             > 0.114  requires Perl v5.12
# Getopt::Long::Descriptive > 0.105  requires Perl v5.10
# IO::Socket::IP            > 0.41   requires Perl v5.14
# Plack                     > 1.0050 requires Perl v5.12
# Pod::Man                  > 4.14   requires Perl v5.10
# String::RewritePrefix     > 0.008  requires Perl v5.12
# Sub::Expoter              > 0.990  requires Perl v5.12
# Test::Deep                > 1.130  requires Perl v5.12
- run: >
    cpanm --notest
    Data::[email protected]
    Sub::[email protected]
    String::[email protected]
    Pod::[email protected]
    Getopt::Long::[email protected]
    IO::Socket::[email protected]
    Test::[email protected]
    [email protected]

While this technically works it's hella fragile and will require more and more maintenance over time as the world moves on. So I suggest we embrace this new world order and bump our minimum Perl to at least v5.12 (IO::Socket::IP is the only v5.14+ dep so far).

Bumping our Perl would allow for some nice cleanups and modernisations like using defined-or, droping Class::C3::Adopt::NEXT/MRO::Compat in favour of the core mro, and probably many others. Thoughts?

@haarg
Copy link
Member

haarg commented Feb 9, 2024

I would rather just stop testing on older perls, but not explicitly require a newer version.

@JRaspass JRaspass force-pushed the master branch 9 times, most recently from e359677 to 10ea964 Compare February 12, 2024 02:59
@JRaspass
Copy link
Contributor Author

Fair enough, I've amended the PR to only test 5.14+ and ported the rest of the logic from the old .travis.yml file. I've even managed to make the commented out reverse deps pass by disabling parallel testing.

@JRaspass JRaspass marked this pull request as ready for review February 12, 2024 03:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants