NAME App::MetaCPANUtils - CLI utilities related to MetaCPAN VERSION This document describes version 0.008 of App::MetaCPANUtils (from Perl distribution App-MetaCPANUtils), released on 2023-02-09. DESCRIPTION This distribution contains CLI utilities related to MetaCPAN: * diff-metacpan-releases * download-metacpan-release * list-metacpan-distribution-versions * list-metacpan-distributions * list-metacpan-releases * list-recent-metacpan-releases * open-metacpan-dist-page * open-metacpan-module-page FUNCTIONS diff_metacpan_releases Usage: diff_metacpan_releases(%args) -> [$status_code, $reason, $payload, \%result_meta] Diff two release tarballs. Examples: * What changed between App-orgadb 0.014 and 0.015?: diff_metacpan_releases(distribution => "App-orgadb", version1 => 0.014, version2 => 0.015); * What changed in the latest version of App-orgadb?: diff_metacpan_releases( distribution => "App-orgadb", version1 => "latest-1", version2 => "latest" ); * Compare the latest version of Log::Any released by JSWARTZ and the latest version released by DAGOLDEN: diff_metacpan_releases( distribution => "Log-Any", version1 => "author=\"JSWARTZ\"", version2 => "author=\"DAGOLDEN\"" ); This function is not exported. Arguments ('*' denotes required arguments): * distribution* => *perl::distname* (No description) * version1* => *perl::module::release::version* (No description) * version2* => *perl::module::release::version* (No description) Returns an enveloped result (an array). First element ($status_code) is an integer containing HTTP-like status code (200 means OK, 4xx caller error, 5xx function error). Second element ($reason) is a string containing error message, or something like "OK" if status is 200. Third element ($payload) is the actual result, but usually not present when enveloped result is an error response ($status_code is not 2xx). Fourth element (%result_meta) is called result metadata and is optional, a hash that contains extra information, much like how HTTP response headers provide additional metadata. Return value: (any) download_metacpan_release Usage: download_metacpan_release(%args) -> [$status_code, $reason, $payload, \%result_meta] Download a release to the current directory. Examples: * Download latest release of App-orgadb distribution: download_metacpan_release(distribution => "App-orgadb"); * Download the second latest release of App-orgadb distribution: download_metacpan_release(distribution => "App-orgadb", version => "latest-1"); Uses HTTP::Tiny::Plugin so you can customize download behavior using e.g. "HTTP_TINY_PLUGINS" environment variable. This function is not exported. Arguments ('*' denotes required arguments): * distribution* => *perl::distname* (No description) * overwrite => *true* Whether to overwrite existing downloaded file. * version => *perl::module::release::version* If unspecified, will select the latest release. Returns an enveloped result (an array). First element ($status_code) is an integer containing HTTP-like status code (200 means OK, 4xx caller error, 5xx function error). Second element ($reason) is a string containing error message, or something like "OK" if status is 200. Third element ($payload) is the actual result, but usually not present when enveloped result is an error response ($status_code is not 2xx). Fourth element (%result_meta) is called result metadata and is optional, a hash that contains extra information, much like how HTTP response headers provide additional metadata. Return value: (any) list_metacpan_distribution_versions Usage: list_metacpan_distribution_versions(%args) -> [$status_code, $reason, $payload, \%result_meta] List all versions of a distribution. The versions will be sorted in a descending order. This function is not exported. Arguments ('*' denotes required arguments): * distribution* => *perl::distname* (No description) Returns an enveloped result (an array). First element ($status_code) is an integer containing HTTP-like status code (200 means OK, 4xx caller error, 5xx function error). Second element ($reason) is a string containing error message, or something like "OK" if status is 200. Third element ($payload) is the actual result, but usually not present when enveloped result is an error response ($status_code is not 2xx). Fourth element (%result_meta) is called result metadata and is optional, a hash that contains extra information, much like how HTTP response headers provide additional metadata. Return value: (any) list_metacpan_distributions Usage: list_metacpan_distributions(%args) -> [$status_code, $reason, $payload, \%result_meta] List distributions. This function is not exported. Arguments ('*' denotes required arguments): * author => *cpan::pause_id* (No description) * fields => *array[str]* (default: ["distribution"]) (No description) * sort => *str* (default: "distribution") (No description) Returns an enveloped result (an array). First element ($status_code) is an integer containing HTTP-like status code (200 means OK, 4xx caller error, 5xx function error). Second element ($reason) is a string containing error message, or something like "OK" if status is 200. Third element ($payload) is the actual result, but usually not present when enveloped result is an error response ($status_code is not 2xx). Fourth element (%result_meta) is called result metadata and is optional, a hash that contains extra information, much like how HTTP response headers provide additional metadata. Return value: (any) list_metacpan_modules Usage: list_metacpan_modules(%args) -> [$status_code, $reason, $payload, \%result_meta] List modules. This function is not exported. Arguments ('*' denotes required arguments): * author => *cpan::pause_id* (No description) * fields => *array[str]* (default: ["module","date","author","status","maturity","version","release","a bstract"]) (No description) * from_date => *date* (No description) * sort => *str* (default: "module") (No description) * status => *str* (default: "latest") (No description) * to_date => *date* (No description) Returns an enveloped result (an array). First element ($status_code) is an integer containing HTTP-like status code (200 means OK, 4xx caller error, 5xx function error). Second element ($reason) is a string containing error message, or something like "OK" if status is 200. Third element ($payload) is the actual result, but usually not present when enveloped result is an error response ($status_code is not 2xx). Fourth element (%result_meta) is called result metadata and is optional, a hash that contains extra information, much like how HTTP response headers provide additional metadata. Return value: (any) list_metacpan_releases Usage: list_metacpan_releases(%args) -> [$status_code, $reason, $payload, \%result_meta] List releases. Some notes: * MetaCPAN often returns multiple releases of the same distribution with "first" field set to 1, so if you only want to find the first release of a distribution you'll need to filter out the extraneous results. This function is not exported. Arguments ('*' denotes required arguments): * author => *cpan::pause_id* (No description) * date => *date* Select a single day, alternative to `from_date` + `to_date`. * distribution => *cpan::distname* (No description) * fields => *array[str]* (default: ["release","date","author","status","maturity","version","first","di stribution","abstract"]) (No description) * first => *bool* (No description) * from_date => *date* (No description) * sort => *str* (default: "-date") (No description) * status => *str* (No description) * to_date => *date* (No description) Returns an enveloped result (an array). First element ($status_code) is an integer containing HTTP-like status code (200 means OK, 4xx caller error, 5xx function error). Second element ($reason) is a string containing error message, or something like "OK" if status is 200. Third element ($payload) is the actual result, but usually not present when enveloped result is an error response ($status_code is not 2xx). Fourth element (%result_meta) is called result metadata and is optional, a hash that contains extra information, much like how HTTP response headers provide additional metadata. Return value: (any) list_recent_metacpan_releases Usage: list_recent_metacpan_releases(%args) -> [$status_code, $reason, $payload, \%result_meta] This function is not exported. Arguments ('*' denotes required arguments): * fields => *array[str]* (default: ["release","date","author","status","maturity","version","first","di stribution","abstract"]) (No description) * n => *posint* (No description) Returns an enveloped result (an array). First element ($status_code) is an integer containing HTTP-like status code (200 means OK, 4xx caller error, 5xx function error). Second element ($reason) is a string containing error message, or something like "OK" if status is 200. Third element ($payload) is the actual result, but usually not present when enveloped result is an error response ($status_code is not 2xx). Fourth element (%result_meta) is called result metadata and is optional, a hash that contains extra information, much like how HTTP response headers provide additional metadata. Return value: (any) open_metacpan_dist_page Usage: open_metacpan_dist_page(%args) -> [$status_code, $reason, $payload, \%result_meta] This function is not exported. Arguments ('*' denotes required arguments): * distribution* => *perl::distname* (No description) Returns an enveloped result (an array). First element ($status_code) is an integer containing HTTP-like status code (200 means OK, 4xx caller error, 5xx function error). Second element ($reason) is a string containing error message, or something like "OK" if status is 200. Third element ($payload) is the actual result, but usually not present when enveloped result is an error response ($status_code is not 2xx). Fourth element (%result_meta) is called result metadata and is optional, a hash that contains extra information, much like how HTTP response headers provide additional metadata. Return value: (any) open_metacpan_module_page Usage: open_metacpan_module_page(%args) -> [$status_code, $reason, $payload, \%result_meta] This function is not exported. Arguments ('*' denotes required arguments): * module* => *perl::modname* (No description) Returns an enveloped result (an array). First element ($status_code) is an integer containing HTTP-like status code (200 means OK, 4xx caller error, 5xx function error). Second element ($reason) is a string containing error message, or something like "OK" if status is 200. Third element ($payload) is the actual result, but usually not present when enveloped result is an error response ($status_code is not 2xx). Fourth element (%result_meta) is called result metadata and is optional, a hash that contains extra information, much like how HTTP response headers provide additional metadata. Return value: (any) ENVIRONMENT METACPANUTILS_DUMP_API_RESULT If set to true, will log the API result at the "trace" level. HOMEPAGE Please visit the project's homepage at <https://metacpan.org/release/App-MetaCPANUtils>. SOURCE Source repository is at <https://github.com/perlancar/perl-App-MetaCPANUtils>. SEE ALSO <https://metacpan.org> Other distributions providing CLIs for MetaCPAN: MetaCPAN::Clients, App::metacpansearch. MetaCPAN API Client: MetaCPAN::Client this-mod-on-metacpan, this-dist-on-metacpan from App::ThisDist::OnMetaCPAN. 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) 2023, 2022, 2021, 2020 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=App-MetaCPANUtils> 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.