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

0.5.1
-----

- Valid versions of ``WebOb`` and ``Babel``
- GH-9: Avoid multiple CSS loads

0.5.0
-----

- Project only hosted on Github now
- Documentation served as github.io pages
- Documentation generated with Sphinx
- Documentations added:

  - internationalization
  - ``nagare.wsgi.WSGIApp``
  - application deployment
  - log service

- Running now on Stackless, Pypy (experimental) and CPython (with limitations)
- Request and Response object factories added
- Improved components garbage collector
- Callbacks registered with ``.action()`` and ``.answer()`` can have parameters and keywords
- No more ``lambda`` for the validators
  (``lambda v: IntValidator(v).greater_than(10)`` => ``IntValidator().greater_than(10)``)
- Translation *domain* added to the i18n service API
- Custom ``data-*`` HTML5 attributes can be created as ``data_*`` keywords
- The ``<div>`` automatically added in the asynchronous views have the
  ``nagare-generated`` and ``nagare-async-view`` classes

0.4.1
-----

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

- #1516: `nagare-admin create-app` command not working with Stackless Python < 2.7


0.4.0
-----

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

- Mercurial migration
- new site, examples and documentation design
- tutorial
- i18n service (messages catalogs, HTTP language negotiation, timezones, dates, currencies, numbers ...)
- multiprocess / thread scopes differences handled by the new :mod:`nagare.local` service
- HTML5 renderer (:class:`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 :doc:`nagare-admin`
- ``nagare-admin batch`` administrative command added. To execute Python
  statements. See :doc:`nagare-admin`
- 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 :doc:`restful`

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

