Re: Renaming modules (was Re: [ANNOUNCE] Test::Warn::None 0.02)

2003-06-29 Thread Michael G Schwern
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!


Re: Renaming modules (was Re: [ANNOUNCE] Test::Warn::None 0.02)

2003-06-28 Thread Paul Johnson
On Sat, Jun 28, 2003 at 10:13:06PM +0100, Fergal Daly wrote:

> Is there a way to 
> know if Makefile.PL is being run by CPAN.pm?

Not as far as I know, but Jos tells me that there should be some way in
the next version of CPANPLUS.

My personal itch that this would scratch is to be able to specify
prerequisites if they can be easily satisfied, and just to output a
message if the installation is manual and the prerequisites are not
essential.  (Yes, I know that doesn't make sense.)

-- 
Paul Johnson - [EMAIL PROTECTED]
http://www.pjcj.net