Skip to content

Commit

Permalink
cpan/podlators - Update to version v6.0.1, including v6.0.0
Browse files Browse the repository at this point in the history
v6.0.0 - 2024-07-10

 - Drop support for Perl 5.10.  podlators now requires Perl 5.12 or later.

 - podlators now uses semantic versioning for the package and module
   versions, with a v prefix to work with Perl's packaging system.

 - Pod::Man now translates all "-" characters in the input into *roff "\-"
   escapes (normally rendered as an ASCII hyphen-minus, U+002D) rather
   than using fragile heuristics to decide which characters represent true
   hyphens and which represent ASCII hyphen-minus.  The previous
   heuristics misrendered command names such as apt-get, causing search
   and cut-and-paste issues.  This change may cause line-break issues with
   long hyphenated phrases.  In cases where the intent is a true hyphen,
   consider using UTF-8 as the POD character set (declared with =encoding)
   and using true Unicode hyphens instead of the ASCII "-" character.

 - Pod::Man now disables the special *roff interpretation of "`" and "'"
   characters as paired quotes everywhere, not just in verbatim text, thus
   forcing them to be interpreted as the regular ASCII characters.  This
   also disables the use of "``" and "''" for paired double-quotes.  The
   rationale is similar to that for hyphens: there is no way to tell from
   the POD source that the special interpretation as quotes is intended.
   To produce paired typographic quotes in the output, use UTF-8 and
   Unicode paired quote characters.

 - Man page references in L<> that are detected as such by Pod::Simple are
   now always formatted as man page references even if our normal
   heuristic would not detect them.  This fixes the formatting of
   constructions such as @@RXVT_NAME@@Perl(3), which are used by packages
   that format a man page with POD and then substitute variables into it
   at build time.  Thanks to Marco Sirabella for the analysis and an
   initial patch.  (GitHub #21)

 - Add a workaround to Pod::Man to force persistent ragged-right
   justification under nroff with groff 1.23.0.  Thanks to Guillem Jover
   for the report and G. Branden Robinson for the analysis.  (GitHub #23)

 - Fix wrapping of text with S<> markup in all subclasses of Pod::Text.
   Thanks to Jim Avera for the report.  (GitHub #24)

 - Pod::Man now forces a blank line after a nested list contains only
   =item tags without bodies.  In previous versions, the blank line before
   the next item in the surrounding =over block was not included.  Thanks
   to Julien ÉLIE for the report.  (GitHub #26)

 - Import PerlIO before checking for layers so that PerlIO::F_UTF8 is
   available, which fixes double-encoding of output when a :utf8 layer is
   in place and PerlIO is not imported.  Thanks to youpong for the bug
   report, James Keenan for the elaboration, and Graham Knop for the fix.
   (GitHub #25)

 - pod2text --help now exits with status 0, not 1, matching normal UNIX
   command behavior and the behavior of pod2man.  (GitHub #19)

 - Fix tests when NO_COLOR is set in the environment.  (GitHub #20)

v6.0.1 - 2024-07-12

 - Remove autodie from the module build process.  When built as part of
   Perl core, podlators is built before autodie is available.  Thanks to
   James E Keenan for the report and a draft patch.  (GitHub #33)
  • Loading branch information
rra authored and jkeenan committed Jul 13, 2024
1 parent 3b4e5c6 commit 4081ca2
Show file tree
Hide file tree
Showing 74 changed files with 916 additions and 755 deletions.
259 changes: 132 additions & 127 deletions MANIFEST

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion Porting/Maintainers.pl
Original file line number Diff line number Diff line change
Expand Up @@ -981,7 +981,8 @@ package Maintainers;
},

'podlators' => {
'DISTRIBUTION' => 'RRA/podlators-5.01.tar.gz',
'DISTRIBUTION' => 'RRA/podlators-v6.0.1.tar.gz',
'SYNCINFO' => 'jkeenan on Sat Jul 13 13:22:06 2024',
'MAIN_MODULE' => 'Pod::Man',
'FILES' => q[cpan/podlators pod/perlpodstyle.pod],
'EXCLUDED' => [
Expand Down
68 changes: 30 additions & 38 deletions cpan/podlators/Makefile.PL
Original file line number Diff line number Diff line change
Expand Up @@ -4,38 +4,38 @@
# which only supports that build method, and because it is a dependency of
# other build systems like Module::Build.
#
# Copyright 1999-2001, 2008, 2010, 2012, 2014-2016, 2018-2019, 2022
# Copyright 1999-2001, 2008, 2010, 2012, 2014-2016, 2018-2019, 2022, 2024
# Russ Allbery <[email protected]>
#
# This program is free software; you may redistribute it and/or modify it
# under the same terms as Perl itself.
#
# SPDX-License-Identifier: GPL-1.0-or-later OR Artistic-1.0-Perl

use 5.008;
use strict;
# Do not use autodie here. When podlators is built as part of Perl core, it
# is built before autodie is available.
use 5.012;
use warnings;

use Config;
use ExtUtils::MakeMaker;
use File::Spec;

# Determine the version of the distribution so that we can construct the
# provides metadata that unfortunately ExtUtils::MakeMaker does not build.
# This is a very simple $VERSION parser, since it only has to handle the
# syntax Pod::Man uses.
# Determine the version of the distribution, since we need it outside of
# ExtUtils::MakeMaker to add some additional metadata. This is a very simple
# parser since it only has to handle the syntax my modules use.
#
# Returns: Distribution version as a string
sub dist_version {
open(my $fh, '<', File::Spec->catfile('lib', 'Pod', 'Man.pm'))
or die "$0: cannot open lib/Pod/Man.pm: $!\n";
my ($path) = @_;
open(my $fh, '<', $path) or die "$0: cannot open $path: $!\n";
while (defined(my $line = <$fh>)) {
if ($line =~ m{ \A (?:our \s+)? \$VERSION \s+ = \s+ '([^\']+)' }xms) {
close($fh) or die "$0: cannot close lib/Pod/Man.pm\n";
if ($line =~ m{ \A package \s+ \S+ \s+ (v[\d.]+) }xms) {
close($fh) or die "$0: cannot close $path: $!\n";
return $1;
}
}
close($fh) or die "$0: cannot close lib/Pod/Man.pm\n";
close($fh) or die "$0: cannot close $path: $!\n";
die "$0: cannot find version in lib/Pod/Man.pm\n";
}

Expand All @@ -45,15 +45,14 @@ sub dist_version {
#
# @scripts - List of script names
#
# Returns: (Array) List of relative paths from top of distribution
# (Scalar) Space-separated relative paths from top of distribution
# Returns: List of relative paths from top of distribution
sub scripts {
my (@scripts) = @_;
my @paths = map { File::Spec->catfile('scripts', $_) } @scripts;
if ($^O eq 'VMS') {
@paths = map { m{ [.] PL \z }xms ? $_ : $_ . '.com' } @paths;
}
return wantarray ? @paths : join(q{ }, @paths);
return @paths;
}

# Generate an association between a source file and a destination man page for
Expand All @@ -80,18 +79,16 @@ sub man1pod {

# The hash of all the metadata. This will be modified before WriteMakefile to
# remove keys not supported by the local version of ExtUtils::MakeMaker.
my $dist_version = dist_version();
my $dist_version = dist_version(File::Spec->catfile(qw(lib Pod Man.pm)));
my %metadata = (
#<<<
NAME => 'Pod',
DISTNAME => 'podlators',
ABSTRACT => 'Convert POD data to various other formats',
AUTHOR => 'Russ Allbery <[email protected]>',
LICENSE => 'perl_5',
EXE_FILES => [scripts('pod2text', 'pod2man')],
VERSION_FROM => 'lib/Pod/Man.pm',
MIN_PERL_VERSION => '5.010',
#>>>
VERSION => $dist_version,
MIN_PERL_VERSION => '5.012',

# Use *.PL files to generate the driver scripts so that we get the correct
# invocation of Perl on non-UNIX platforms.
Expand All @@ -109,7 +106,7 @@ my %metadata = (
},

# Clean some additional files.
clean => { FILES => File::Spec->catdir('t', 'tmp') },
clean => { FILES => File::Spec->catdir('t', 'tmp') },
realclean => { FILES => scalar(scripts('pod2text', 'pod2man')) },

# Dependencies on other modules.
Expand All @@ -119,48 +116,43 @@ my %metadata = (
# directories by default.
test => { TESTS => 't/*/*.t' },

# For older versions of Perl, we have to force installation into the Perl
# module directories since site modules did not take precedence over core
# modules.
INSTALLDIRS => $] lt '5.011' ? 'perl' : 'site',

# Additional metadata.
META_ADD => {
'meta-spec' => { version => 2 },
provides => {
provides => {
'Pod::Man' => {
file => 'lib/Pod/Man.pm',
file => 'lib/Pod/Man.pm',
version => $dist_version,
},
'Pod::ParseLink' => {
file => 'lib/Pod/ParseLink.pm',
file => 'lib/Pod/ParseLink.pm',
version => $dist_version,
},
'Pod::Text' => {
file => 'lib/Pod/Text.pm',
file => 'lib/Pod/Text.pm',
version => $dist_version,
},
'Pod::Text::Color' => {
file => 'lib/Pod/Text/Color.pm',
file => 'lib/Pod/Text/Color.pm',
version => $dist_version,
},
'Pod::Text::Overstrike' => {
file => 'lib/Pod/Text/Overstrike.pm',
file => 'lib/Pod/Text/Overstrike.pm',
version => $dist_version,
},
'Pod::Text::Termcap' => {
file => 'lib/Pod/Text/Termcap.pm',
file => 'lib/Pod/Text/Termcap.pm',
version => $dist_version,
},
},
resources => {
bugtracker => {
web => 'https://github.com/rra/podlators/issues',
},
homepage => 'https://www.eyrie.org/~eagle/software/podlators/',
homepage => 'https://www.eyrie.org/~eagle/software/podlators/',
repository => {
url => 'https://github.com/rra/podlators.git',
web => 'https://github.com/rra/podlators',
url => 'https://github.com/rra/podlators.git',
web => 'https://github.com/rra/podlators',
type => 'git',
},
},
Expand All @@ -170,8 +162,8 @@ my %metadata = (
# Remove keys that aren't supported by this version of ExtUtils::MakeMaker.
# This hash maps keys to the minimum supported version.
my %supported = (
LICENSE => 6.31,
META_ADD => 6.46,
LICENSE => 6.31,
META_ADD => 6.46,
MIN_PERL_VERSION => 6.48,
);
for my $key (keys(%supported)) {
Expand Down
13 changes: 10 additions & 3 deletions cpan/podlators/docs/docknot.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ format: v1

name: podlators
maintainer: Russ Allbery <[email protected]>
version: '5.01'
version: v6.0.1
synopsis: format POD source into various output formats

license:
name: Perl
copyrights:
- holder: Russ Allbery <[email protected]>
years: 1999-2010, 2012-2022
years: 1999-2024

build:
type: ExtUtils::MakeMaker
Expand All @@ -31,10 +31,15 @@ distribution:
section: perl
tarname: podlators
version: podlators
ignore:
- .github/dependabot.yml
- .github/workflows/build.yaml
support:
email: [email protected]
github: rra/podlators
web: https://www.eyrie.org/~eagle/software/podlators/
listname: pod-people
listurl: https://lists.perl.org/list/pod-people.html
vcs:
browse: https://git.eyrie.org/?p=perl/podlators.git
github: rra/podlators
Expand Down Expand Up @@ -119,7 +124,7 @@ description: |
example).
requirements: |
This module requires Perl 5.10 or later and Pod::Simple 3.26 or later.
This module requires Perl 5.12 or later and Pod::Simple 3.26 or later.
(Pod::Simple 3.26 was included in Perl 5.17.10.)
The troff/nroff generated by Pod::Man should be compatible with any troff or
Expand All @@ -135,7 +140,9 @@ test:
present:
* Test::CPAN::Changes (part of CPAN-Changes)
* Test::Kwalitee
* Test::MinimumVersion
* Test::Perl::Critic
* Test::Pod
* Test::Spelling
* Test::Strict
Expand Down
Loading

0 comments on commit 4081ca2

Please sign in to comment.