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.)

Reply via email to