Nagare Changelog
================

0.4.0
-----

New features
~~~~~~~~~~~~

  - Mercurial migration (http://hg.nagare.org and http://bitbucket.org/nagare mirror)
  - new site, examples and documentation design
  - tutorial (http://www.nagare.org/trac/wiki/NagareTutorial)
  - i18n service (messages catalogs, HTTP language negotiation, timezones, dates, currencies, numbers ...)
  - multiprocess / thread scopes differences handled by the new ``nagare.local`` service
  - HTML5 renderer (``nagare.namespaces.xhtml5.Renderer()``)
  - user impersonnalisation (stackable user objects)
  - stackable security rules
  - standalone publisher threads pool fully configurable
  - dummy sessions manager for completly Restful applications (no state kept on the server)
  - fastcgi over unix socket
  - the DOCTYPE can be changed
  - the content type of an XML response can be changed
  - configurable default initial renderer
  - relative logger names
  - ``nagare-admin shell`` prompt displays the name of the application
  - application name can be inserted as ``$name`` in the configuration file

Changes
~~~~~~~

  - A renderer can create an asynchronous renderer:
    ``comp.render(xhtml.AsyncRenderer())`` => ``comp.render(h.AsyncRenderer())``
  - New versions of YUI, IPython, SQLAlchemy, lxml and WebOb

Bugs fixed
~~~~~~~~~~

  - client disconnection detection added for comet streams
  - #51: javascript executed multiple times
  - #52: more informations for the ``AnswerWithoutCall`` exception
  - #53: a ``component.Task`` must exit on ``answer()`` if a ``on_answer()`` was set
  - #54: log service not initialized
  - #55: xhtml ``select`` and ``option``: problem with integer
  - #66: serializer can't serialize an empty DOM
  - #67: serializer can't serialize a fragment (a list of DOM)
  - #1298: bad generation of pure ``href`` anchor
  - #1442: bad Javascript translation of Python methods
  - #1443: error when the default initial renderer is asynchronous
  - #1444: ajax error when no HTML is rendered
  - #1447: ``IntValidator`` does not catch ``TypeError``
  - #1498: tutorial errors
  - #1502: incorrect ``memory`` sessions manager
  - #1508: error with the latest IPython version
  - #1509: ``data_path`` not initialized
  - #1510: bad checkbox values in ajax
  - #1511: SQLAlchemy engines creation fully configurable


0.3.0
-----

New features
~~~~~~~~~~~~

  - refactoring of the sessions managers:

    - session objects now keep track of their sessions manager
    - no more sessions manager factories
    - configurable pickler / unpickler objects
    - configuration switch ``states_history`` to set if an objects graphs history must be kept
    - new sessions manager (``type=memory``) that keeps the objects graphs in memory, without any pickling
  - logging service added:

    - one dedicated logger for each published applications is created
    - easy configuration and use of this dedicated logger
    - all the ``[logging]`` sections of all the published applications are merged before to configure the Python logging system
  - preliminary Comet support added (currently only working in a multi-threaded env.)
  - last exception raised kept by the ``WSGIApp`` objects and exception hook added
  - ``with_request`` parameter added to all the callback registrations and ``Update()`` objects
  - translation of Python modules to Javascript added
  - configurable name for the security cookie (one of the post Nagare security audit actions)
  - configuration of the ``WSGIApp`` objects split accross multiples `set_*`` methods
  - ``get_registered_applications()`` added to the publisher objects
  - full YUI bundled with Nagare
  - New versions:

    - Stackless Python 2.6.4 is now the recommanded Python version
    - virtualenv updated to 1.4.5
    - SQLAlchemy updated to 0.5.8
    - Elixir updated to 0.7.1
    - Lxml updated to 2.2.4
    - YUI updated to 2.8.0r4

Changes
~~~~~~~

  - with the YUI connection manager, a large browser response must be reassembled (Firefox only)
  - late creation of the SQLAlchemy database engines and metadatas binding
  - input fields ot type ``button`` now working in an Ajax submit
  - ``Var.var()`` now working in a unicode context
  - ``nagare-admin create-rules`` had problems when a static directory didn't exist
  - bad boolean expressions parenthesis translation in pyjs fixed
  - parsing (X)HTML from URL now working under Windows

Bugs fixed
~~~~~~~~~~

  - #47: ``set_publisher()`` called when using "nagare-admin create-db"
  - #48: py2js parentheses bug
  - #49: ``reset`` configuration ignored by the memcached sessions manager
  - #50: [log] inferred caller is wrong


0.2.0
-----

Python Stackless 2.6.2 is now the recommanded Python version.

New features
~~~~~~~~~~~~

  - When an AJAX update contains CSS or Javascript urls, they are correctly fetched.
  - Multiple AJAX updates object added
  - Session lock added (distributed lock when memcached is used)
  - A session can now contains SQLAlchemy (and Elixir) entities
  - LRU management of the sessions and continuations
  - ``nagare-admin create-rules`` administrative command added.
    Generation of the Apache / lighttpd / ngnix rewrite rules to serve the statics
    contents. See :wiki:`NagareAdmin`
  - ``nagare-admin batch`` administrative command added. To execute Python
    statements. See :wiki:`NagareAdmin`
  - Easy WSGI pipe creation
  - An application can now be registered under several urls
  - The automatic reloader can be configured with a list of files to watch
  - API to logout and change the user identity/password added
  - automatic generation of a ``link(rel="canonical" ...)`` in the page header
    as an alias without the session and continuation parameters
  - ``min_compress_len`` parameter added in the memcached configuration
  - YUI AJAX modules updated to 2.7.0
  - SQLAlchemy updated to 0.5.x

Changes
~~~~~~~

  - Complete refactoring of the AJAX communication. The "wire" format is now Javascript.
  - ``component.Component.init()`` and ``presentation.init_for()`` API changes.
    See :wiki:`RestfulUrl`

Bugs fixed
~~~~~~~~~~

  - #19, #23, #26: race condition in the sessions management
  - #22: don't clear the registered callbacks when an image is served
  - #21: set the security context at the beginning of the request handling
  - #13, #14: python to javascript translation updated


0.1.0
-----

Initial release

.. wikiname: NagareChangelog
