CubicWeb Sprint report for the "WSGI" team
Cubicweb has had WSGI support for several years, but this support was incomplete.
The WSGI team was in charge of turning WSGI support into a full featured backend that could replace Twisted in real production scenarii.
Because we only had first class support for Twisted, some of the CubicWeb logic related to HTTP handling was implemented on the twisted side with twisted concepts. Our first task was to move this logic in CubicWeb itself. The handling of HTTP status in our response was improved in the process.
Our second task was to focus on the "non-HTTP" part of CubicWeb (because the repository also manages background tasks). The developement mode for WSGI is now able to handle and run such tasks. For this purpose we have begun a process that aims to remove server related code from the repository object.
We also Tested several WSGI middleware. One of the most promising is Firepython, integrating python logging and debugging feature with Firebug. werkzeug debugger seems neat too.
All these improvements open the road to a simple and efficient multi-process architecture in CubicWeb.