Neckar Zope 3 sprint - summary
A lot of cool things were done/started there for Zope 3:
- Twisted integration
- Http publisher puggable sub-protocol
- Viewlet/portlet framework
- A static version of apidoc
- Some Zope3.org work
- Customizable container views, from the proposal here
- XML-RPC introspection integration, from the proposal
here
I guess I will decorate these points with some links when people that have worke on each tasks start to publish about it. The wiki page is definitly the place where all info will be added i guess.
I have worked on two tasks with Andreas Jung, the puggable publisher and the introspection stuff.
Http publisher pluggable sub-protocol
The main idea of this task was to change the publisher so anyone who wants to add a new publication class (to handle json for example) can do it smoothly by adding some configuration.
You needed to modify the publisher code to do so.
So we did a change based on a study of the incoming request, deciding
which publication was best fitting, with registered utilities that would link a
publication class to a couple of interfaces that represented:
- The mimetype of the request
- The method
So we had our list of Interfaces a developer could gather to provide a publication configuration. This was done here.
I spent a part of the evening finishing up the work, as Andreas went home.
Friday morning when he came back he came up with a better idea:
"why don't we just create a new directive that would let the user configure the publication picker, without having to add all those IGet, IPut, etc.. interfaces"
Yup, brilliant idea ! So we refactored everything to let the user extend the publisher by simply giving a zcml "publisher" directives and a publication class.
Look how the default publication is, it is very intuitive to extend this way.
XML-RPC Introspection
The introspection stuff was very easy to code, based on some code greping from zope.app.apidoc. So we implemented it here.
The fact that Python does not (yet) have static typing (i am saying yet because I've seen some proposal for Python 3000) was a problem for the methodSignature API, so after a discussion with the others, we came up with the conclusion that a decorator would be the best pick for this static typing.
All is explained here.
Performance regression tester
On the last day, we had a very interesting discussion with Stephan Richter about a performance regression tester. I had a first shot on this a while ago here.
He came up with the conclusion that this would be perfect if it was based on Pystone so it can work the same for all boxes. Simple and Brilliant. :)
It's still visible here, but I have reverted this commit, as we need to discuss more on this and it relies on deep structural changes, so it is more likely to become a proposal.
Conclusions
I had a great experience there, met a lot of incredible people.
I came back home with this conclusion in mind:
Zope 3 is absolutely terrific. I could literaly feel the power of it. You can do anything you want with it, as long as the design is well thaught.
But most important point: I had terrific chocolate pretzels at the Hotel, need to try to find some in Paris.
(Post originally written by Tarek Ziadé on the old Nuxeo blogs.)
Subscribe to Feed
Follow us on Twitter

