Subject: | missing deps declared with a version cause pointless warnings on `test Module` |
A test script demonstrating the issue can be found here: https://
gist.github.com/c5c6ebf47742ccc39e27
What happened is that i tried to run `test RIBASUSHI/SQL-
Translator-0.11010_05.tar.gz` in the CPAN shell, which requires both
Class::Base and XML::Writer. Both are downloaded, built and tested
during this process, but not installed. Class::Base passed harmlessly,
and XML::Writer passed all its tests too, but when it came time to
actually test SQL::Translator, i got this message:
Warning: Prerequisite 'XML::Writer => 0.500' for 'RIBASUSHI/SQL-
Translator-0.11010_05.tar.gz' already built but the result looks
suspicious. Skipping another build attempt, to prevent looping
endlessly.
Going through CPAN.pm in debug mode i found that this was caused simply
by how the dependency was declared. Neither of these modules are
installed, so neither of them has an $inst_file in
CPAN::Distribution::unsat_prereq, but both of them have an
$available_file. For Class::Base that was enough, since its dependency
was declared without a version. However for XML::Writer unsat_prereq()
insisted on it needing an $inst_file and printed the mentioned warning.
This behavior doesn't make a lot of sense to me since it doesn't look
like it fulfills any actual purpose. Maybe some parts can be cut out
there?