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