Nagare Changelog¶
0.5.1¶
- Valid versions of
WebOb
andBabel
- 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 asdata_*
keywords - The
<div>
automatically added in the asynchronous views have thenagare-generated
andnagare-async-view
classes
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 onanswer()
if aon_answer()
was set - #54: log service not initialized
- #55: xhtml
select
andoption
: 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 catchTypeError
- #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 andUpdate()
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 contextnagare-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-adminnagare-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()
andpresentation.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