Revision history for Module-CPANTS-Analyse 1.02 2023-09-10 - Treat use v5.36 as use_warnings - Skip some of the manifest test if symlink is not available - Improve prereq sorting - Improve pod detection - Improve script detection - Use Parse::Distname to get a little more information from a distribution name - Dedupe possible licences - Add Object::Pad as use strict equivalent (Wesley Schwengle) - Fix has_license_in_source_file for distributions that contain only a script under bin or scripts (Sven Kirmess) 1.01 2019-08-08 - Fixed not to set an error message when extracted nicely (spotted by Martin Becker++) - Fixed to restore mtime of MANIFEST.SKIP if it is modified by #include_default - Improved primary module detection - Fixed to catch CPAN::Meta::YAML's warnings (of duplicate keys) - Improved test_prereqs_match to handle t::lib::Util, and ignore files that contain but don't end with .t - Fixed to store multiple licenses in META files 1.00 2019-02-03 ** BACKWARD INCOMPATIBLE CHANGE ** - Module::CPANTS::Kwalitee::Uses now uses a different prereq scanner (Perl::PrereqScanner::NotQuiteLite). - Added new kwalitee metrics: no_maniskip_error, no_missing_files_in_provides, no_files_to_be_skipped - Delayed plugin loading 0.99 2019-01-15 - requires Module::Find 0.98 2019-01-15 ** BACKWARD INCOMPATIBLE (INTERNAL) CHANGE ** - Module::CPANTS::Kwalitee now uses Module::Find to find Kwalitee modules (instead of Module::Pluggable that unconditonally spits a deprecation warning). You usually don't need to care but if you have your custom Kwalitee plugin loader (such as Module::CPANTS::SiteKwalitee), you need to change it. Sorry for the inconvenience. - Allow dash and dot in script name in the NAME section for non-pm, non-pod files 0.97_11 2018-04-22 - no changes; for testing 0.97_10 2018-04-22 - no changes; for testing 0.97_09 2018-04-22 - no changes; for testing 0.97_08 2018-04-22 - no changes; for testing 0.97_07 2018-04-22 - no changes; for testing 0.97_06 2018-04-22 - no changes; for testing 0.97_05 2018-04-22 - no changes; for testing 0.97_04 2018-04-21 - Skip everything in MANIFEST.SKIP while testing symlinks (GH#33, Tux++) 0.97_03 2016-09-01 - Not to check use_strict/use_warnings for Perl 6 modules in a Perl 5 distribution (Stefan Seifert++) - Worked around a File::Find::Object issue (reported by dolmen) - Fixed dynamic_config handling (David Golden++) - Improved LICENSE file detection (RT#114247) 0.97_02 2016-04-27 - Requires List::Util 1.33 0.97_01 2016-04-24 - Added has_meta_json metric (RT#107885) - Accept a few more README extensions (mrcaron) - Accept two more Moose modules as strict equivalents - Various micro optimization for performance - Dropped a few dependencies - Doc patch from brac-mac and joenio 0.96 2014-11-24 - Added an import option to load extra Kwalitee plugins. - Fixed RT#100512 - has_readme now accepts README.pod as well - Improved no_abstract_stub_in_pod to detect "The great new" as a boilerplate - Switched to File::Find::Object 0.95 2014-09-26 - Switched to Test::FailWarnings to make CPAN testers happier 0.94 2014-09-26 - Fixed RT#99141 - use_strict metric does not recognize `use v5.14` syntax (ishigaki) 0.93_04 2014-09-05 - Accept COPYING as a license file - Take included module (under inc/) into consideration while analyzing prereq_matches_use - Changed most of the META.yml metrics to pass if META.yml doesn't exist 0.93_03 2014-08-13 - Added meta_json_is_parsable and meta_json_conforms_to_known_spec - Added meta_yml_has_repository_resource - Renamed metayml_ metrics to meta_yml_ - Fixed abstract encoding issues - Refactored tests - Fixed not to ignore directory symlinks - Fixed RT#97858 - wrong no_symlinks test in files not in MANIFEST (for a local distribution; CPANTS site doesn't ignore symlinks not listed in MANIFEST) - Fixed RT#97601 - Test::Kwalitee incorrectly reports non-use of strict in Inline::CPP 0.93_02 2014-06-30 - Removed cpants_lint.pl in favor of App::CPANTS::Lint - Fixed RT#94468 - "use_strict" metric doesn't like .pod files that contain no perl (ishigaki) - Fixed RT#96492 - 0.93_01 test failures on OSX (ether) 0.93_01 2014-05-27 - Added the following metrics: - has_known_license_in_source_file - has_abstract_in_pod - no_abstract_stub_in_pod - Removed metayml_conforms_spec_current metric. - Supported x_cpants custom META field to tell analyzer to ignore some of the metrics (only) when calculating a kwalitee score. - Refactored several Kwalitee files, and internal stash layout has changed rather significantly. You might need to modify your tools if they happen to depend on the stash directly. 0.92 2013-09-22 - Fixed a case when more than one license sections come in row (spotted by ysasaki++) (ishigaki) - stopped checking auto_features (ishigaki) 0.91 2013-09-05 - Fixed RT#69233 - doesn't detect use >= 5.012 as use strict (ishigaki) - Fixed RT#83336 - Fails to detect strict via `use MooseX::Types` (ether) - Fixed RT#83851 - 'use v5.16' and greater not deemed "strict" (ishigaki) - Fixed RT#86504 - fix sort order of Kwalitee generators (ether) - Fixed RT#87155 - more Module::Install tests needed (1.04 is broken) (ishigaki) - Fixed RT#87597 - proper_libs is a dubious test (ishigaki) - Fixed RT#87598 - Can't use an undefined value as an ARRAY reference at .../FindModules.pm line 115. (ishigaki) - Fixed RT#87988 - Fix use of $Test::Kwalitee::VERSION (ether) - Fixed RT#88216 - extracts_nicely metric fails for -TRIAL releases (ishigaki) - Fixed RT#88365 - YAML/JSON tests are not failing when improperly encoded characters are seen (ishigaki) - Moose::Exporter also provides strict and warnings (doy) 0.90_02 2013-08-03 - Fixed rt#87535 - incorrect version specification in 0.90_01 (ether) - Fixed rt#87534 - Test failure in 0.90_01 (ether) - Fixed rt#87561 - t/11_hash_random.t fails due to undeclared test dependency (wyant) 0.90_01 2013-08-01 - Applied all the changes in 0.88 again, and removed a few non-portable metrics for Test::Kwalitee. 0.89 2013-08-01 - Tentatively reverted all the changes in 0.88 0.88 2013-08-01 - add metric "no_dot_underscore_files" (daxim, charsbar) - remove metrics "distributed_by_debian", "latest_version_distributed_by_debian", "has_no_bugs_reported_in_debian", "has_no_patches_in_debian", "no_cpants_errors", "uses_test_nowarnings", "has_test_pod", "has_test_pod_coverage", "has_examples" (charsbar) - add metric "portable_filenames" (charsbar) - numerous fixes for a smoother operation of www-cpants (charsbar) 0.87 2013-02-12 - fix rt#80225 - Test failures due to Test::CPAN::Meta::YAML::Version interface change (wyant) - fix rt#82939 - Hash-Randomization causes 10_analyse.t to fail (kentnl, chorny) - fix rt#44796 - Module::CPANTS::Kwalitee::Manifest broken for MANIFESTs containing files with spaces (rivy) 0.86 2012-04-11 - add several strict and warnings equivalents & make it easy to add more - fix when Moose is used and strict is not used - add info about "MIN_PERL_VERSION" - better remedy for metayml_declares_perl_version - metayml_declares_perl_version moved from experimental to extra some pod improvements (jquelin) - fix rt#65903 - no more "Test::YAML::Meta::Version" on CPAN (jquelin) - replace YAML::Syck with YAML::Any (jquelin) - no_symlinks checks only files in MANIFEST, use "maniread" in ExtUtils::Manifest (rurban) - add more equivalents for use_strict and use_warnings tests (doherty) - implement valid_signature metric (daxim) 0.85 2009-07-12, Alexandr Ciornii - fix fails on non-Win32 0.84 2009-07-08, Alexandr Ciornii - require Test::Warn 0.11 - add Test::More to deps - add LWP::Simple to deps - fix calc_test_yaml_meta.t - better META.yml - list of changes for 0.83 (domm) 0.83 2009-06-10 - ignore "no_index" when searching for examples (xdaveg) - skip the debian metrics and downloading the debian file when in LINT (szabgab) - has_test_pod and has_test_pod_coverage are now optional metrics (domm) 0.82 2008-07-08 10:23:30 - update META.yml spec to 1.4 - fixed experimental metrics - use Moose now counts for using strict - lots of commits from Gábor - honor META.yml key "no_index". - Fixes RT#32777 and an IRC complaint by BinGOs 0.81 Sun Apr 13 16:45:29 CEST 2008 - fixed doc bug in SYNOPSIS (reported by ADAMOWSKI as RT#34773) - made Module::CPANTS::Kwalitee::FindModules smarter (domm): If available, use META.yml "provides". If not, look for "package" statements in files. It now also finds stuff like Tk::Widget and App::Ack upgrade to Software::License 0.003 (Gábor) 0.80 Sat Apr 12 10:53:40 CEST 2008 domm: - add metayml_has_provides metric Gábor Szabó: - simplify the way the VERSION number is looked up, keep the full version line - increase the no_large_files limit to 200_000 - some unit test fixes thanks to Tux - some of {error} fields are now ARRAY refs instead of strings - more detailed unit tests - add "LICENCE" to the list of special files (not only LICENSE) - collect the license information of each file using Software::LicenseUtils - add has_separate_license_file metric - add has_license_in_source_file metric 0.79 Tue Apr 8 01:25:12 CEST 2008 - released at the Oslo QA Hackathon 2008 Gábor Szabó: - replace File::Find by File::Find::Rule - add no_large_files metrics - add fits_fedora_license metric that was inside the - easily_repackageable_by_fedora metric - add "is_experimental" flag to some of the metrics - add aggregating key to metric to list the other metrics being aggregated - unhide some errors during testing - renamed some error fields - add metayml_declares_perl_version metric 0.78 2008-04-06 - released at the Oslo QA Hackathon 2008 - very hacky workaround for problems with Meta.YML, version objects, etc - moved "has_version_in_each_file" into - Module::CPANTS::Kwalitee::Version & fixed a bug in it Gábor Szabó: - add fits_fedora_license metric that was inside the - easily_repackageable_by_fedora metric - add "is_experimental" and "is_aggregate" flags to some of the metrics - unhide some errors during testing - add no_generated_files metric - add easily_repackageable_by_fedora, - easily_repackagable_by_debian and easily_repackageable metric - add has_version_in_each_file metric - add has_tests_in_t_dir metric - add no_stdin_for_prompting metric checking for STDIN in Makefile.PL and Build.PL 0.77 2008-01-29 - made prereq_matches_use and build_prereq_matches_use optional metrics - changed data structure: all errors are now in a hashref called "error" 0.76 2007-11-14 - added new metrics prereq_matches_use and build_prereq_matches_use - added "needs_db" to metrics and removed hardcoded workaround for is_prereq - removed workaround in Module::CPANTS::Kwalitee::MetaYML (Barbie fixed it the problem in Test::YAML::Meta) - reworded metayml_is_parsable remedy 0.75 2007-10-29 - added optional metric use_warnings - added directory xt as a potential location for test files - finally applied patch provided by Adriano Ferreira to fix some issues in Module::CPANTS::Kwalitee::Manifest. See RT #28982 0.74 2007-10-24 - removed metric "metayml_conforms_spec_1_0" - fixed bug in "check_spec_conformance" in Module::CPANTS::Kwalitee::MetaYML, which caused wrong results in metayml_conforms_spec* - switched to YAML::Syck - work around Pod::Simple::Checker returning strange data 0.73 2007-09-12 - added version of dist to dump file name - fixed bug in Module::CPANTS::Kwalitee::NeedsCompiler (RT #28134 plus all reported merged into that one) 0.72 2007-06-30 - added docs to cpants_lint.pl - cpants_lint.pl can now dump metadata to a file - added YAML output to cpants_lint.pl Gábor Szabó: - added Module::CPANTS::Kwalitee::NeedsCompiler MCK::NeedsCompiler does not contain any "kwalitee_indicator", but adds much needed metadata. Barbie: - Module::CPANTS::Analyse assumes Unix paths after munging with File::Spec, thus breaking portability at every turn in a non-Unix-like environment… bad Thomas no biscuit! Refined META.yml metrics using Test::YAML::Meta and brought *current spec* up to date with version 1.3 :) 0.71 2007-04-23 - moved svn repo to - has_license now also checks for LICENCE (as suggested by David Cantrell) - fixed RT #26535 reported by MTHURN - has_example now also checks for "p(m|od)" files (as suggested by JUERD) - fixed RT #24228 reported by THALJEF - t/99_critic.t now only runs if $ENV{AUTHOR_TEST} is set - resolved RT #25198 reported by bdfoy using his patch Module::CPANTS::Kwalitee::FindModules: do not check META.yml for "provides" because META.yml might list semi-garbage (eg according to META.yml, Siesta provides Apache::Constants, which it does not.) - skip very large test-files and only check *.t files (not everything in t/) as suggested by CASIANO - cpants_lint.pl: - switched from Getopt::Std to Getopt::Long - added "--no_capture" option for easier debugging - added "--verbose" options - hopefully fixed RT #25207 (test failures on Win32) reported (and patched…) by HEMINGWAY. This should also solve RT #26535 reported by Martin Thurn - applied doc patch submitted by MSTEVENS as RT #26379 0.69 2006-11-04 - split up "metayml_conforms_spec" to metayml_conforms_spec_1_0 and "metayml_conforms_spec_1_2" (which is optional) - added "metayml_error" and docu pointers to it. 0.68 2006-10-28 - fixed bug in Module::CPANTS::Kwalitee::FindModules reported by JDHEDDEN in RT #22081 (the module name of modules living in the top-level namespace (eg 'threads.pm') was not guessed correctly use META.yml "provides" (if it exists) instead of guessing module names in Module::CPANTS::Kwalitee::FindModules modifed changelog-regex in Module::CPANTS::Kwalitee::Files as suggested by CDOLAN in RT #21999 - added Module::CPANTS::Kwalitee::License - moved license checking to Module::CPANTS::Kwalitee::License - added checks for LICENSE file and "LICENSE" POD section - moved "meta_yml" parsing to Module::CPANTS::Kwalitee::MetaYML - changed "has_license|Module::CPANTS::Kwalitee::License" error text after Schwern (and Andreas Koenig) suggested that ExtUtils::MakeMaker now supports a "license" field 0.67 2006-09-13 - cpants_lint.pl now handles reporting of optional metrics better. - added t/99_critic.t (Gábor Szabó) - some code cleanups as reported by Test::Perl::Critic (Gábor Szabó) - new metric: "has_license|Module::CPANTS::Kwalitee::License"; - Module::CPANTS::Kwalitee::MetaYML (Gábor Szabó) - Module::CPANTS::Kwalitee::Pod now reports the error messages returned by Pod::Simple::Checker (suggested by Gábor Szabó) 0.66 2006-09-06 - added "optional_indicator_names utility" in Module::CPANTS::Kwalitee method 0.65 2006-09-05 (YAPC::Europe hackathon release) - updated test suite - added "has_example" to Module::CPANTS::Kwalitee::Files - added "buildtool_not_executable" to Module::CPANTS::Kwalitee::Files - added Module::CPANTS::Kwalitee::Manifest ("manifest_matches_dist") 0.64 2006-08-29 - updated Module::CPANTS::Kwalitee::BrokenInstaller submitted by Steffen Müller 0.63 2006-07-31 - we now also find README.txt - resolves RT #20633 reported by MBARBON (thanks for the patch!) 0.62 2006-07-20 - added Module::CPANTS::Kwalitee::BrokenInstaller submitted by Steffen Müller 0.61 2006-07-17 - Kwalitee metrics can now be marked as "is_extra" Such metrics do not count for available kwalitee - marked is_prereq as "is_extra" - cpants_lint now reports percentages additional to absolute values - cpants_lint won't list failed "is_extra" metrics - added some method caching to Module::CPANTS::Kwalitee - added Ctotal_kwalitee> to Module::CPANTS::Kwalitee. 0.60 2006-05-18 - activated is_prereq metric - added helper method ("available_kwalitee") - Module::CPANTS::Kwalitee::FindModules: skip stuff in inc (Module::Install) 0.52 2006-03-12 - added some dependencies to Build.PL/META.yml (thanks to Achim Grolms and BLBLACK (RT #17977)) - enhanced output of cpants_lint.pl (list failed tests) - Module::CPANTS::Kwalitee::FindModules: die if we cannot find a namespace - Module::CPANTS::Kwalitee::FindModules: remove stuff that doesn't seem to be namespace (eg lowercase) from module names - changed the name of some fields to work with the (upcoming) DB added some tests 0.51 2006-02-16 - adapted Module::CPANTS::Kwalitee::Prereq to work with newer versions of YAML (reported by Andreas Koenig as RT #17670) 0.50 2006-01-26 - first release to CPAN 0.01 - started rewrite