# from Adam Kennedy
# on Friday 27 October 2006 08:38 pm:

>As I've explained a few times now requires and build_requires (and
>dev_requires/devel_require etc if we get them) can ONLY reliably be
>determined by running the Build.PL to resolve variations in
> dependencies on different platforms.

Please give a realistic example of requiring different *build* or 
*install* plugins on different platforms.  Perhaps my builder.pm hack 
needs rethinking.

Actually, as long as Module::Build::Plugins runs on all platforms, 
you'll still be able to just build_requires MBP (if you really need an 
install plugin) and builder('Module::Build::Pluggable') then returns 
'Module::Build::Pluggable' and hopefully your custom build class can 
handle the rest at runtime.

What part of that does not work for you?

I think it is okay if dev_requires takes a bit of critical thinking.  
Most programmers should be able to understand the concept of a 
dependency.  Sure, I would love for it to be seamless, but it is not 
worth blocking the deployment of a 98% solution.

>It also means that plugins won't be allowed if you have different 
>dependencies on different platforms.

I cannot really see a good reason to dynamically choose a 
platform-specific M::B plugin.  If the plugin needs something special, 
that is solved during its own install process.  Thus, which *plugin* 
your build requires is static.  If that doesn't work for some reason, 
just release another plugin and declare a static dependency on it.

Aside:  I think you might be harping on a completely different (and yes, 
valid) problem.  Would the ability to require "A or B or C" solve that?

--Eric
-- 
You can't whack a chisel without a big wooden mallet.
---------------------------------------------------
    http://scratchcomputing.com
---------------------------------------------------

Reply via email to