[Python-Dev] Deprecation policy (original) (raw)

Antoine Pitrou solipsis at pitrou.net
Mon Nov 28 18:37:24 CET 2011


Hi,

On Mon, 28 Nov 2011 01:30:53 -0800 Raymond Hettinger <raymond.hettinger at gmail.com> wrote:

On Oct 24, 2011, at 5:58 AM, Ezio Melotti wrote: > Hi, > our current deprecation policy is not so well defined (see e.g. [0]), and it seems to me that it's something like: > 1) deprecate something and add a DeprecationWarning; > 2) forget about it after a while; > 3) wait a few versions until someone notices it; > 4) actually remove it; > > I suggest to follow the following process: > 1) deprecate something and add a DeprecationWarning; > 2) decide how long the deprecation should last; > 3) use the deprecated-remove[1] directive to document it; > 4) add a test that fails after the update so that we remember to remove it[2]; How about we agree that actually removing things is usually bad for users. It will be best if the core devs had a strong aversion to removal.

Well, it's not like we aren't already conservative in deprecating things.

Instead, it is best to mark APIs as obsolete with a recommendation to use something else instead. There is rarely a need to actually remove support for something in the standard library. That may serve a notion of tidyness or somesuch but in reality it is a PITA for users making it more difficult to upgrade python versions and making it more difficult to use published recipes.

I agree with Xavier's answer that having recipes around which use outdated (and possibly inefficient/insecure/etc.) APIs is a nuisance.

Also, deprecated-but-not-removed APIs come at a maintenance and support cost.

Regards

Antoine.



More information about the Python-Dev mailing list