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 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 nagare-admin

  • nagare-admin batch administrative command added. To execute Python statements. See 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 Significative “RESTful” URLs

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