Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: Re: Module::Build and the PPM

by autarch (Hermit)
on May 18, 2004 at 21:39 UTC ( [id://354454]=note: print w/replies, xml ) Need Help??


in reply to Re: Module::Build and the PPM
in thread Module::Build and the PPM

My opinion has always been that I like what the Module::Build folks are trying to do, but I hate their attitude. The example that I point to of that is their trying to push people away from using the simple compatibility layer because they want to guarantee that people hear of Module::Build. It seems to escape their attention that they are guaranteeing that people will first hear of Module::Build by being pissed off, and this isn't a very good thing.

I'm not sure where you get this from. The only time I see Ken discouraging people form using the compatibility layer is when there is something that cannot or will not be emulated by Module::Build. For example, Module::Build's compatibility layer doesn't emulate MakeMaker's PREFIX stuff. Ken decided not to do this because the way this is done in MakeMaker is insanely complex. M::B does offer a comparable feature (install_base=...), but it's much simpler.

I've never seen him tell people not to use the compatibility layer in their modules, and in fact I recall that he and I actively worked on it a long time ago, and he continues to work on it now.

Replies are listed 'Best First'.
Re: Re: Re: Module::Build and the PPM
by tilly (Archbishop) on May 19, 2004 at 01:10 UTC
    See the discussion at Re: Re: Re: Acme::Lingua::Pirate::Perl author needs encouragement to add Makefile.PL.

    Following that thread, I sent email to Ken Williams suggesting that the documentation for Module::Build::Compat not say that the preferred scenario is the one where you omit Makefile.PL and just tell people what to do in the README. Instead I thought that people should default to having passthrough present to install Module::Build for them. My point was that the resulting problems will mostly be felt by people who are trying to do something else (eg sysadmins doing a semi-automated install) who were only going to be annoyed at the extra difficulty. He replied saying that he didn't want to do that because he really wanted as many people as possible to learn about Module::Build. As I recall, the response got sent to some Module::Build mailing list, there was brief discussion, and the topic got dropped. I never followed up, and the documentation for Module::Build::Compat still says that the preferred scenario is to not provide compatibility with Makefile.PL, which will break people using CPAN to do installs.

    You can make of this what you will. As you might have guessed from my previous post, the episode left me with a bad taste. Furthermore any module that I happen to notice following Ken's advice is broken in my books, and I'll not fail to describe it accordingly if the occasion arises.

    Feel free to pass this message on to Ken if you wish. I presume that he is aware of my opinion, and likely doesn't care. At least he didn't care before, and I know of no reason for that to have changed.

      Well, I think your paraphrase of the Module::Build::Compat docs leaves quite a bit to be desired. Here's the actual text:

      Just include a Build.PL script (without a Makefile.PL script), and give installation directions in a README or INSTALL document explaining how to install the module. In particular, explain that the user must install Module::Build before installing your module. I prefer this method, mainly because I believe that the woes and hardships of doing this are far less significant than most people would have you believe. It's also the simplest method, which is nice. But anyone with an older version of CPAN or CPANPLUS on their system will probably have problems installing your module with it.

      So basically, Ken's saying that he prefers to just include a Build.PL file in his modules. He also points out the problems with this. Presumably, anyone using Module::Build is well aware of the fact that it isn't as well supported as EU::MM with common tools, and is capable of making a reasonable choice of what amount of backwards compatibility to provide, and won't be unduly swayed by Ken's opinion. The really funny thing is that Ken appears to be providing an auto-generated Makefile.PL with all his distros, despite what he writes in Module::Build::Compat ;)

        I find it not very much in the style of sensible defaults not to include a Makefile.PL. To recommend such a "solution" in the face of the fact that older versions "propably have problems installing your module" defies the use of a module to handle the installation. If I wanted to create problems during installation, I would write the Makefile myself. If I give up installation to a module, I expect that the module tries its best to work in all situations. ExtUtils::MakeMaker works in all situations, while Module::Build doesn't unless I make special provisions, like including a passthrough Makefile.PL for compatibility.

        Why can it be a design decision to make it easier for people to create broken distributions that won't install using CPAN by default?

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://354454]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (3)
As of 2024-04-24 20:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found