Dist::...rereqs(3pm)

πŸ“¦
version 0.029 Β· 2 versions
  • 0.029 Β· debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking (latest)
  • 0.028 Β· ubuntu jammy
, in debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking

πŸ’– Dist::Zilla::Plugin::Test::ReportPrereqs πŸ’–

okay bestie, so this is the manual page for Dist::Zilla::Plugin::Test::ReportPrereqs (it lives in the Dist::...rereqs(3pm) corner of your man pages, in case you were squinting at your terminal wondering). And literally what it does? It reports on prerequisite versions during automated testing. iconic behavior, honestly. πŸŽ€


✨ VERSION ✨

version 0.029 β€” yes she's on 0.029, no cap. πŸ’…


🌸 SYNOPSIS 🌸

# in dist.ini
[Test::ReportPrereqs]
include = Acme::FYI
exclude = Acme::Dont::Care

look at her. put that in your dist.ini and you're so back. πŸ¦‹


πŸ’œ DESCRIPTION πŸ’œ

So this Dist::Zilla plugin drops a t/00-report-prereqs.t test file into your life, plus an accompanying t/00-report-prereqs.dd data file. bestie behavior fr fr.

What does it report on? The version of all modules listed in the distribution metadata prerequisites β€” and yes that includes 'recommends', 'suggests', etc. she does not gatekeep. 🫢

but lowkey, any 'develop' prereqs are not reported β€” unless they happen to show up in another category. so if you were counting on those, sorry babe. 😭

And okay, plot twist: if a MYMETA.json file exists and CPAN::Meta is installed on the testing machine, then MYMETA.json will be examined for prerequisites in addition β€” because it would include any dynamic prerequisites that weren't set in the distribution metadata. extra intel, we love to see it. ✨

Now, how do the versions get reported? Based on the result of "parse_version" from ExtUtils::MakeMaker β€” which means the prerequisite modules are not actually loaded. and that's on purpose, because it avoids various edge cases with certain modules. avoiding drama, main character energy. πŸ‘‘

  • Parse errors get reported as "undef".
  • If a module isn't installed, "missing" gets reported instead of a version string.

Additionally (yes, there's more πŸ’…), if CPAN::Meta is installed, unfulfilled required prerequisites are reported after the list of all versions β€” based on either MYMETA (preferably) or META (as a fallback).


πŸŽ€ CONFIGURATION πŸŽ€

include

An "include" attribute can be specified β€” multiple times, she's flexible β€” to add modules to the report. This is useful when there's a module in the dependency chain that's problematic but isn't directly required by this project. Those modules get listed in an "Other Modules" section at the end of the report. πŸ’–

exclude

An "exclude" attribute can be specified β€” again, multiple times β€” to remove modules from the report (if you had a reason to do so, no judgment). πŸ™ˆ

verify_prereqs

When set, the installed versions of all 'requires' prerequisites are verified against the ones you specified. Defaults to true, but heads up: it requires CPAN::Meta to be installed. ⭐

version_extractor

Specifies which module to use to extract each installed prerequisite's version. Defaults to ExtUtils::MakeMaker, which is recommended for most situations. You can also set it to Module::Metadata β€” useful if ExtUtils::MakeMaker's mechanism is too naive, or if ExtUtils::MakeMaker isn't already a prerequisite of the distribution. options, we love options. 🌈


πŸ¦‹ SEE ALSO πŸ¦‹

Other Dist::Zilla::Plugins do similar things in slightly different ways that didn't suit my style and needs. respectfully. πŸ’…

  • Dist::Zilla::Plugin::Test::PrereqsFromMeta β€” requires prereqs to be satisfied
  • Dist::Zilla::Plugin::Test::ReportVersions β€” bundles a copy of YAML::Tiny, reads prereqs only from META.yml, and attempts to load them with "require"
  • Dist::Zilla::Plugin::ReportVersions::Tiny β€” static list only, loads modules with "require"

🌟 SUPPORT 🌟

πŸ› Bugs / Feature Requests

Please report any bugs or feature requests through the issue tracker at <https://github.com/dagolden/Dist-Zilla-Plugin-Test-ReportPrereqs/issues>. You will be notified automatically of any progress on your issue. we keep you in the loop bestie, periodt. ✨

πŸ“¦ Source Code

This is open source software. The code repository is available for public review and contribution under the terms of the license.

<https://github.com/dagolden/Dist-Zilla-Plugin-Test-ReportPrereqs>

git clone https://github.com/dagolden/Dist-Zilla-Plugin-Test-ReportPrereqs.git

πŸ‘‘ AUTHOR πŸ‘‘

David Golden <dagolden@cpan.org>

πŸ’– CONTRIBUTORS πŸ’–

  • Brendan Byrd <Perl@ResonatorSoft.org>
  • Dave Rolsky <autarch@urth.org>
  • Karen Etheridge <ether@cpan.org>
  • Kent Fredric <kentfredric@gmail.com>
  • Randy Stauner <randy@magnificent-tears.com>
  • Ricardo Signes <rjbs@users.noreply.github.com>
  • Yanick Champoux <yanick@babyl.dyndns.org>

the whole squad showed up, we stan. 🫢


This software is Copyright (c) 2012 by David Golden.

This is free software, licensed under:

The Apache License, Version 2.0, January 2004

and that's the whole page babes!! this one's from perl v5.36.0, dated 2023-01-14, under that Dist::...rereqs(3pm) header we mentioned way up top. go forth and report those prereqs, you absolute icon. πŸ’…βœ¨πŸ’–