[Zope-dev] Deprecate ITerms in zope.app.form? [Re: zope.browser?]
Martijn Faassen
faassen at startifact.com
Thu Dec 18 10:27:23 EST 2008
Hey,
Tres Seaver wrote:
[snip]
> I take cleaning up deprecation warnings seriously: I want all tests for
> my packages, for instance, to run without emitting *any* of them.
> Deprecation warnings have a non-trivial downside: consider the case
> wher one of *my* downstream users updates Roger's pacakge (e.g., to
> pick up a critcial security fix, or something). My package has
> dependencies which allow this (because I don't put hard pins in library
> packages), but now *my* package now emits warnings, where it didn't before.
You should, and likely are, shipping your package with a recommended
list of versions. If your user upgrades beyond that recommended list of
versions, then that user knows that any problems that may occur are his
own responsibility. A deprecation warning is hardly a disastrous thing
to swallow if you're fixing a security bug.
I'd also argue that deprecation warnings and security bug fixes should
generally not be introduced in the same release, as deprecation should
be considered to be a feature change.
Anyway, the problem of your downstream users is worse. If you depend on
x.y, and Roger makes it so that x.y doesn't depend on a.b anymore, and
your downstream user updates to Roger's version of x.y, they will
suddenly have breaking *imports* as they happened to be relying on
things in a.b which just happened to get pulled in too.
[snip]
> If we just leave the name importable from the old location, what is
> hurt? The major downside is that people won't learn about the new
> location.
Yes, the hurt is that we aren't actually signalling the deprecation of
the old location. If the goal is to reduce the dependencies between
packages, it's pretty nice if people can follow this in their own
packages so that *they* can benefit from less useless dependencies being
pulled in as well.
> I consider this to be less an issue than the two problems I
> outline above. Even if the "pending warning" bit works, I still have to
> add the BBB cruft to my code to future-proof it.
Why? Your downstream users won't see any warnings.
Regards,
Martijn
More information about the Zope-Dev
mailing list