[Web-SIG] ANN: Pylons 0.9.4 Released
Ben Bangert
ben at groovie.org
Sat Dec 30 05:52:07 CET 2006
It's with great pleasure that I announce the release of Pylons 0.9.4.
This release has quite a few bug fixes and enhancements, the most
since the 0.9 milestone. It's also likely one of the last big updates
before a 1.0 release candidate (there will be some small changes in
0.9.5 and possibly a 0.9.6).
First, the most important changes for those upgrading from an
existing Pylons application:
* WARNING: Removed the lang_extract and lang_compile commands. They used
pygettext.py and its associated msgfmt.py, which lacked the
ability to
extract ngettext style function calls and had issues with unicode
strings.
The new I18NToolBox project aims to provide this functionality
(and more)
via the gettext command line utilities. http://i18ntoolbox.ufsoft.org
* WARNING: Myghty's allow_globals config var has changed, causing the
following when running pre-compiled templates:
Error(TypeError): do_run_component() takes exactly 13 non-keyword
arguments (5 given)
Delete the compiled Myghty templates directory (specified by
cache_dir or
myghty_data_dir in the config file) to resolve the error.
* WARNING: The localization function '_' now uses ugettext (returns
unicode
strings) instead of gettext. To preserve the old behavior, append the
following line to your project's lib.base and lib.helpers imports:
from pylons.helpers import gettext as _
* WARNING: Removed 0.8.x legacy code and backwards compatibility
functions.
Please note that since some i18n functions have moved, your
helpers.py will need to be updated to import _, and ungettext from
pylons.i18n.
Also:
- The XMLRPC Controller got a significant update so that it now
provides the full range of XML-RPC Introspection facilities for your
service methods.
- SQLAlchemy convenience functions have been added to pylons.database
for use with the SessionContext plugin, and to create and retain SA
engines.
- Paste dependency was updated to 1.1.1, Routes to 1.6.1 (important
update for map.resource functionality)
- Pylons special objects (g, c, h, request, session) now available in
interactive debugger without _attach_globals.
- Controller actions can now be generators
- Pylons base WSGI app uses wsgi.org routing_args spec for easier
swapping of URL resolvers.
== Install ==
Please see http://pylonshq.com/docs/0.9.4/install for installation
details.
== Full Changelog ==
0.9.4 (Dec. 29th, 2006)
* WARNING: Removed the lang_extract and lang_compile commands. They used
pygettext.py and its associated msgfmt.py, which lacked the
ability to
extract ngettext style function calls and had issues with unicode
strings.
The new I18NToolBox project aims to provide this functionality
(and more)
via the gettext command line utilities. http://i18ntoolbox.ufsoft.org
* All Pylons special objects are now available within paster shell
(not just
h and g).
* WARNING: Myghty's allow_globals config var has changed, causing the
following when running pre-compiled templates:
Error(TypeError): do_run_component() takes exactly 13 non-keyword
arguments (5 given)
Delete the compiled Myghty templates directory (specified by
cache_dir or
myghty_data_dir in the config file) to resolve the error.
* Changed i18n functions in templates to use proxy objects so that using
set_lang in a template works right. Fixes #153.
* Now allowing any template plugin to overwrite global PYLONS_VARS
(such as c,
g), not just pylonsmyghty.
* Adding SQLAlchemy support to the database.py file. Saves the
session engine
to g to maintain it during the apps lifetime. Uses SessionContext
plugin for
management of the current session.
* Updated config object so that init_app can take an optional
template engine
argument to declare the default template engine.
* Updated Myghty plugin to use extra_vars_func when passed in.
* Fixed Buffet to use extra_vars_func properly.
* Fixed the validate decorator when there are validation errors and
variable_decode=True: now passing the original params to
htmlfill.render
instead of the varable_decode'd version. Patch by FlimFlamMan.
* Added ungettext function for use with pluralized i18n, and the N_
function
(gettext_noop) to mark global strings for translation. Added
ungettext, N_
and translator objects to be globals for templates. Refs #126.
* WARNING: The localization function '_' now uses ugettext (returns
unicode
strings) instead of gettext. To preserve the old behavior, append the
following line to your project's lib.base and lib.helpers imports:
from pylons.helpers import gettext as _
* Pylons special objects are now available within the interactive
debugger
(deprecating _attach_locals).
* Added setup-app run before unit tests run so that webapp has proper
setup
tasks handled. Fixes #113.
* Added paste.deploy.CONFIG setup to middleware.py, websetup.py and
testing
files in the Pylons project templates. Closes #112.
* Added security policy doc to index for use as Pylons security policy.
Closes #91.
* Improved the repr() of the c context object to show attributes.
* Set environ['paste.testing_variables'] whenever that key is
available, not
just in testing mode.
* Added capability to have an action be a generator function.
* Added introspection capability to XMLRPCController and signature
checking.
* Updated Controller to use additional arg lookup scheme so that the
source of
the function args for _inspect_call can be easily overridden.
* Updated RPCController, renamed to XMLRPCController.
XMLRPCController now
functions properly and will automatically return proper xmlrpc
responses.
* Added test configuration ini file to default template. Closes #114.
* Fixed problem with pylons.database.PackageHub.__get__ raising errors
other than AttributeError when the database isn't configured. Added
new UnconfiguredConnectionError exception, instead of just KeyError
or TypeError (depending on what part of the configuration failed).
* Fixed default g init, since bare object has no init method.
Reported by Ian
Bicking.
* Fixed issue with SQLObject method override having wrong name.
Reported by
climbus with patch. Fixes #133.
* Moved log function to pylons.helpers and translation functions to
pylons.i18n. using pylons.util purely for Pylons internal util
functions.
* WARNING: Removed 0.8.x legacy code and backwards compatibility
functions.
* PylonsApp now has option to not use Routes middleware, default
resolving
uses new wsgi.org routing_args spec.
* Refactored routes dispatching to use new Routes middleware.
* Fixed paster shell command to properly acquire mapper object without
relying on the template being configured in a specific manner.
* Added keyword argument pool_connection to
pylons.database.PackageHub; if set to false then SQLObject
connections
won't use pooled database connections (a new connection will be
opened for each request).
Many thanks to Phil Jenvey, Ian Bicking, James Gardner, and all the
other active members of the Pylons community!
Cheers,
Ben
More information about the Web-SIG
mailing list