From 88592f94ff2089c0ce22b52de2cb3ad3b450e6c4 Mon Sep 17 00:00:00 2001 From: Olaf Alders Date: Thu, 23 Jul 2026 00:14:00 +0000 Subject: [PATCH 1/2] Remove undeclared Try::Tiny dependency from t/diag.t t/diag.t used Try::Tiny but it was never declared as a test prerequisite. On a freshly built perl that does not already have Try::Tiny installed (e.g. blead 5.45.1, as reported via IRC by @tux), the toolchain does not pull it in, so t/diag.t dies at compile time ("Can't locate Try/Tiny.pm") and `make test` fails -- making the distribution appear not to install (GH#96). The two try{} blocks only swallowed exceptions around diagnostic Net::SSLeay version calls, so a plain eval { ...; 1 } or diag(...) is equivalent. This drops the dependency entirely instead of adding it to the prereqs, which keeps the test suite installable on minimal perls. Co-Authored-By: Claude Opus 4.8 --- t/diag.t | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/t/diag.t b/t/diag.t index 998cb66a..f0c2158c 100644 --- a/t/diag.t +++ b/t/diag.t @@ -10,7 +10,6 @@ use IO::Socket::SSL::Utils (); use Socket (); use Test::More import => [qw( diag done_testing pass subtest )]; use Test::Needs; -use Try::Tiny qw( try ); subtest 'openssl' => sub { test_needs 'Capture::Tiny'; @@ -28,18 +27,20 @@ subtest 'openssl' => sub { subtest 'net_ssleay' => sub { test_needs 'Net::SSLeay'; - try { + eval { diag( sprintf 'Net::SSLeay::OPENSSL_VERSION_NUMBER() 0x%08x', Net::SSLeay::OPENSSL_VERSION_NUMBER() ); - }; - try { + 1; + } or diag("Net::SSLeay::OPENSSL_VERSION_NUMBER() unavailable: $@"); + eval { diag( sprintf 'Net::SSLeay::LIBRESSL_VERSION_NUMBER() 0x%08x', Net::SSLeay::LIBRESSL_VERSION_NUMBER() ); - }; + 1; + } or diag("Net::SSLeay::LIBRESSL_VERSION_NUMBER() unavailable: $@"); pass('Net::SSLeay'); }; From 4d52ee4f3bdd3ead753d37a9a35296e1a129282a Mon Sep 17 00:00:00 2001 From: Olaf Alders Date: Thu, 23 Jul 2026 00:24:56 +0000 Subject: [PATCH 2/2] CI: test on Perl blead (devel), non-blocking Add a container-based job using perldocker/perl-tester:devel (which tracks the latest Perl development release) so we get an early signal when the dist breaks on the upcoming Perl -- exactly the class of problem behind GH#96, which the stable CI matrix (topping out at 5.42) never exercised. The job deliberately has no continue-on-error: a failure shows up as a red X so it is visible. Keep it OUT of the required status checks in branch protection so blead breakage never blocks a merge -- we want the signal, not a gate. Co-Authored-By: Claude Opus 4.8 --- .github/workflows/dzil-build-and-test.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/workflows/dzil-build-and-test.yml b/.github/workflows/dzil-build-and-test.yml index 16e9a15c..fb4d0543 100644 --- a/.github/workflows/dzil-build-and-test.yml +++ b/.github/workflows/dzil-build-and-test.yml @@ -48,6 +48,23 @@ jobs: run: cpan-install-dist-deps && test-dist env: CODECOV_TOKEN: ${{secrets.CODECOV_TOKEN}} + # Perl development version (blead). Informational only: a red X here means the + # dist broke on the upcoming Perl (see GH#96, where it failed to install on + # blead 5.45.1). Keep this OUT of the required status checks so it never + # blocks a merge -- we want the signal, not a gate. + blead-job: + name: Perl blead (devel, non-blocking) + needs: build-job + runs-on: ubuntu-latest + container: + image: perldocker/perl-tester:devel + steps: + - uses: actions/download-artifact@v7 + with: + name: build_dir + path: . + - name: Install deps and test on blead + run: cpan-install-dist-deps && test-dist test-job: needs: build-job runs-on: ${{ matrix.os }}