Situation: -- Perl with Module::Build 0.2808 -- CPAN::Reporter::Smoker specifies Module::Build 0.30 as 'requires' -- CPAN.pm runs Build.PL (0.2808) sees the requires -- CPAN.pm installs Module::Build (0.33) -- CPAN.pm runs C::R::S Build (0.33) -- Build dies due to version mismatch (configured with 0.2808, but now 0.33)
Essentially, M::B can't be upgraded as a prereq after Build.PL runs. Options: (a) specify 'allow_mb_mismatch => 1' in the C::R::S Build.PL (b) patch M::B to automatically allow_mb_mismatch in the case where M::B itself is in requires (c) put M::B in the C::R::S 'configure_requires' Other ideas? Note that (c) is a tactical fix only. Module Foo could run Build.PL, require Module Bar, which has M::B configure_requires, which results in M::B being upgraded before Module Foo runs Build. That would break the same way. So, regardless, I think either we need to document (a) (and probably have M::B warn if it finds this situation) or we need to fix M::B as in (b). What do y'all think? -- David