On Mar 31, 2007, at 6:51 AM, Adam Kennedy wrote:

John Peacock wrote:
I have a couple of CPAN Testers failures listed against SVN::Notify::Config specifically because I specified a minimum Module::Build release, and the person running the tests upgraded Module::Build in the test sandbox, while trying to build SVN::Notify::Config. I hate this, because it means I don't find out about actual failures in my code, but rather only failures in the testing framework.

Yeah.

This isn't the testing framework's problem.


Well, it's probably M::B's problem, since the best official way to depend on a specific M::B version is exactly what he did, put it in build_requires. We're better than EU::MM in this respect, because with EU::MM you can only put the dependency in PREREQ_PM, but nobody notices because nobody cares what version of EU::MM they're using.


You are the one that specified a dependency to be fulfilled AFTER Build.PL runs, which we already know will cause M:B to freak out.

The testing framework just did exactly what you said.

It may not be your line of code that failed, but it's still your responsibility for breaking the toolchain in your Build.PL, and thus the bug is correctly yours.

The main reason we can't ever default to --allow_mb_mismatch=1 is that we don't promise binary compatibility of the _build/ directory across releases. There are several known specific freakouts that will happen if the version of M::B changes after _build/ is created. However, the 'realclean' action usually works fine, so I added the -- allow_mb_mismatch flag to at least let people recover somewhat gracefully.

 -Ken

Reply via email to