Richard Jones' Log: Roundup gets a WSGI interface
As an exercise for myself I've WSGI'fied the web interface for Roundup in the latest release.
It required some changes to the way the web interface works. Up until WSGI it was sending responses by first sending an HTTP response code and then sending some HTTP headers (sometimes headers were sent in various places) until finally the headers were finished and then the body was written.
WSGI requires that you have your response code and headers all figured out when you call start_response. This wasn't a terribly big problem to solve - I did it all during two train trips ;)
So now Roundup has a BaseHTTPServer interface ("roundup-server"), a regular CGI interface, a mod_python interface, a Zope interface and now a WSGI interface which, given support code, can do all but the Zope interface and then some :)
One of the important goals of Roundup is to have no required external dependencies.
Excellent news. I have been using a hacked version of Roundup's cgi script to provide wsgi support for the trackers we use in-house. But as this post says it didn't work with Roundups internal authentication. So now can ditch it and use something created by the master.
Making Zope consume WSGI wouldn't be too terribly difficult, and if I remember correctly, Ian Bicking is already doing it. WSGI all the way!
If you'd used the WebStack API (yes, a little promotional, I know), Roundup could have run on all of the above already. Perhaps that's an opportunity to strip the code base a little. ;-)