Subject: | bad prerequisite handling from command line |
Date: | Sun, 3 Jan 2010 01:12:17 +0000 |
To: | bug-CPAN [...] rt.cpan.org |
From: | Zefram <zefram [...] fysh.org> |
Using CPAN 1.945301, from a nearly-fresh 5.11.3 core installation,
I'm seeing faulty dependency following when installing from the cpan(1)
command line, but correct dependency following inside the CPAN shell.
The YAML and YAML::Tiny modules are both installed, to support META.yml
processing.
As a test case, I'm requesting installation of my module Array::Base,
which depends on Lexical::SealRequireHints; the dependency is declared
in the usual manner. Doing "cpan Array::Base" yields this sequence
of events:
0. configure Array::Base, which reports that Lexical::SealRequireHints
is not installed
1. build Array::Base (successfully)
2. test Array::Base, with most tests failing
3. install Array::Base
4. configure Lexical::SealRequireHints
5. build Lexical::SealRequireHints
6. test Lexical::SealRequireHints, passing
7. install Lexical::SealRequireHints
The end result is correct: both modules are installed and both
work. But if the process is interrupted in the middle then the
result is not correct: a broken installation of Array::Base, with
Lexical::SealRequireHints not installed. Since Array::Base was installed
without ever passing its test suite, presumably it would still have been
installed if there were test failures for other reasons.
Doing "install Array::Base" from inside the CPAN shell yields the
expected sequence:
0. configure Array::Base, which reports that Lexical::SealRequireHints
is not installed
1. configure Lexical::SealRequireHints
2. build Lexical::SealRequireHints
3. test Lexical::SealRequireHints, passing
4. install Lexical::SealRequireHints
5. build Array::Base
6. test Array::Base, passing
7. install Array::Base
Don't know what happens if a test suite fails from inside the CPAN shell.
Output of both sequences (on separate 5.11.3 installations) is attached.
-zefram
Message body is not shown because sender requested not to inline it.
Message body is not shown because sender requested not to inline it.