[Framework-Team] first comments on plip112-xml-import-export
Raphael Ritz
r.ritz at biologie.hu-berlin.de
Wed Sep 20 11:10:33 UTC 2006
Hi framework team, hi Jens,
here's my next review. This is for plip-112 which is about
XML-based import/export of Plone content:
My test set-up: Python 2.4.3, Zope 2.10.0b2 release on Linux (FC5)
First impression: still a lot to be done
Issues noticed so far:
- there is a hard dependency on elementtree
- needed fixing of a few currently deprecated things in order
to get it up and running on Zope 2.10
- some of these fixes I couldn't commit because the code
for XMLForest still lives in
https://svn.biblhertz.it/repos/public/XMLForest
where I cannot commit. (@Authors (Jens?): please make the
EXTERNALS explicit in the bundle as this would have shown
this right away and move the code to one of our repositories
if possible)
- I was unable to figure out how this integrates with the
new 'content_setup' from GenericSetup.
- I was unable to find any reasonable integration into the
Plone UI (it puts stuff there that you don't want - the
demo/testing content types; the configlet only shows the
site content instead of displaying the upload/download
form which I could only invoke manually).
- the upload/download form should do a better job in explaining
the options offered.
- I don't know whether I ever succeeded in downloading any
content from a site. Visuell inspection of the generated XML
lets me think I didn't.
- Probably due to the issue above I was never able to upload anything
into a new target site from what I downloaded before from another
source site.
- Maybe this is due to (quote from XMLForest.README.txt):
The most important command will be::
tool.export_tree(root_object, directory)
(not implemented yet)
(end of quote). Note the "will be" and "not implemented yet" comment.
The moment I found this, I stopped trying.
- Maybe it's just me but I was surprized to see::
bin/zopectl test -m XMLForest
resulting in::
[..]
Running unit tests:
Running:
...........=================================================
=====================
ZopeTestCase Interactive Console
(c) BlueDynamics Alliance, Austria - 2005
Note: You have the same locals available as in your test-case.
>>>
putting me into an interactive Python shell resulting in pdb
debugging sessions - which after a couple of quits resulted in::
Ran 11 tests with 1 failures and 0 errors in ...
Test Coverage
XMLForest (which is the main new component in the bundle) does
have a reasonable doc test coverage but unfortunateley it seems
they aren't up to date for running on Zope 2.10 and its testing
framework.
Code Base
The implementation is still very much "old-style" Archetypes based.
No real use of Zope 3's CA. While there is not much to say against
that in principle, I see at least two issues where this becomes a
show-stopper from my POV:
1. non-at-based but rather Zope 3 schema based content types
2. custom (AT) fields for custom data types
From my current understanding of the code, these points are
neither supported nor is there any way to adapt the framework
to support them. At the very least, the code should be refactored
such that it becomes possible to extend and adapt Marshall/XMLForest
to handle the above from 3rd party code (in the end that's what the
CA is about).
Finally, it seems like a lot of the code base was generated using
ArchGenXML which resulted in a lot of spurious code that could
safely be removed.
Interim Summary
It could be just me being stupid and therefore failing misserably
but taking me as represenative for the average Plone user I'm
sorry to say that in the current form I have to recommend to not
consider this plip any futher unless there will be *substantial*
improvements in terms of Plone (UI) integration and documentation
about its TTW/TTP usage provided it works at all (on Zope 2.10) in
the first place.
Furthermore, considering the refactoring wrt CA adoption that at
least I would like to see, chances for inclusion are even lower
unless someone steps up and champions this. This is sad as I
know this plip is about a much wanted feature and it seems to me
it's not that far from being a really great addition. (If I could
afford to put more time into this myself I would but right now I
just cannot.)
Raphael
More information about the Framework-Team
mailing list