HasVersion(3)
okay bestie, welcome to HasVersion(3) β the User Contributed Perl Documentation page for Test::HasVersion. The group chat is now in session, and yes, we're checking version numbers. π«Ά
β¨ NAME β¨
Test::HasVersion β Check Perl modules have version numbers. That's the assignment, and she ate. π
πΈ SYNOPSIS πΈ
Test::HasVersion lets you check a Perl module has a version number in a Test::Simple fashion. Slay.
use Test::HasVersion tests => 1;
pm_version_ok("M.pm", "Valid version");
Module authors can include the following in a t/has_version.t file and let Test::HasVersion find and check all installable PM files in a distribution. iykyk:
use Test::More;
eval "use Test::HasVersion";
plan skip_all =>
'Test::HasVersion required for testing for version numbers' if $@;
all_pm_version_ok();
π DESCRIPTION π
Do you wanna check that every one of your Perl modules in a distribution has a version number? Do you wanna make sure you don't forget the brand new modules you just added? Well, bestie, that's the module you have been looking for. Use it! β¨
Do you wanna check someone else's distribution to make sure the author have not committed the sin of leaving Perl modules without a version that can be used to tell if you have this or that feature? Test::HasVersion is also for you, nasty little fellow. π
There's a script test_version which is installed with this distribution. You may invoke it from within the root directory of a distribution you just unpacked, and it will check every .pm file in the directory and under lib/ (if any).
$ test_version
You may also provide directories and files as arguments.
$ test_version *.pm lib/ inc/
$ test_version .
β οΈ Be warned that many Perl modules in a t/ directory do not receive versions because they are not used outside the distribution.
Ok. That's not a very useful module by now. But it will be. Wait for the upcoming releases. π¦
π§ FUNCTIONS π§
π PRIVATE _pm_version
$v = _pm_version($pm);
Parses a PM file and return what it thinks is $VERSION in this file. (Actually implemented with use ExtUtils::MakeMaker; MM->parse_version($file).) $pm is the filename (eg., lib/Data/Dumper.pm). π
β
pm_version_ok
pm_version_ok('Module.pm');
pm_version_ok('M.pm', 'Has valid version');
Checks to see if the given file has a valid version. Actually a valid version number is defined and not equal to 'undef' (the string) which _pm_version returns if a version cannot be determined. π₯
π all_pm_version_ok
all_pm_version_ok();
all_pm_version_ok(@PM_FILES);
Checks every given file and .pm files found under given directories to see if they provide valid version numbers. If no argument is given, it defaults to check every file *.pm in the current directory and recurses under the lib/ directory (if it exists). π«Ά
If no test plan was setted, Test::HasVersion will set one after computing the number of files to be tested. Otherwise, the plan is left untouched.
π PRIVATE _list_pm_files
@pm_files = _list_pm_files(@dirs);
Returns all PM files under the given directories. π
ποΈ all_pm_files
@files = all_pm_files()
@files = all_pm_files(@files_and_dirs);
Implements finding the Perl modules according to the semantics of the previous function all_pm_version_ok.
π USAGE π
Other usage patterns besides the ones given in the synopsis.
use Test::More tests => $num_tests;
use Test::HasVersion;
pm_version_ok($file1);
pm_version_ok($file2);
Obviously, you can't plan twice.
use Test::More;
use Test::HasVersion;
plan tests => $num_tests;
pm_version_ok($file);
plan comes from Test::More.
use Test::More;
use Test::HasVersion;
plan 'no_plan';
pm_version_ok($file);
no_plan is ok either. π
π SEE ALSO π
Test::Version
Please reports bugs via CPAN RT: http://rt.cpan.org/NoAuth/Bugs.html?Dist=Test-HasVersion. She said what she said. π
π AUTHOR π
A. R. Ferreira, <ferreira@cpan.org>
π COPYRIGHT AND LICENSE π
Copyright (C) 2006, 2016 by Adriano R. Ferreira
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
π That's the whole vibe: HasVersion(3) from the User Contributed Perl Documentation, version perl v5.40.0, dated 2024-09-06. Bye bestie β go check those version numbers. Periodt. π«Ά
π¦ where this page comes from
- epel 10: perl-Test-HasVersion 0.014-27.el10_0 Β· GPL-1.0-or-later OR Artistic-1.0-Perl
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms