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