How to deprecate a module ?

How to deprecate a module ?

am 21.11.2006 10:01:54 von Sisyphus

Hi,
I've just moved my Inline::C2XS module to InlineX::C2XS (after a bit of
discussion on the Inline mailing list) as it should never have been in the
"Inline" namespace to begin with.
So now I need to "deprecate" Inline::C2XS - so that those who find it on
CPAN will immediately recognise that it has been deprecated (and replaced by
InlineX::C2XS).

What's the procedure I need to follow ? I couldn't see anything on the PAUSE
menu that looked promising.

Cheers,
Rob

--
To reply by email send to optusnet.com.au instead of nomail.afraid.org

Re: How to deprecate a module ?

am 21.11.2006 12:23:42 von Dominique Dumont

"Sisyphus" writes:

> What's the procedure I need to follow ? I couldn't see anything on
> the PAUSE menu that looked promising.

I'd suggest the following:
- upload InlineX::C2XS to CPAN
- upload a new version of deprecated Inline::C2XS which will complain
loudly (warn or syslog) when used. It will also tell the user to use
the new InlineX::C2XS module.
- wait 2 or 3 months
- upload a new version of deprecated Inline::C2XS which will complain
loudly (warn or syslog) and *die* when used.
- wait 2 or 3 months
- with PAUSE edit Inline::C2XS metadata . Change "lifecycle" parameter
to "delete from database"
- remove your Inline::C2XS module files from your PAUSE account



HTH

--
Dominique Dumont
"Delivering successful solutions requires giving people what they
need, not what they want." Kurt Bittner

Re: How to deprecate a module ?

am 21.11.2006 19:20:33 von Ilya Zakharevich

[A complimentary Cc of this posting was sent to
Dominique Dumont
], who wrote in article :
> "Sisyphus" writes:
>
> > What's the procedure I need to follow ? I couldn't see anything on
> > the PAUSE menu that looked promising.
>
> I'd suggest the following:
> - upload InlineX::C2XS to CPAN
> - upload a new version of deprecated Inline::C2XS which will complain
> loudly (warn or syslog) when used. It will also tell the user to use
> the new InlineX::C2XS module.
> - wait 2 or 3 months

Better make it 3 or 4 years.

Hope this helps,
Ilya

Re: How to deprecate a module ?

am 22.11.2006 13:15:26 von rvtol+news

Sisyphus schreef:

> I've just moved my Inline::C2XS module to InlineX::C2XS (after a bit
> of discussion on the Inline mailing list) as it should never have
> been in the "Inline" namespace to begin with.
> So now I need to "deprecate" Inline::C2XS - so that those who find it
> on CPAN will immediately recognise that it has been deprecated (and
> replaced by InlineX::C2XS).
>
> What's the procedure I need to follow ? I couldn't see anything on
> the PAUSE menu that looked promising.

Can't you make a new version (with the old name) a documentation-only
module? In there, refer to the new name, and to la(te)st working version
with the old name.

--
Affijn, Ruud

"Gewoon is een tijger."

Re: How to deprecate a module ?

am 23.11.2006 11:24:18 von Dominique Dumont

Ilya Zakharevich writes:

>> I'd suggest the following:
>> - upload InlineX::C2XS to CPAN
>> - upload a new version of deprecated Inline::C2XS which will complain
>> loudly (warn or syslog) when used. It will also tell the user to use
>> the new InlineX::C2XS module.
>> - wait 2 or 3 months
>
> Better make it 3 or 4 years.

This may be overkill as Inline::C2XS is only 6 months old.

HTH

--
Dominique Dumont
"Delivering successful solutions requires giving people what they
need, not what they want." Kurt Bittner

Re: How to deprecate a module ?

am 24.11.2006 02:50:09 von Ilya Zakharevich

[A complimentary Cc of this posting was sent to
Dominique Dumont
], who wrote in article :
> Ilya Zakharevich writes:
>
> >> I'd suggest the following:
> >> - upload InlineX::C2XS to CPAN
> >> - upload a new version of deprecated Inline::C2XS which will complain
> >> loudly (warn or syslog) when used. It will also tell the user to use
> >> the new InlineX::C2XS module.
> >> - wait 2 or 3 months
> >
> > Better make it 3 or 4 years.
>
> This may be overkill as Inline::C2XS is only 6 months old.

Hard to tell: The reference point should be not the lifecycle of the
module, but the lifecycle of whatever uses the module...

Anyway, I do not remember situations where a deprecation cycle of less
than 3 years is beneficial; but my memory may be selective...

For best results, there should be a way to mark things as "obsolete";
such modules should have two properties:

a) if something depends on it, the dependency fetcher would fetch it
OK (with some warnings?);

b) it is not indexed "for human consumption".

On the other hand, a warning is too weak a deterrent for people to
update dependencies in "just a few years". So short of disabling the
old module, there is no way to FORCE things to update.

Unless something like

my $n = 'PERLMOD_USE_DEPRECATED_INLINE__C2XS';
die < ###
### The module ... have been renamed long ago.
### Update your dependencies to ... .
###
### To temporarily re-enable this obsolete name, setenv $n to TRUE
###
# code to inherit from the new name:

Ilya