NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.
All the Perl that's Practical to Extract and Report
Stories, comments, journals, and other submissions on use Perl; are Copyright 1998-2006, their respective owners.
Deprecations should not break software. (Score:2)
Since we don't have a decent API versioning scheme, it often feels like the right thing to do is to change the namespace when you're making a change that will nontrivially break backcompat.
Amongst my other complaints:
Deprecation does not equal deletion.
(From that wikipedia place, but I swear I didn't edit it just to make a point. The emphasis is mine, though [wikipedia.org])Adam's gone and backed out the removal of the feature, so this is temporarily a non-issue. But when you deprecate an API, it's _supposed to keep working_ during a transition period.
If the feature does end up getting redeleted, having Module::Install just stop working if there's an auto_install directive in a Makefile.PL seems like a really bad choice that's likely to hurt the less savvy users that auto_install was there to help in the first place. If the intent is that the feature is both broken and unneeded if the end-user is following best practices, make M::I smart enough to say "Hey! The author of this Makefile.PL did something that's no longer supported. I've dealt with it for you" rather than:
sub auto_install { die 'Module::Install::AutoInstall often breaks CPAN and has been deprecated'; }That's the kind of thing that reenforces the unfortunate "CPAN is an unusable nightmare" meme.Reply to This
Re: (Score:1)
As Matt pointed out though, nobody reads the documentation.
Further, please let me be clear to everyone that Module::Install is NOT like other parts of the toolchain.
If I remove auto_install from Module::Install, it DOESN'T impact end users (the people installing modules) at all.
Existing modules with auto_install in them will continue to work exactly the same and don't break. This was the entire principle behind Module::Install in the
Re: (Score:2)
As of 0.68, auto_install is part of the _recommended_ usage in my copy of Module/Install.pod
You say: "If I remove auto_install from Module::Install, it DOESN'T impact end users (the people installing modules) at all."
That's true for people installing from CPAN, but it's plenty common for people to check things out of subversion repositories or otherwise end up with a Makefile.PL that uses Module::Install and end up regenerating inc, but yes, I acknowledge that this