Re: [Module-build-general] A better passthrough Makefile.PL
Status: Beta
Brought to you by:
kwilliams
From: Ken W. <ke...@ma...> - 2002-11-01 07:47:26
|
On Friday, November 1, 2002, at 01:22 AM, Dave Rolsky wrote: > On Thu, 31 Oct 2002, Ken Williams wrote: > >> I've been ruminating on this, and I think what I want to do is put >> hooks >> into M::B that will use EU::AI if it's installed (and if the user wants >> auto-installation), but that EU::AI should remain the way to >> automatically install modules. M::B should use EU::AI, not Borg its >> code. Obviously this is better from a separation-of-labor & modularity >> point of view, and I think it feels better from a policy point of view >> too. >> >> EU::AI can be a recommended dependency for M::B then. > > But some of what EU::AI just makes sense for M::B. M::B already breaks > up > dependencies in a more fine-grained way the EU::MM, so why not go a step > further and do what EU::AI does, and offer a break not only by > build/test/run but also by feature. This is just generically useful. Oh, maybe I don't understand what EU::AI is for. I'll download and investigate. > I also like the idea of being able to specify that _specific tests_ > have a dependency, so M::B can just skip them if that dependency is not > satisfied. Specific tests can already be skipped by various criteria, but that happens inside the test by emitting specific Test::Harness stuff rather than being controlled by the builder. > In other words, I think have a very full-featured dependency handling > feature is an important goal for M::B. Auto-installing of modules is > not > what I was aiming at. M::B should cooperate with CPAN and CPANPLUS in > this regard (or use EU::AI, etc.) Agreed on the last part - I'll read more about EU::AI. >> A very related problem is the idea of alternative dependencies - for >> instance, Crypt::SKey needs either Digest::MD4 or Digest::MD5, but >> there's no great way to indicate that with M::B's dependency >> specification right now. > > Good thing to add. I wonder if the current way of doing this as a hash > of > "module name => version spec" is too inflexible? > > I almost wonder if supporting a mini-language might be best. We already > have the beginning with the version spec, so maybe something like: > > 'Foo::Bar >= 2, <= 3.5 | Foo::Baz == 2.1' I wonder too. Hmmmm. I'm not too thrilled with that particular syntax, I've seen something somewhat better in Fink (which I guess is probably taken from debian's stuff). -Ken |