summaryrefslogtreecommitdiffstats
path: root/upstream/mageia-cauldron/man3pm/CPAN::Meta::Converter.3pm
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 19:43:11 +0000
commitfc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch)
treece1e3bce06471410239a6f41282e328770aa404a /upstream/mageia-cauldron/man3pm/CPAN::Meta::Converter.3pm
parentInitial commit. (diff)
downloadmanpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.tar.xz
manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.zip
Adding upstream version 4.22.0.upstream/4.22.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'upstream/mageia-cauldron/man3pm/CPAN::Meta::Converter.3pm')
-rw-r--r--upstream/mageia-cauldron/man3pm/CPAN::Meta::Converter.3pm180
1 files changed, 180 insertions, 0 deletions
diff --git a/upstream/mageia-cauldron/man3pm/CPAN::Meta::Converter.3pm b/upstream/mageia-cauldron/man3pm/CPAN::Meta::Converter.3pm
new file mode 100644
index 00000000..bef13c46
--- /dev/null
+++ b/upstream/mageia-cauldron/man3pm/CPAN::Meta::Converter.3pm
@@ -0,0 +1,180 @@
+.\" -*- mode: troff; coding: utf-8 -*-
+.\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43)
+.\"
+.\" Standard preamble:
+.\" ========================================================================
+.de Sp \" Vertical space (when we can't use .PP)
+.if t .sp .5v
+.if n .sp
+..
+.de Vb \" Begin verbatim text
+.ft CW
+.nf
+.ne \\$1
+..
+.de Ve \" End verbatim text
+.ft R
+.fi
+..
+.\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>.
+.ie n \{\
+. ds C` ""
+. ds C' ""
+'br\}
+.el\{\
+. ds C`
+. ds C'
+'br\}
+.\"
+.\" Escape single quotes in literal strings from groff's Unicode transform.
+.ie \n(.g .ds Aq \(aq
+.el .ds Aq '
+.\"
+.\" If the F register is >0, we'll generate index entries on stderr for
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
+.\" entries marked with X<> in POD. Of course, you'll have to process the
+.\" output yourself in some meaningful fashion.
+.\"
+.\" Avoid warning from groff about undefined register 'F'.
+.de IX
+..
+.nr rF 0
+.if \n(.g .if rF .nr rF 1
+.if (\n(rF:(\n(.g==0)) \{\
+. if \nF \{\
+. de IX
+. tm Index:\\$1\t\\n%\t"\\$2"
+..
+. if !\nF==2 \{\
+. nr % 0
+. nr F 2
+. \}
+. \}
+.\}
+.rr rF
+.\" ========================================================================
+.\"
+.IX Title "CPAN::Meta::Converter 3pm"
+.TH CPAN::Meta::Converter 3pm 2023-11-28 "perl v5.38.2" "Perl Programmers Reference Guide"
+.\" For nroff, turn off justification. Always turn off hyphenation; it makes
+.\" way too many mistakes in technical documents.
+.if n .ad l
+.nh
+.SH NAME
+CPAN::Meta::Converter \- Convert CPAN distribution metadata structures
+.SH VERSION
+.IX Header "VERSION"
+version 2.150010
+.SH SYNOPSIS
+.IX Header "SYNOPSIS"
+.Vb 1
+\& my $struct = decode_json_file(\*(AqMETA.json\*(Aq);
+\&
+\& my $cmc = CPAN::Meta::Converter\->new( $struct );
+\&
+\& my $new_struct = $cmc\->convert( version => "2" );
+.Ve
+.SH DESCRIPTION
+.IX Header "DESCRIPTION"
+This module converts CPAN Meta structures from one form to another. The
+primary use is to convert older structures to the most modern version of
+the specification, but other transformations may be implemented in the
+future as needed. (E.g. stripping all custom fields or stripping all
+optional fields.)
+.SH METHODS
+.IX Header "METHODS"
+.SS new
+.IX Subsection "new"
+.Vb 1
+\& my $cmc = CPAN::Meta::Converter\->new( $struct );
+.Ve
+.PP
+The constructor should be passed a valid metadata structure but invalid
+structures are accepted. If no meta-spec version is provided, version 1.0 will
+be assumed.
+.PP
+Optionally, you can provide a \f(CW\*(C`default_version\*(C'\fR argument after \f(CW$struct\fR:
+.PP
+.Vb 1
+\& my $cmc = CPAN::Meta::Converter\->new( $struct, default_version => "1.4" );
+.Ve
+.PP
+This is only needed when converting a metadata fragment that does not include a
+\&\f(CW\*(C`meta\-spec\*(C'\fR field.
+.SS convert
+.IX Subsection "convert"
+.Vb 1
+\& my $new_struct = $cmc\->convert( version => "2" );
+.Ve
+.PP
+Returns a new hash reference with the metadata converted to a different form.
+\&\f(CW\*(C`convert\*(C'\fR will die if any conversion/standardization still results in an
+invalid structure.
+.PP
+Valid parameters include:
+.IP \(bu 4
+\&\f(CW\*(C`version\*(C'\fR \-\- Indicates the desired specification version (e.g. "1.0", "1.1" ... "1.4", "2").
+Defaults to the latest version of the CPAN Meta Spec.
+.PP
+Conversion proceeds through each version in turn. For example, a version 1.2
+structure might be converted to 1.3 then 1.4 then finally to version 2. The
+conversion process attempts to clean-up simple errors and standardize data.
+For example, if \f(CW\*(C`author\*(C'\fR is given as a scalar, it will converted to an array
+reference containing the item. (Converting a structure to its own version will
+also clean-up and standardize.)
+.PP
+When data are cleaned and standardized, missing or invalid fields will be
+replaced with sensible defaults when possible. This may be lossy or imprecise.
+For example, some badly structured META.yml files on CPAN have prerequisite
+modules listed as both keys and values:
+.PP
+.Vb 1
+\& requires => { \*(AqFoo::Bar\*(Aq => \*(AqBam::Baz\*(Aq }
+.Ve
+.PP
+These would be split and each converted to a prerequisite with a minimum
+version of zero.
+.PP
+When some mandatory fields are missing or invalid, the conversion will attempt
+to provide a sensible default or will fill them with a value of 'unknown'. For
+example a missing or unrecognized \f(CW\*(C`license\*(C'\fR field will result in a \f(CW\*(C`license\*(C'\fR
+field of 'unknown'. Fields that may get an 'unknown' include:
+.IP \(bu 4
+abstract
+.IP \(bu 4
+author
+.IP \(bu 4
+license
+.SS upgrade_fragment
+.IX Subsection "upgrade_fragment"
+.Vb 1
+\& my $new_struct = $cmc\->upgrade_fragment;
+.Ve
+.PP
+Returns a new hash reference with the metadata converted to the latest version
+of the CPAN Meta Spec. No validation is done on the result \-\- you must
+validate after merging fragments into a complete metadata document.
+.PP
+Available since version 2.141170.
+.SH BUGS
+.IX Header "BUGS"
+Please report any bugs or feature using the CPAN Request Tracker.
+Bugs can be submitted through the web interface at
+<http://rt.cpan.org/Dist/Display.html?Queue=CPAN\-Meta>
+.PP
+When submitting a bug or request, please include a test-file or a patch to an
+existing test-file that illustrates the bug or desired feature.
+.SH AUTHORS
+.IX Header "AUTHORS"
+.IP \(bu 4
+David Golden <dagolden@cpan.org>
+.IP \(bu 4
+Ricardo Signes <rjbs@cpan.org>
+.IP \(bu 4
+Adam Kennedy <adamk@cpan.org>
+.SH "COPYRIGHT AND LICENSE"
+.IX Header "COPYRIGHT AND LICENSE"
+This software is copyright (c) 2010 by David Golden, Ricardo Signes, Adam Kennedy and Contributors.
+.PP
+This is free software; you can redistribute it and/or modify it under
+the same terms as the Perl 5 programming language system itself.