[Zope-dev] zope.app.form and zope.formlib

Martijn Faassen faassen at startifact.com
Wed Dec 30 13:06:12 EST 2009


Hi there,

I've been trying to clean up the zope.formlib/zope.app.form situation. 
This is a report about my lack of progress so far, just so I have 
something to show for it. :)

zope.app.form is in practice in use as a widget library for 
zope.formlib. It however also contains code that supports the original 
Zope 3 form system (using ZCML directives).

My first response was to try to move zope.app.form's widgets into 
zope.formlib. zope.app.form can then depend on zope.formlib for its 
widgets (for backwards compatibility), and zope.formlib would stop 
depending on zope.app.form. We can leave the old Zope 3 form system behind.

I started to try this but was daunted by having to port a huge amount of 
code from zope.app.form to zope.formlib, including test code.

Instead, I tried to create a zope.formlibwidget which which would 
contain only the widgets of zope.app.form. zope.app.form would then 
depend on it for backwards compatibility, and zope.formlib would only 
need to depend on zope.formlibwidget.

Unfortunately this bounced off the fact that zope.app.form's functional 
widget tests (there are many, we want to retain them) depend on the old 
Zope 3 form support in order to do their tests. The old Zope 3 form 
support I was trying to get rid of in the first place.

To do sane functional tests I need a form library. I can't use 
zope.formlib in zope.formlibwidget as that would create a circular 
dependency (at least for tests, but that's ugly enough).

So my conclusion is to move zope.app.form's widget stuff into 
zope.formlib, so that the functional tests can be ported to use 
zope.formlib instead of the old Zope 3 form system.

So I'm back to my original approach again...

Regards,

Martijn



More information about the Zope-Dev mailing list