[Zope-dev] deprecating the deprecation system?

Roger Ineichen dev at projekt01.ch
Thu Mar 5 19:32:50 EST 2009


Hi Martijn

> Betreff: [Zope-dev] deprecating the deprecation system?
> 
> 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.

It is always good to have such a documentation. But what does
this have to do with removing a deprecation system?

> * 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.

Yes, a deprecation system requires a lot of effort but that
doesn't mean that the deprecation system is bad or good.
I personaly think it's harder for me to write a good english
documentation in the same time. But that's probably because 
I never learned english.

> * 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 have many things in zope which others don't use. That's no
mesuring base for good or bad

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

we can do it better

> * 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.

a unclear message is even better then no message

> * 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. :)

I'm a little bit skeptic about this proposal. And I think no reason 
you listed does really explain why the deprecation system is bad.

The only reason to use a deprecation system is to ensure
that there is a deprecation period.

I think the (real) reason why we can't use a deprecation system
is that we don't like to support a deprecation period anymore
because we like to evolve our package in a incompatible way
now and not later.
This makes our deprecation system useless and a migration path
document is the only solution to handle that.

Any other reason not using a deprecation system is just based
on to less available time to support it or lazyness.

btw,
Right now it's very unclear how we identify versions like 3.4 / 3.5
What does that mean since packages have it's own versions 
e.g. 3.7.5 and are release within 3.4.

How do you identify the zope version (3.4/3.5) of such a package?

> Thoughts?

+/- 0

I let me surprise, let's try something new. We can still
fallback to a deprecation system if everything else fails.

Regards
Roger Ineichen

> Regards,
> 
> Martijn
> 
> _______________________________________________
> Zope-Dev maillist  -  Zope-Dev at zope.org
> http://mail.zope.org/mailman/listinfo/zope-dev
> **  No cross posts or HTML encoding!  ** (Related lists -  
> http://mail.zope.org/mailman/listinfo/zope-announce
>  http://mail.zope.org/mailman/listinfo/zope )
> 



More information about the Zope-Dev mailing list