No need to do the test case. I was able to load the bioperl
dependency chain and see it directly. :-)
I have two reactions:
(a) Module::Build is doing it wrong -- in that it will "normalize" an
undefined version to "0" and leave it in. The CPAN::Meta::Spec v2
says that the version metadata should only exist if a $VERSION string
exists, but Module::Build does not produce v2 metadata and the v1.4
spec doesn't say anything about the subkeys of "provides".
(b) PAUSE is being too nitpicky. An undefined $VERSION is effectively
treated as a "0" in code, so it doesn't really matter too much if the
metadata says "0" or omits the key.
Nevertheless, in a battle between M::B and PAUSE, clearly PAUSE should
win. (I get to wear both hats: I'm PAUSE admin *and* M::B
co/ex-maintainer, so I'm indifferent.)
I'll commit a fix to the repo and if/when a new M::B maintainer
volunteers (or I'm forced by p5p to do another release), then it will
go live.
I do encourage adding $VERSION to the bioperl code (it looks like
you're heading down the dzil route -- which can solve that for you).
-- David