Hi all --
before Neil checks in his big scary backwards-incompatible "markup
string" patch, I want to get the current stable code out the door as
Quixote 0.5.1. It's almost ready; just a few i's to dot and t's to
cross. If you would like to give the almost-releasable code a spin, you
can get it via CVS:
cvs -d :pserver:anon@cvs.mems-exchange.org:/home/cvs co quixote
Or see
http://www.mems-exchange.org/software/quixote/cvs.html
Here's the provisional changelog for this release:
0.5.1 (xx Oct 2002):
* (incompatible change for anyone doing HTTP upload with Quixote)
Improved support for HTTP upload requests: any HTTP request with
a Content-Type of "multipart/form-data" -- which is generally only
used for uploads -- is now represented by HTTPUploadRequest, a
subclass of HTTPRequest, and the uploaded files themselves are
represented by Upload objects. See doc/upload.txt for details.
* (possible incompatible changes for anyone subclassing Publisher)
Various rearrangements and refactoring in the Publisher class.
Added create_request() method, which takes responsibility for
creating the HTTPRequest (or HTTPUploadRequest) object away
from parse_request(). As a consequence, the signature of
parse_request() has changed. Added process_request() method.
Changed publish() so it catches exceptions coming from either
parse_request() or process_request(). Consult the source code
(publish.py) for details.
* A new subpackage, quixote.server, is intended for code that
publishes a Quixote application through HTTP, making it possible
to run Quixote applications without having to configure Apache or
some other full-blown Web server. Right now there's only an
implementation on top of Medusa; contributions of support for
Python's BaseHTTPServer, Twisted, or other frameworks would be
welcome.
* Modified SessionManager.maintain_session() so it explicitly removes
a session if that session used to have useful info (ie. exists in
the session manager), but no longer does (patch by Jon Corbet).
* Make the PTL compiler a bit smarter about recognizing "template"
lines; PTL code should now be able to use 'template' as an
identifier, which is handy when converting existing Python code
to PTL.
* Replaced HTTPRequest.redirect() with a cleaner, more general
version supplied by Andreas Kostyrka .
Redirects to fully relative URLs (no leading slash) now work.
* Added support for putting bits of JavaScript into HTML form
documents: added HTTPResponse.add_javascript() to collect snippts
of JavaScript code, and Form._render_javascript() to emit them
as part of the HTML document.
* Added global convenience functions get_path() and redirect().
* Change Publisher so it never modifies SCRIPT_NAME or PATH_INFO.
* Fixed bug in quixote.sendmail._add_recip_headers(): it crashed
if passed an empty list.
--
Greg Ward - software developer gward@mems-exchange.org
MEMS Exchange http://www.mems-exchange.org