[Zope-dev] deprecating the deprecation system?

Martijn Faassen faassen at startifact.com
Thu Mar 5 11:35:01 EST 2009


Hi there,

Perhaps it's time to deprecate the deprecation system.

Why?

* I've had good experience in the Grok project with just noting changes 
that might break code in the upgrade notes for Grok and telling people 
how to fix it. Using documentation more background can be provided and 
it can become a lot more clear what to do.

* using the deprecation system requires quite a bit of effort, as we're 
adding code. Do we test deprecations? That's quite a bit of energy spent 
there that we could instead spend on documentation.

* it's a zope-specific system no other Python projects use. Now we'll 
need some of them, but do we need this one?

* we've not been very good at removing old deprecations over time.

* the deprecation system's messages have traditionally not been of a 
high quality. I recall occasions where it told me half of what to do, 
and certainly won't give me any background on what is going on.

* for moving code around we have an alternative system: a backwards 
compatibility import, documentation about what to do, and a tool part of 
the test runner which can point out indirect imports.

I therefore propose we do the following:

* look at any package which uses deprecation warnings now.

* rip out the deprecation warnings and backwards compatibility code. 
Even if it's really expiring in 2010 (I doubt we have much of this). 
When you do so and you think anyone might still using that code path, 
please make a remark in zope3docs/source/migration/34to35.rst about 
what's going on and what people are to do.

* run the compattests to see whether anything breaks. I think it's quite 
possible some deprecated code is in use by the Zope libraries themselves. :)

Thoughts?

Regards,

Martijn



More information about the Zope-Dev mailing list