durusmail: quixote-users: RELEASED: Quixote 2.0a2
RELEASED: Quixote 2.0a2
2004-11-23
2004-11-23
2004-11-23
2004-11-23
2004-11-24
2004-11-24
2004-11-25
2004-11-24
Re: R: [Quixote-users] RELEASED: Quixote 2.0a2
2004-11-25
2004-11-28
2004-11-28
2004-11-28
2004-11-29
2004-11-23
RELEASED: Quixote 2.0a2
Neil Schemenauer
2004-11-23
Here's the list of changes:

  * Refactor the Publisher object.  The new design gives "namespaces" more
    control over traversal.  Packages are no longer imported automatically.
    By default, namespaces must be 'Directory' instances.  The _q_access
    hook is gone.  The 'namespace_stack' attribute is also gone.

  * Provide a Publisher object that works more like Quixote 1 (available in
    the 'publish1' module).  Also, restore the original form framework with
    the name 'form1'.

  * Stop passing HTTPRequest to exported functions and _q_lookup().  You
    will need to use get_request() to access it.  Also, require that
    _q_index be explicitly exported.

  * Remove the HTTPRequest.redirect() method.

  * Split error log and access log functionality into a separate class.
    Try to simplify site configuration.  Configuration options can now be
    passed as keyword args to the Publisher class.  The setup_logs() and
    shutdown_logs() methods are gone.  Logs are now opened when the publisher
    is initialized.

  * Support $-substitution in templates, as in Python 2.4's string.Template
    class.  $-substitution is applied to every '$'-containing literal in a
    template.  Templates written before this change, if they contain literals
    containing '$', *must* be converted by replacing each '$' with '$$'.

  * Remove support for old style templates and support for versions of
    Python older than 2.3.

  * Use a common pattern for interfacing with HTTP servers.  Simplify
    and cleanup the Medusa and Twisted code.  Add a SCGI server module
    (it makes more sense to be part of Quixote rather than in the "scgi"
    package).  Add a simple standalone HTTP server.

  * Rename HTTPRequest.get_form_var() to get_field().  That matches the
    terminology used by RFCs.

  * Add HTTPResponse.set_expires() method.

  * Add HTTPRequest.get_query() method.  Use it instead of the QUERY_STRING
    environment variable.  Add HTTPRequest.get_status_code().

  * Compile .ptl files to .pyc files.  Also, remove 'htmltext' and
    'TemplateIO' from the globals of .ptl modules.

  * Move page compression functionality to http_response module.

  * Add a 'content_type' attribute to HTTPResponse.  Refactor response
    to make it harder to screw up the character set of the response.

  * Add quixote.util.get_directory_path() for obtaining the list of
    _q_traversed() Directories (essentially a replacement for
    'namespace_stack')

  * Move missing trailing slash detection and action to Directory.__call__()
    and remove FIX_TRAILING_SLASH configuration option.

  * Remove RUN_ONCE configuration variable and 'exit_now' attribute of
    publisher.

  * Stop generating 'Status' header for servers that don't need it.  Add
    'include_status' keyword to HTTPResponse.write().

  * Overhaul the demo.


We still have a lot of work to do before a stable release.  The
documentation needs to be updated.  The mod_python publisher is
broken.  The Quixote 1 style publisher probably needs some more
work.

There are some major changes in this release.  Upgrading from
Quixote 1 will be difficult.  Don't feel that you must to upgrade.
I will make bugfix releases of Quixote 1 as necessary.

  Neil

reply