[Zope-dev] [Checkins] SVN: zope.app.http/trunk/ - Replacedthedependency on zope.deprecation with BBB imports

Martijn Faassen faassen at startifact.com
Wed May 27 09:42:12 EDT 2009


Hi there,

Before we have this discussion yet again, I will record the official 
stance in the zope toolkit decisions document, and I'll quote it here:

* When code moves to a new location to import it from (in the same or
   another package), use a ``from foo import bar`` statement, with a
   ``#BBB`` comment to indicate the import is only there to support
   backwards compatibility.

   In the CHANGES.txt of a package, state that an import location got
   deprecated and where the new location is (making this a feature
   release, not a bugfix release).

   Reasons:

   * it avoid a dependency on zope.deprecation, which is quite involved
     in its implementation, using proxies.

   * A ``from .. import ..`` is immediately comprehensible to any
     Python programmer as well as tools.

   * Deprecation warnings make it hard to write a library that supports
     multiple versions of another library; a change in an indirect
     dependency can create deprecation warnings that the original
     developer does not care about.

   * We are in the process of developing a testrunner extension that
     will report on indirect imports, and a ZODB upgrade procedure.

Feel free to discuss it, either to add arguments to refine this, or to 
attempt to overthrow this decision entirely.

Regards,

Martijn



More information about the Zope-Dev mailing list