.\" Automatically generated by Pod::Man 4.14 (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 .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . 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 "Test::Dependencies 3pm" .TH Test::Dependencies 3pm "2023-06-10" "perl v5.36.0" "User Contributed Perl Documentation" .\" 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" Test::Dependencies \- Ensure that the dependency listing is complete .SH "VERSION" .IX Header "VERSION" Version 0.32 .SH "SYNOPSIS" .IX Header "SYNOPSIS" In your t/00\-dependencies.t: .PP .Vb 2 \& use CPAN::Meta; # or CPAN::Meta::cpanfile \& use File::Find::Rule::Perl; \& \& use Test::More; \& use Test::Dependencies \*(Aq0.28\*(Aq forward_compatible => 1; \& \& my $meta = CPAN::Meta\->load_file(\*(AqMETA.json\*(Aq); # or META.yml \& plan skip_all => \*(AqNo META.json\*(Aq if ! $meta; \& \& my @files = File::Find::Rule::Perl\->perl_files\->in(\*(Aq./lib\*(Aq, \*(Aq./bin\*(Aq); \& ok_dependencies($meta, \e@files, [qw/runtime configure build test/], \& undef, # all features in the cpanfile \& ignores => [ qw/ Your::Namespace Some::Other::Namespace / ] \& ); \& \& done_testing; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Makes sure that all of the modules that are 'use'd are listed in the Makefile.PL as dependencies. .SH "OPTIONS" .IX Header "OPTIONS" \&\fB\s-1DEPRECATED\s0\fR You can pass options to the module via the 'use' line. These options will be moved to the \fBok_dependencies()\fR function. The available options are: .IP "forward_compatible" 4 .IX Item "forward_compatible" When specified and true, stops the module from outputting a plan, which is the default mode of operation when the module becomes 1.0. .IP "exclude" 4 .IX Item "exclude" Specifies the list of namespaces for which it is ok not to have specified dependencies. .IP "style" 4 .IX Item "style" \&\fB\s-1DEPRECATED\s0\fR .Sp There used to be the option of specifying a style; the heavy style depended on B::PerlReq. This module stopped working somewhere around Perl 5.20. Specifying a style no longer has any effect. .SH "EXPORTED FUNCTIONS" .IX Header "EXPORTED FUNCTIONS" .ie n .SS "ok_dependencies($meta, $files, $phases, $features, %options)" .el .SS "ok_dependencies($meta, \f(CW$files\fP, \f(CW$phases\fP, \f(CW$features\fP, \f(CW%options\fP)" .IX Subsection "ok_dependencies($meta, $files, $phases, $features, %options)" .Vb 2 \& $meta is a CPAN::Meta object \& $files is an arrayref with files to be scanned .Ve .PP \fI\f(CI%options\fI keys\fR .IX Subsection "%options keys" .IP "phases" 4 .IX Item "phases" This is an arrayref holding one or more names of phases as defined by CPAN::Meta::Spec, or undef for all .IP "features" 4 .IX Item "features" This is an arrayref holding zero or more names of features, or undef for all .IP "ignores" 4 .IX Item "ignores" This is a arrayref listing the names of modules (and their sub-namespaces) for which no errors are to be reported. .SS "\fBok_dependencies()\fP" .IX Subsection "ok_dependencies()" \&\fBDeprecated.\fR Legacy invocation to be removed. In previous versions, this function would scan the \fIentire\fR bin/, lib/ and t/ subtrees, with the exception of a few sub-directories known to be used by version control systems. .PP This behaviour has been changed: as of 0.20, Find::File::Rule::Perl is being used to find Perl files (*.pl, *.pm, *.t and those starting with a shebang line referring to perl). .SH "AUTHORS" .IX Header "AUTHORS" .IP "\(bu" 4 Jesse Vincent \f(CW\*(C`\*(C'\fR .IP "\(bu" 4 Alex Vandiver \f(CW\*(C`\*(C'\fR .IP "\(bu" 4 Zev Benjamin \f(CW\*(C`\*(C'\fR .IP "\(bu" 4 Erik Huelsmann \f(CW\*(C`\*(C'\fR .SH "BUGS" .IX Header "BUGS" .IP "\(bu" 4 Test::Dependencies does not track module version requirements. .PP Please report your bugs on GitHub: .PP .Vb 1 \& L .Ve .SH "SUPPORT" .IX Header "SUPPORT" You can find documentation for this module with the perldoc command. .PP .Vb 1 \& perldoc Test::Dependencies .Ve .PP You can also look for information at: .IP "\(bu" 4 \&\s-1CPAN\s0 Ratings .Sp .IP "\(bu" 4 Search \s-1CPAN\s0 .Sp .SH "LICENCE AND COPYRIGHT" .IX Header "LICENCE AND COPYRIGHT" .Vb 2 \& Copyright (c) 2016\-2023, Erik Huelsmann. All rights reserved. \& Copyright (c) 2007, Best Practical Solutions, LLC. All rights reserved. \& \& This module is free software; you can redistribute it and/or modify it \& under the same terms as Perl itself. See perlartistic. \& \& DISCLAIMER OF WARRANTY \& \& BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY \& FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN \& OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES \& PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER \& EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED \& WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE \& ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH \& YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL \& NECESSARY SERVICING, REPAIR, OR CORRECTION. \& \& IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING \& WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR \& REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE LIABLE \& TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR \& CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE \& SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING \& RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A \& FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF \& SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH \& DAMAGES. .Ve