durusmail: quixote-users: Some proposed changes to Quixote
Some proposed changes to Quixote
Some proposed changes to Quixote
Greg Ward
Hi all --

[oops, meant to crosspost this to quixote-users -- sorry for the

I spent most of yesterday fiddling with Apache, FastCGI, Quixote, and
SPLAT! (a bug database I've been working on).  I think Quixote needs a
few minor changes to make it friendlier to outsiders (ie., any
application other than our virtual fab).

1) slight overhaul of the session module, specifically:
   - rename SessionCollection to SessionManager
   - rename GlobalSession to Session
   I've never much liked the name SessionCollection, and it struck
   my at some point this weekend that that class was really a
   session *manager*.  And part of my problem was that I wanted
   to disable session management.  So the name change suddenly
   seemed obvious.

2) make session management optional.  Currently, if you just drop
   the quixote.cgi supplied with Quixote into your web server's
   cgi-bin directory and try to execute it, it crashes because
   no session manager has been installed.  Well, what if I don't
   *want* session management?  I've come up with a reasonable
   way to disable sessions without mucking up publish.py too much:
   DummySessionManager and DummySession classes.  Seems to work
   for me.

I've already implemented these two; they're sitting on my hard disk at
home waiting to be uploaded to work.  The final one is a bit more

3) allow multiple Quixote processes on the same machine (to service
   multiple "root packages".  This would require getting rid of
   the quixote.config module (or at least allowing it to be
   overridden).  It would have to be replaced by a config object
   that would be passed around wherever it's needed.

   We might also want to put the guts of publish.py into
   a Publisher class, to avoid reliance on keeping state in module-
   level globals.

   I've thought a bit about how to dump config.py in favour of a config
   object, but don't have anything concrete yet.  I'm open
   to ideas!

4) don't say "root package", say "root namespace".  That opens up
   the possibility of an instance or module instead of requiring
   a full-blown package to service Quixote requests.


Greg Ward - software developer                gward@mems-exchange.org
MEMS Exchange / CNRI                           voice: +1-703-262-5376
Reston, Virginia, USA                            fax: +1-703-262-5367