Skip to content

Commit 098abf9

Browse files
committed
Fix POD links, declare non-core prereqs
I noted that one of the POD links to the GitHub repo was incorrect, so I fixed that and dutifully added an author test (which can be run with `make authortest`). Note that checking HTTPS scheme URLs and uninstalled modules via CPAN Meta DB requires the installation of Net::SSLeay and IO::Socket::SSL; I've opened @trwyant/perl-Test-Pod-LinkCheck-Lite#2 to get that resolved. That led me down a rabbit hole of making sure this could build, test, and install on Perl 5.10 as declared in the Makefile.PL. There were a couple issues: 1. URL links in POD didn't gain support for displaying text instead of the bare URL until Perl 5.12. So I adjusted the POD to use unlinked text with the links adjacent. 2. Some core Perl module dependencies either weren't core at that time (JSON::PP) or lacked features (File::Path's `make_path` function, version's `declare` method). So I added explicit version requirements for both that contain the required functions. Also, just for completeness' sake, I adjusted the Makefile.PL to skip the META_MERGE Makefile argument on older versions of ExtUtils::MakeMaker.
1 parent 39dadad commit 098abf9

File tree

3 files changed

+47
-20
lines changed

3 files changed

+47
-20
lines changed

Makefile.PL

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ my %WriteMakefileArgs = (
1414
'ExtUtils::MakeMaker' => '0',
1515
},
1616
PREREQ_PM => {
17+
'JSON::PP' => '2.0104',
18+
'File::Path' => '2.07',
19+
'version' => '0.77',
20+
},
21+
TEST_REQUIRES => {
22+
'Test::Pod::LinkCheck::Lite' => '0',
1723
},
1824
EXE_FILES => ['script/apperlm'],
1925
dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
@@ -47,11 +53,23 @@ unless (eval { ExtUtils::MakeMaker->VERSION('6.55_03'); 1 }) {
4753
@{$WriteMakefileArgs{PREREQ_PM}}{keys %$build_requires} = values %$build_requires;
4854
}
4955

50-
delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
51-
unless eval { ExtUtils::MakeMaker->VERSION('6.52'); 1 };
52-
delete $WriteMakefileArgs{MIN_PERL_VERSION}
53-
unless eval { ExtUtils::MakeMaker->VERSION('6.48'); 1 };
54-
delete $WriteMakefileArgs{LICENSE}
55-
unless eval { ExtUtils::MakeMaker->VERSION('6.31'); 1 };
56+
my %min_eumm_version = (
57+
CONFIGURE_REQUIRES => '6.52',
58+
MIN_PERL_VERSION => '6.48',
59+
LICENSE => '6.31',
60+
META_MERGE => '6.46',
61+
);
62+
for my $parameter ( keys %min_eumm_version ) {
63+
delete $WriteMakefileArgs{$parameter}
64+
unless eval {
65+
ExtUtils::MakeMaker->VERSION( $min_eumm_version{$parameter} );
66+
1;
67+
};
68+
}
5669

5770
WriteMakefile(%WriteMakefileArgs);
71+
72+
sub MY::postamble {
73+
return "authortest: test\n\tAUTHOR_TESTING=1 "
74+
. $_[0]->test_via_harness( '$(FULLPERLRUN)', 'xt/author/*.t' );
75+
}

lib/Perl/Dist/APPerl.pm

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package Perl::Dist::APPerl;
22
# Copyright (c) 2022 Gavin Hayes, see LICENSE in the root of the project
3-
use version; our $VERSION = version->declare("v0.1.0");
3+
use version 0.77; our $VERSION = qv(v0.1.0);
44
use strict;
55
use warnings;
6-
use JSON::PP qw(decode_json);
7-
use File::Path qw(make_path);
6+
use JSON::PP 2.0104 qw(decode_json);
7+
use File::Path 2.07 qw(make_path);
88
use Cwd qw(abs_path getcwd);
99
use Data::Dumper qw(Dumper);
1010
use File::Basename qw(basename dirname);
@@ -1386,8 +1386,8 @@ chicken-and egg-situation of needing Perl to build APPerl, APPerl may
13861386
be bootstrapped from an existing build of APPerl. See README.md for
13871387
instructions.
13881388
1389-
Information on the creation of APPerl can be found in this
1390-
L<blogpost|https://computoid.com/posts/Perl-is-Actually-Portable.html>.
1389+
Information on the creation of APPerl can be found in this blog post:
1390+
L<https://computoid.com/posts/Perl-is-Actually-Portable.html>.
13911391
13921392
=head1 SYNOPSIS
13931393
@@ -1555,8 +1555,8 @@ builds, skipping the need for building Perl from scratch.
15551555
15561556
Enter your projects directory, create it if it doesn't exists. Download
15571557
or copy in an existing version of APPerl you wish to build off of.
1558-
Official builds are available on the
1559-
L<APPerl webpage| https://computoid.com/APPerl/>.
1558+
Official builds are available on the APPerl web page:
1559+
L<https://computoid.com/APPerl/>.
15601560
Create a new nobuild APPerl project and build it.
15611561
15621562
cd projectdir
@@ -1689,20 +1689,20 @@ Build and test it.
16891689
16901690
=head1 SUPPORT AND DOCUMENTATION
16911691
1692-
L<APPerl webpage|https://computoid.com/APPerl/>
1692+
APPerl web page: L<https://computoid.com/APPerl/>
16931693
16941694
Support and bug reports can be found at the repository
1695-
L<https://github.com/G4Vi/APPerl>
1695+
L<https://github.com/G4Vi/Perl-Dist-APPerl>
16961696
16971697
=head1 ACKNOWLEDGEMENTS
16981698
1699-
The L<Cosmopolitan Libc|https://github.com/jart/cosmopolitan>
1700-
contributors, especially L<Justine Tunney|https://justine.lol/> and
1701-
L<Gautham Venkatasubramanian|https://ahgamut.github.io>. APPerl
1699+
The Cosmopolitan Libc (L<https://github.com/jart/cosmopolitan>)
1700+
contributors, especially Justine Tunney (L<https://justine.lol/>) and
1701+
Gautham Venkatasubramanian (L<https://ahgamut.github.io>). APPerl
17021702
wouldn't be possible without Actually Portable Executables and
17031703
polyfills of several Linux and POSIX APIs for other platforms.
1704-
Gautham's
1705-
L<Python port|https://ahgamut.github.io/2021/07/13/ape-python/>
1704+
Gautham's Python port
1705+
(L<https://ahgamut.github.io/2021/07/13/ape-python/>)
17061706
inspired this project.
17071707
17081708
=head1 AUTHOR

xt/author/pod_linkcheck.t

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#!/usr/bin/env perl
2+
3+
use strict;
4+
use warnings;
5+
use Test::More;
6+
use Test::Pod::LinkCheck::Lite;
7+
8+
Test::Pod::LinkCheck::Lite->new->all_pod_files_ok('.');
9+
done_testing();

0 commit comments

Comments
 (0)