I’m pleased to announce after a rather lengthy release candidate period, that Pylons 0.9.7 is finally out. Pylons 0.9.7 brings a good amount of changes to Pylons from 0.9.6 while still retaining a fairly hefty amount of backwards compatibility to ensure a mostly painless upgrade.
Some helpful documentation on the new release:
- Upgrading to Pylons 0.9.7
- Pylons 0.9.7 Documentation
- Pylons 0.9.7 Docs in PDF
- Pylons Book (Will be updated soon with the final copy from the printed book)
Major changes in 0.9.7:
- Switched to using WebOb for the request/response object
- Various performance improvements to object initialization
- Beaker and Routes updates
- Middleware improvements, and optimizations
This is a huge step forward for Pylons, and I’d like to thank all of the contributers who have helped make Pylons what it is today. We’ve knocked off more bugs for this release than any before, which shows just how far the Pylons community has come:
- 0.9.5 tickets: 45
- 0.9.6 tickets: 64
- 0.9.7 tickets: 160
And we have finally made a huge dent in the historical “lack of docs” problem that Pylons previously suffered from with the new Sphinx generated docs and a comprehensive Pylons book.
The full changelog which describes the major changes (Look for the bits marked with WARNING that might affect backwards compatibility).
0.9.7 (February 23, 2009)
- WARNING: A new option is available to determine whether or not an actions
- WARNING: Fixed a minor security hole in the default Pylons error page that
- WARNING: Fixed a security hole in the default project template to use the
- WARNING: Refactored PylonsApp to remove legacy PylonsApp, moved
- Changed to using WebTest instead of paste.fixture for app testing.
- Added render_mako_def to render def blocks within a mako template.
- Changes to cache_decorator and cached_template to support Beaker API
- Fix HEAD requests causing an Exception as if no content was returned
- Fix a crash when returning the result of “etag_cache“ in a controller.
- “response” flag has been removed from pylons.decorators.cache.beaker_cache,
- “invalidate_on_startup” flag added to beaker_cache, which provides a
- Updating host to use 127.0.0.1 for development binding.
- Added option to specify the controller name with a controller variable
- setup.py egg_info now restores projects’ paster_plugins.txt,
- The paste_deploy_config.ini_tmpl template is now located at
- Project’s default test fixtures no longer hardcode test.ini; the ini
validate now defaults to translating FormEncode error messages via Pylons' gettext catalog, then falls back to FormEncode's. fixes #296. Thanks Max Ischenko. * Fixed SQLAlchemy logging not working in paster shell. Fixes #363. Thanks Christoph Haas. * Added optionally engine initialization, to prevent Buffet from loading if there's no 'buffet.template_engines' in the config. * Updated minimal template to work with Tempita and other new templating changes. * Fixed websetup to parse location config file properly when the section isn't 'main'. Fixes #399. * Added default Mako filter of escape for all template rendering. * Fixed template for Session.remove inclusion when using SA. Fixed render_genshi to properly use fragment/format options. Thanks Antonin Enfrun. * Remove template engine from load_environment call. * Removing template controller from projects. Fixes #383. * Added signed_cookie method to WebOb Request/Response sub-classes. * Updated project template to setup appropriate template loader and controller template to doc how to import render. * Added documentation for render functions in pylons.templating. * Adding specific render functions that don't require Buffet. * Added forward controller.util function for forwarding the request to WSGI apps. Fixes #355. * Added default input encoding for Mako to utf-8. Suggested in #348. * Fixed paster controller to raise an error if the controller for it already exists. Fixes #279. * Added __init__.py to template dir in project template if the template engine is genshi or kid. Fixes #353. * Fixed jsonify to use application/json as its the proper mime-type and now used all over the net. * Fixed minimal template not replacing variables properly. Fixes #377. * Fixedvalidate decorator to no longer catch exceptions should they be
- Fixed paster shell command to no longer search for egg_info dir. Allows
- Added mimetype function and MIMETypes class for registering mimetypes.
- WARNING: Usage of pylons.Response is now deprecated. Please use
- Removed use of WSGIRequest/WSGIResponse and replaced with WebOb subclasses
- Fixed missing import in template controller.
- Deprecated function uses string substitution to avoid Nonetype error when
- E-tag cache no longer returns Content-Type in the headers. Fixes #323.
- XMLRPCController now properly includes the Content-Length of the response.
- Added SQLAlchemy option to template, which adds SQLAlchemy setup to the
- Switched project templating to use Tempita.
- Updated abort/redirect_to to use appropriate Response object when WebOb is
- Updated so that 404’s properly return as Response objects when WebOb is in
- Added beaker_cache option to avoid caching/restoring global Response values
- Adding StatusCodeRedirect to handle internal redirects based on the status
- Refactored error exceptions to use WebError.
- WSGIController now uses the environ references to response, request, and
- Added optional use of WebOb instead of paste.wsgiwrapper objects.
- Fixed bug with beaker_cache defaulting to dbm rather than the beaker
- The —with-pylons nose plugin no longer requires a project to have been
- The config object is now included in the template namespace.
- Fix pylons.database.AutoConnectHub’s doInTransaction not automatically