0.9.33 (2008-12-09):
  - Add error handling to the integration between the old flattener
    and the new flattener so that if the new flattener fails with an
    exception or a Failure the error is propagated properly to the old
    flattener which invoked it.
  - Changed nit so that it doesn't use private `twistd` APIs and
    instead just sets up a server and runs the reactor.  This makes
    nit work with all versions of Twisted supported by Nevow.
  - Changed Nevow's setup.py to use setuptools if setuptools is
    available.  This has the user-facing consequence of installing
    Nevow as an egg if setuptools is available at installation time
    and of making Nevow installable using the `easy_install´ tool.
  - TabbedPane naively set DOM attributes, making it unusable in
    Internet Explorer 6 and 7.  Introduced a reliable method for
    setting DOM node attributes, with name mangling, to address the
    issue.

0.9.32 (2008-08-12):
  - A resource wrapper for on-the-fly gzip compression has been added.
  - A twistd plugin, 'athena-widget', is now available for serving
    single Athena widgets.
  - Basic Athena support for Safari added.
  - Added file name, line number, and column number information to
    slots and tags parsed from XML files in order to make debugging
    template/renderer interactions simpler.
  - A context-free flattener has been added. Fragment and its
    subclasses are now deprecated in favor of Element.
  - Javascript classes derived from the tabbedpane class can now
    override how tab selection is handled.

0.9.31 (2008-02-06):
  - Fixed Guard's request parameter save/restore feature to not
    clobber request state after login succeeds when a session has
    already been negotiated.
  - Added a hook to nevow.guard.SessionWrapper which allows the
    domain parameter of the session cookie to be specified.

0.9.30 (2008-01-16):
  - Change DeferredSerializer so that it passes failures from the
    Deferred being serialized on to the Deferred returned by the
    flattening function.  Without this behavior, the Deferred
    returned by the flattening function is never fired when a
    Deferred which fails is serialized.

0.9.29 (2008-01-02):
  - Prevent NevowSite.handleSegment from raising IndexError in certain
    situations.
  - Deprecated wsgi and zomne modules.

0.9.28 (2007-12-10):
  - Added two APIs to Athena, one for creating the string used as the id
    attribute of the top node of a widget and one for creating the string
    used as the id attribute of a node which had an id attribute in the
    widget's template document.

0.9.27 (2007-11-27):
  - Unicode URLs now supported.

0.9.26 (2007-11-02):
  - url.URL.path now correctly escapes segments in the string it
    evaluates to.
  - inevow.IAthenaTransportable added, along with support for
    serialization of custom types for server-to-client Athena
    messages.
  - Global client-side behaviour is now customizable via a client
    PageWidget class.

0.9.25 (2007-10-16):
  - The Athena message queue implementation has been improved, fixing problems
    masked by bugs in Firebug/YSlow.

0.9.24 (2007-09-05):
  - ESC key no longer disconnects Athena connections.
  - Fixed a bug where URLs with quote characters will cause the Athena
     connection to be lost.
  - Fixed 'twistd athena-widget' to create a fresh widget instance for each
    hit.

0.9.23 (2007-08-01):
  - Fixed install script to include all JavaScript files.

0.9.22 (2007-07-06):
  - Mock DOM implementation for easier browser testing added.
  - JavaScript source files are now read using universal newlines mode.
  - athena.AutoJSPackage now excludes dotfiles.
  - url.URL now properly subclassable.
  - User-agent parsing added to Athena, to detect known-unsupported browsers.

0.9.21 (2007-06-06):
  - Debug logging messages from the reliable message delivery queue
    disabled.

0.9.20 (2007-05-24):
  - Athena now no longer holds more than one idle transport open to
    the browser.

0.9.19 (2007-04-27):
  - Changed the styling of the progressbar to work on IE6.
  - Athena.Widget.detach added, to allow widgets to cleanly be removed
    from a page.
  - Athena.Widget.callLater added, a wrapper around setTimeout and
    clearTimeout.
  - 'athena-widget' twistd command added, for starting a server which
    serves a single LiveFragment or LiveElement.

0.9.18 (2007-02-23):
  - Athena 'connection lost' notification now styleable via the
    'nevow-connection-lost' CSS class.
  - The 'runjstests' script has been removed, now that JS tests can be
    run with trial.

0.9.17 (2006-12-08):
  - More efficient JSON string parsing.
  - Give FakeRequests a default status code of OK.  Accept all of
    FakeRequest.__init__'s arguments in the __init__ of
    AccumulatingFakeRequest.

0.9.16 (2006-11-17):
  - Updated nit to work with Twisted trunk.
  - Athena module import caching has been fixed.

0.9.15 (2006-11-08):
  - Changed _LiveMixin rendering to be idempotent to support the case
    where a transport hiccup causes a LiveFragment or LiveElement to
    be sent to the browser multiple times.
  - Improvements to the tests.

0.9.14 (2006-10-31):
  - Support code for running non-browser javascript tests has been added.
  - Added a workaround for nodeById on widgets not yet added to the document in
    IE.
  - Athena will now invoke the nodeInserted method (if it exists) on a widget
    that it instantiates statically.
  - ID rewriting, similar to existing rewriting support for 'id' attributes,
    has been added in 'for' and 'headers' attributes of 'label' and 'td'/'th'
    elements, respectively.

0.9.13 (2006-10-21):
  - Adjust non-selected panes in tabbedpane to be further out of the viewport.
  - Convert to using the Javascript module plugin system for Nevow-provided
    modules.

0.9.12 (2006-10-17):
  - Added id rewriting for LiveElement and LiveFragment, such that id
    attributes in a widget template are rewritten so that they are unique to
    the widget instance. A client-side API, Nevow.Athena.Widget.nodeById(),
    is provided to allow location of these nodes.

0.9.11 (2006-10-10):
  - Fixed dynamic widget instantiation in IE.
  - Added support for correctly quoting the values of slots which are used as
    attributes.

0.9.10 (2006-10-05):
  - Minor update to nevow.testutil.

0.9.9 (2006-09-26):
  - Several nit changes, including the addition of the "check" method to
    Failure, and the addition of an "assertFailure" method.
  - The ability to pass Python exceptions to Javascript has been added to
    Athena.
  - Dynamic module import has been added for the cases where it is necessary
    to dynamically add a widget to an existing page.

0.9.8 (2009-09-20):
  - A bug in nit that caused it to fail if there were too many tests in a
    test case, and swallow failures in some cases, has been fixed.
  - Widgets can no longer be added to a page after render time using
    Divmod.Runtime.Platform.{set,append}NodeContent.  Instead, they must be
    added using Nevow.Athena.Widget.addChildWidgetFromWidgetInfo.

0.9.7 (2009-09-12):
  - Automatic Athena event handler registration is fixed for all supported browsers
    and is no longer document-sensitive (ie, it works inside tables now).
  - Nit has gained a new assertion method, assertIn.

0.9.6 (2008-08-30):
  - Fixed a bug in the IE implementation of the runtime.js node fetching
    functions.

0.9.5 (2006-08-22):
  - Instance attributes can now be exposed to Athena with nevow.utils.Expose
    and Expose.exposedMethodNames() no longer returns unexposed names.

0.9.4 (2006-08-14):
  - Added test method discovery to nit test cases, so multiple test methods
    may be put in a single test case.
  - use XPath for certain DOM traversals when available. This yields
    significant speedups on Opera.
  - Made Divmod.Runtime.Platform.getAttribute deal with IE attribute
    name-mangling properly.
  - Javascript logging is now done in Firebug 0.4 style rather than 0.3.
  - Some cases where Deferred-returning render methods raised
    exceptions or buried failures were fixed.
  - Removed MochiKit. The pieces Nevow depends on have been moved to
    Divmod.Base in nevow/base.js.
  - Various doc fixes.

0.9.3 (2006-07-17):
  - Page rendering now supports preprocessors.

0.9.2 (2006-07-08):
  - Fixes to the typeahead demo.
  - Elements are now automatically serialized by json, just like Fragments.

0.9.1 (2006-07-05):
  - Made nevow.athena.expose the mandatory means of publishing a method to
    the browser.  The allowedMethods dictionary will no longer be respected.
  - Added nevow.page.Element and nevow.athena.LiveElement: these are
    preferred over nevow.rend.Fragment and nevow.athena.LiveFragment for all
    new development.

0.9.0 (2006-06-12):
  - Fixed a bug where nested fragment sending rarely worked.
  - Sending large strings in Athena arguments and results is now faster due to
    less unnecessary unicode character quoting.
  - Module objects are now automatically created for all Athena imports.
  - Better error reporting for fragments which are rendered without a parent.
  - Disconnect notifiers in Athena pages will no longer clobber each other.
  - Many optimizations to javascript initialization.
  - Javascript packages are now defined with less boilerplate: a filesystem
    convention similar to Python's for module naming, plus one declaration in a
    Nevow plugin which indicates the directory, rather than a declaration for
    each module.
  - Updated README to refer to Athena rather than LivePage
