Dan Korostelev wrote:
Log message for revision 96156: Please, don't just remove things that could be used in users code.
Changed: U zope.app.component/trunk/CHANGES.txt U zope.app.component/trunk/src/zope/app/component/metadirectives.py
-=- Modified: zope.app.component/trunk/CHANGES.txt =================================================================== --- zope.app.component/trunk/CHANGES.txt 2009-02-05 18:07:51 UTC (rev 96155) +++ zope.app.component/trunk/CHANGES.txt 2009-02-05 18:22:19 UTC (rev 96156) @@ -5,7 +5,9 @@ 3.6.1 (unreleased) ------------------
-- ... +- Make ``class`` directive schemas importable from old location, + raising a deprecation warning. It was moved in the previous release, + but some custom directives could possibly use its schemas.
Out of curiosity, *was* it used by custom directives that you know of? A more philosophical question: are the interfaces used to implement a directive part of a public API that is reusable or not? When we moved the directive implementation I arbitrary made the assumption that it'd be fine to just move them wholesale, but you clearly don't agree. Besides the interfaces, should the implementation also have backwards compatibility imports? I guess sometimes reuse by interface subclassing does happen in directive implementation, but of course we could declare that such reuse is only intra-package. In my mind, it's also less risky to move a directive implementation even if it is reused, as the amount of external reuse is likely rare and is less likely to be in end-user code. The developers of the code layered on top of the directive definition would therefore be quite capable of fixing any breakage quickly. But of course placing a few imports for backwards compatibility is not a lot of work and may be the easiest way out of this set of questions. :) Regards, Martijn