[Python-Dev] When to remove deprecated stuff

Petri Lehtinen petri at digip.org
Fri Aug 23 07:38:55 CEST 2013


R. David Murray wrote:
> > So you're still using features deprecated three releases ago, you haven't checked for DeprecationWarnings and it's Django making your life difficult?
> > 
> > Why not check for the deprecation warnings?
> 
> Doing so makes very little difference.
> 
> This is my opinion (others obviously differ):
> 
> Putting in one big chunk of effort at a major release boundary is easier
> to schedule than putting in a chunk of effort on *every* feature
> release.  More importantly, having it happen only at the major release
> boundary means there's only one hard deadline every ten-ish years, rather
> than a hard deadline every 1.5 years.
> 
> Expecting things to break when you switch to the new feature release
> makes one view feature releases with dread rather than excitement.
> 
> This applies whether or not one is testing with deprecation warnings on.
> Yes, there's a little less pressure if you are making the fixes on
> the deprecation release boundary, because you can always ship the
> code anyway if it is winds up being too big of a bear, so you have more
> scheduling flexibility.   But you still face the *psychological* hurdle of
> "feature release upgrade...will need to fix the all the things they've
> deprecated...let's put that off".  Especially since what we are talking
> about here is the *big* cruft, and thus more likely to be a pain to fix.

These are my thoughts exactly. Maybe I exaggerated a bit about Django.
I was slightly unaware of the deprecation policy when Django 1.3 came
out (IIRC it was the first release that actually removed deprecated
stuff after 1.0). Nowadays I read release notes carefully and do
what's needed, and nothing has broken badly ever since.

What's really bothering me is that I have to change something in my
code every time I upgrade Django. So as David said, it's more like
"sigh, a new feature release again" than "yay, new cool features!". Or
actually, it's a combination of both because I really want the new
features.

Petri


More information about the Python-Dev mailing list