On 5/27/06, Adam Kennedy <[EMAIL PROTECTED]> wrote:
I tell you what, I'm going to add the same code to all 100+ of my modules. And what if then Audrey and Ovid and Miyagawa and a hundred others did. For an application with 50 dependencies, that's 50 x 20 second pauses, or you get to sit there hitting no constantly. She's acting as a freeloader on the system.
If she's a freeloader then Andy Lester is a freeloader. By your logic you must complain about any module which asks the user any question because they cause the installation to pause and you have to take action. Most of those don't even have the courtesy to time out! Let's apply your logic to WWW::Mechanize. It asks not one but TWO questions! What if every module on CPAN decided they wanted to prompt the user if they should run a certain group of tests? Or install an extra program? Think of the poor enter key! Have we gone after Andy? No, that would be silly. Furthermore, she's properly using Module::Build->y_n() which, like ExtUtils::MakeMaker's prompt(), will just accept the default if it figures the system is not attached to a TTY. And if you really don't want to hear about it you can switch off all interaction with PERL_MM_USE_DEFAULT=0 like any other module. She has even provided an extra environment variable for her own modules. I'm not saying the system couldn't be improved, it could, but her prompting is better than most other's. But if more people started doing it, and they were modules in more use,
then it gets annoying very very quickly. And that's quite a bit different to some centralised implementation embedded in CPAN.pm that asks once and remembers.
If lots of people start doing it, yes, we should start looking at putting the process into the CPAN shell or Module::Build or something. But I do not think that its up to a single author to worry about the consequences of what happens if everyone starts doing their technique. If that were so, nobody would get any customization done. If you wanted a way forward from this, a Module::Build::PhoneHome would be nice with its own environment variable, independent of PERL_MM_USE_DEFAULT, to switch it off. Then people can just use it and it will do the right thing, whatever that turns out to be.