NAME
CPAN::Meta::X - Catalog of custom (x_*) keys in CPAN distribution metadata being used in the wild
VERSION
This document describes version 0.009 of CPAN::Meta::X (from Perl distribution CPAN-Meta-X), released on 2022-10-28.
DESCRIPTION
The CPAN distribution metadata specification allows custom keys (those that begin with x_
or X_
) to be added to the metadata. This document tries to catalog the custom keys that are being used by CPAN authors.
In addition to custom metadata keys, this document also lists:
custom phases and relationships in the prereqs hash that are being used by people
custom keys in resources hash
CUSTOM DISTRIBUTION METADATA KEYS
x_Dist_Zilla key
A big structure recording information related to Dist::Zilla which presumably is used to build the current distribution. Some of the things being put in here include: perl version used to build the distribution, Dist::Zilla plugins used to build the distribution, and so on.
x_authority key
x_contributors key
List of contributors in a release.
Examples:
TBD
References:
x_deprecated key
x_examples key
List prerequisites for example scripts.
References:
x_generated_by_perl key
x_help_wanted key
x_provides_scripts key
List scripts that are being provided in the distribution. The structure is modelled after the standard provides hash.
Examples:
So say your distribution provides a "csv2json" script, your META.json would contain:
"x_provides_scripts": {
"csv2json": {
"version": "0.1",
"file": "bin/csv2json"
}
}
References:
x_spdx_expression key
x_serialization_backend key
x_static_install key
CUSTOM PREREQS PHASES
x_benchmarks phase
Express that the current distribution is benchmarking the specified module.
References:
x_lists phase
Express that the current distribution is including the specified module in some list(s), e.g. an Acme::CPANModules list.
References:
PERLANCAR, Dist::Zilla::Plugin::Acme::CPANModules
x_mentions phase
Express that the current distribution is mentioning the specified module.
References:
CUSTOM PREREQS RELATIONSHIPS
x_alt_for relationship
Express that a distribution provides an alternate (implementation) for a module.
Example: Perinci::Access::Lite distribution specifies a runtime x_alt_for
prereq relationship to Perinci::Access.
IDEA: The more specific nature of alternate could be specified further in additional relationsip e.g. x_lightweight_alt_for
, x_tiny_alt_for
, x_windows_alt_for
, etc, if needed.
x_benchmarks relationship
See "x_benchmarks phase".
x_features_from relationship
Express that one of the modules in the current distribution is declaring features that are defined defined in an associated Module::Features::*
module. Used with (phase=develop).
Examples: Text::ANSITable, Text::Table::More, and Text::Table::Sprintf declares features defined by Module::Features::TextTable so they add a dependency (phase=develop, rel=x_features_from) to Module::Features::TextTable.
References:
Module::Features specification
x_lists relationship
See "x_lists phase".
x_mentions relationship
See "x_mentions phase".
x_spec relationship
Express that the current distribution is following a specification defined in the specified module. Used with (phase=develop).
References:
CUSTOM RESOURCES
x_IRC resource
x_identifier resource
x_mailinglist resource
x_wiki resource
HOMEPAGE
Please visit the project's homepage at https://metacpan.org/release/CPAN-Meta-X.
SOURCE
Source repository is at https://github.com/perlancar/perl-CPAN-Meta-X.
SEE ALSO
CPAN::Meta::Spec - Specification for CPAN distribution metadata
AUTHOR
perlancar <perlancar@cpan.org>
CONTRIBUTING
To contribute, you can send patches by email/via RT, or send pull requests on GitHub.
Most of the time, you don't need to build the distribution yourself. You can simply modify the code, then test via:
% prove -l
If you want to build the distribution (e.g. to try to install it locally on your system), you can install Dist::Zilla, Dist::Zilla::PluginBundle::Author::PERLANCAR, Pod::Weaver::PluginBundle::Author::PERLANCAR, and sometimes one or two other Dist::Zilla- and/or Pod::Weaver plugins. Any additional steps required beyond that are considered a bug and can be reported to me.
COPYRIGHT AND LICENSE
This software is copyright (c) 2022, 2021 by perlancar <perlancar@cpan.org>.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
BUGS
Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=CPAN-Meta-X
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.