Neckar Zope 3 sprint - summary


Tue 11 October 2005 By nuxeo

I went to the
Neckar Sprint
last week in Tubingen,
Germany.

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.

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.)


Category: Product & Development