Andreas J. Koenig wrote:
CPAN.pm still has an open issue with Module::Build with regard to
finding out the prerequisites of a distribution. I append the email
below where I asked the encompassing question: can I rely on the
contents of _build/prereqs?
Since then I have changed CPAN.pm in 1.88_63 to actually read
_build/prereqs. All CPAN seems to be conquered with this trick. All of
CPAN? Actually, one developer complained about it: Sendu Bala (CC'd)
who released SENDU/bioperl-1.5.2_100.tar.gz in December. He used some
heavy Module::Build subclassing wizardry, I did not try to understand
it.
Specifically the issue was that my _build/prereqs 'requires' wasn't the
normal dumped hash-ref, but an array of hash-refs (such that CPAN/my
M::B subclass would install things in a certain order).
But after discussion with Andreas I find that order can be achieved a
better way, so I could do an updated release that behaves normally wrt
_build/prereqs. Andreas, when were you thinking of releasing 1.89? I'd
like just a little time to update bioperl before hand.
Would it be possible to make an interface decision for the prereqs?
All that said, I still have to point out my issues with this approach.
The '_build' directory is supposed to be configurable. The prereqs file
is a dump of the internal data structure of a module. It seems extremely
wrong to me for CPAN to have to hard-code the location of this file and
assume the format of its contents. This is no suitable 'interface'!
There ought to be some defined M::B method that generates a file that
CPAN will read, thus allowing the format and location of the file to be
documented in the API, and allowing M::B sub-classers to massage their
data correctly in their over-ridden version of that method.
(I'm still not really clear on the problem with CPAN using "$req =
Module::Build->current->requires();". Seems 'correct' and ideal to me.)