Packages such as plone.supermodel, plone.autoform and plone.directives (and what else) provide useful functionality.
But having four different packages with different, partially overlapping configuration options (and some requiring adding a base class to schema), makes building dexterity content potentially confusing and error-prone.
Are there any plans to improve the situation? What could be done?
That one is deprecated. All relevant was merged already into plone.autoform and plone supermodel.
If it comes to widgets and finally z3cform additional imports are needed. I agree this is overall not very comfortable....
First, packages could get merged:
plone.behavior could be merged in plone.dexterity.
plone.z3cform could be merged with plone.app.z3cform (licence problem!)
more possible.
We could make a convenience meta-package to import from. Archetypes has/had atapi and this was very convenient.
A plone.app.dxapi could import all those commonly needed things (but does not provide own features). All Addons and even plone core code like plone.app.contenttypes could import then from there.
Thus it would be easier to refactor things below w/o breaking addons.
Archetypes has/had atapi and this was very convenient.
A plone.app.dxapi could import all those commonly needed things
-1. Back in the day, atapi was one of the most-hated modules for me, because of the extra indirection and obfuscation. Instead of being able to understand the package structure by reading the import statements in any module, you'd have to explicitly look stuff up via atapi as an extra step.
LOL yes I do. That's actually a well-designed, tested and documented API. I seldom feel the need to read more than the plone.api implementation code. Quite unlike atapi which was just a grab-bag of imports where you always needed to hunt further to get a grip on what's really going on.
@jensens so are all the plone.directives.* packages deprecated? What's the proper way of marking them as such? Unless otherwise directed, I will go and add a note to their READMEs to indicate that.