On Sat, Jun 28, 2003 at 10:13:06PM +0100, Fergal Daly wrote:
> On Saturday 28 June 2003 02:51, Michael G Schwern wrote:
> > When I merged Test::Simple with Test::More I left a Test-More tarball lying
> > around containing a Makefile.PL which simply died saying "download
> > Test-Simple instead".
>
> That's OK for a merge (or you could have an empty archive with a dependency on
> Test::Simple so CPAN.pm can be happy.)
>
> I don't think dieing is a good idea for a rename or a deprecation. It's
> probably a good thing to die when a developer gets your module but if a user
> gets it to satisfy a dependency then it shouldn't fail. Is there a way to
> know if Makefile.PL is being run by CPAN.pm?
There's no need, CPAN.pm won't pick up the old named module. All it
contains is a Makefile.PL and a MANIFEST. Perhaps a README. There is no
.pm files for the CPAN indexer to pick up on. search.cpan.org shouldn't
even pick up on it. The only way a user could find that tarball is to
manually download it from CPAN. Its just a hollow dummy. There's no other
reason someone would download the dummy.
To make it clear, what you would do is release a Test-Warn-None-0.05.tar.gz
which contained a Makefile.PL which died with a message about having been
renamed to Test::NoWarnings and to download Test-NoWarnings instead. That's
for the folks still downloading modules by hand.
For those using the CPAN shell or modules having dependencies on the old
name (Test::Warn::None), Test-NoWarnings could contain all the normal stuff
plus a Test::Warn::None which is a thin wrapper around Test::NoWarnings so
backwards compat is maintained. It also means that CPAN will index this
tarball as having Test::Warn::None in it so when the CPAN shell tries to
install Test::Warn::None it downloads Test-NoWarnings.
Optionally, you could put a warning about using Test::NoWarnings when
Test::Warn::None starts up.
The Test::Warn::None wrapper might look like this:
package Test::Warn::None;
use Test::NoWarnings;
@ISA = qw(Test::NoWarnings);
sub import {
shift;
@_ = ('Test::NoWarnings', @_);
goto Test::NoWarnings->can('import');
}
1;
Simply fooling Test::NoWarnings->import into thinking it was called.
--
It's Crack Cocaine time!