The questions that are being asked are for the user's benefit. That is
NOT being a freeloader. Freeloading is taken something from the user and
providing nothing in return.
If an installer asks a question in order to install the module or run
the testing, it is acting for the user's benefit.
The reason phone home in general, and this type of question
specifically, is freeloading is that it is not acting in a positive way
for the user. The same would be true if I introduced Google text ads you
had to watch during the module install. Even with a "Skip this text ad"
option, it's still taking from the user.
But now she is at least doing it relative sanely (as opposed to earlier)
and since she doesn't have any particularly popular modules, and as long
as she's the ONLY one doing this sort of thing, it's still fairly innocent.
And so I haven't been chasing her about it.
I'm done venting now.
Adam K
Michael G Schwern wrote:
On 5/27/06, *Adam Kennedy* <[EMAIL PROTECTED] <mailto:[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.