Pylons Changelog
=================

0.9.2 (Sept. 7th, 2006)
* Fixed problem with dashes in controller names, resolves #107.
* Updated default ini file to use localhost from address. Refs #104.
* Updated default development.ini to use a single cache_dir setting which
  is the base dir that cache files, session files, and template caching will
  be saved in. Config object now looks to cache_dir setting properly for
  Myghty templates. Fixes #104.
* Updated default template controller to provide better example of directly
  serving Myghty templates.
* Fixed legacy (0.8) controller methods' **ARGS (also m.request_args and
  pylons.params) to be of the expected mixed dictionary instead of MultiDict.
* Fixed _attach_locals not attaching g and cache objects.
* Added g object to the shell. Works as long as the Pylons app can respond
  to a path of '/'. The pylons.g variable will also be setup properly for
  use in the shell.
* Myghty template options are now passed properly to the template creation, and
  allow_globals now works to add Myghty template globals.
* Re-organized helpers, switched Helpers class to use static methods to reduce
  code duplication.
* Helpers cleanup:
    - Old-style Helper object uses StackedObjectProxy just like the new
      scheme, thus avoiding possible WSGI stack issues.
    - New project templates use new-style Helpers scheme.
    - Updated wsgiapp to utilize new Helpers cleanup style. The 'h' object
      is now friendlier to use, and maps directly to a projects lib.helpers 
      file. No more wacky Helpers object proxying to it.
    - Added translator global to __init__.py for use with new Helpers cleanup.
    - Copied Helpers function methods directly into util so they can be used
      stand-alone.
    - Deprecated h.lang (for h.set_lang/h.get_lang)
* Moved the 'default_charset' option from PylonsApp's constructor to
  Config's.
* Added 'error' controller route to the top of the Pylons template to avoid
  the common issue people discover when removing the generic default route.
* Changing validate decorator to have variable_decode option, which will
  also run formencode's variable_decode function over the form input.
* Switched to using Context obj classes instead of RequestLocal which is
  being phased out.
* Added an 'encode_variables' option to the validate decorator.
* Switched all current_obj calls to _current_obj to avoid triggering
  deprecation warnings.
* Added is_xhr to Request object in Paste.
* Bumping up dependency to latest Paste.
* Switching back to prior controller import check, throwing a more detailed
  error with a suggest fix should the user really want a URL with that name
  in it. (refs #67)
* Fixes bug with prior fix for #67. Wasn't properly testing the full package
  name to include the current project which would incorrectly restrict
  valid controller names (refs #67).
* Fixed '_method_' checking to test in a more efficient manner.
* Added deprecation warning for legacy mode activation. Not necessary to
  update multiple files, as all of legacy mode is enabled via the Legacy
  WSGI app. Fixes #89.
* Fixed controller command to check controller name and refuse to create
  controllers that have name clashes with existing modules that could be
  imported. Reported (with patch) by Chuck Adams. Fixes #67.
* Added capability for 'c' object to throw an exception when an attribute
  is used that doesn't exist. Closes #84.
* Fix for endless error document call when an error document controller
  wants to throw a error that the error_mapper catches.

0.9.1 (August 11th, 2006)
* Fixed __all__ export typo in templating.py. Added example of render
  with a template.
* Fixed issue with set_lang not using proper CONFIG var.
* Minor tweaks to update docs in pylons.helpers and move remaining legacy
  code into legacy module. Updated wsgiapp to refer to new locations of
  legacy compatibility objects.
* The interactive debugger's 'full traceback' link is now only displayed
  when the full traceback differs from the regular (includes hidden
  frames).
* Providing an optional text version of exception tracebacks and the
  associated extra data within the interactive debugger.
* The 'Debug at: http://hostname/_debug/view/XXXXX' URLs now display the
  interactive debugger properly skinned.
* Fixed issue in PasteScript with new controller sub-directories lacking a
  __init__.py file. This fixes an import error when using the controller.
  PasteScript dependency updated to fixed version. Reported by Artur Lew.
* Removed lowercasing of the module name during resolver import.
* Removed [full] recommendation from docs.

0.9 (July 28th, 2006)
* config file option 'debug' now defaults to false when undefined
* Removed the components directory from the template
* Updated paste.errordocuments support
* Fix for multi-word controller names such that front_page / 
  FrontPageController can be used as a controller name. Patch contributed
  by Timo Mihaljov.
* Cleaned up imports in wsgiapp and new project to better reflect where
  things really come from.
* Removed unnecessary myghty usage from wsgiapp for url unescaping, now
  uses urllib as the myghty function did.
* Removing 'response' to import, sticking with Response as its more
  consistent with the fact that Response is a class/factory and not an
  instance like request, and the other lower-case objects.
* Added redirect_to under pylons.helpers, and added import from helpers
  directly into lib/base.py for use in controllers.
* Consolidated legacy objects into legacy module.
* Adding abort method that raises the appropriate exception for the status
  code.
* Removing form_fill, obsolete by the validate decorator.
* Relocated 'params' object to only take effect in legacy mode.
* Updated Pylons template to use WSGIController as the new default Controller.
* Altered the wsgi dispatch to examine the controller, and instantiate it if
  it's just a class. Otherwise, if the controller is a subclass of Controller
  but not of WSGIController, it assumes its an older Controller class that
  may return a WSGIResponse, and calls it appropriately.
* Dispatch now fixes up environ to move 'path_info' Route var into the WSGI
  PATH_INFO, and the rest is pushed into SCRIPT_NAME. This is for use with
  other WSGI apps under controller mount points.
* Added WSGIController which takes a normal WSGI interface call and returns
  the appropriate WSGI response.
* Added automatic copying of Route variables declared in an action's
  function definition to the 'c' object.
* WebHelpers' .js files are now automatically published under the 
  '/javascripts/' URL path. Individual WebHelpers' .js files can be
  overridden by other .js files inside the project's 'public/javascripts'
  directory
* Added exception toss when a template engine doesn't exist.
* Added alias option to Buffet to support aliasing more template engines
  to other engine names
* Buffet enhancements to support caching of any template with any template
  engine
* All render commands processed through Buffet
* Backwards compatibility 'm' object for use with legacy projects
* Added use of Beaker middleware for session and caching functionality
* Fixed error traceback and updated template to use proper error images and
  stylesheets.

0.8.2 (**dev**)
* Fixed default controller to allow for actions with - in them. The - will be
  replaced with an underscore, while the original action name in the mapper
  dict is unchanged. Patch by Thomas Sidwick.

0.8.1 (May 10th, 2006)
* Added REST decorators and re-arranged decorator layout to support more styles
  of decorators for future expansion.
* Fixed dependency requirement bug that had Pylons locked to simplejson 1.1
  even though a newer version was out.
