This file documents the revision history for Perl extension Maypole.
For information about current developments and future releases, see:

2.13 April 2008
SVN Revision

Bug Fixes :
   DBD::SQLite no longer required by Makefile.PL
   CGI handler now produces response for fatal error (bug 29981)
   Fix to link macro
   Fix to redirect_request in Apache::MVC
   Fix to mime detection by file extension
   Fixed MODIFY_CODE_ATTRIBUTES and FETCH_CODE_ATTRIBUTES to work with mod_perl threaded model 
     - Patch from Ben Hutchings
   fixes for bug 29982 Inconsistency between examples and tutorial (patch from Ben Hutchings)
   fixed apache_mvc.t to work with Apache2 (bug #29979 patch from Ben Hutchings)
   added post_chomp as default option for TT view

Improvements :
   link macro now takes a target argument, and has slightly better pod

2.121 29 August 2007

SVN revision 581

Bug Fixes :
   Apache::Request is fetched with a new object instead of instance if request options are provided
   additional, request_options and view_options attributes of Maypole::Config are initialised with hashref
   do_delete action now has exported attribute in ::Model::CDBI::Base
   Fixed links in flox to cookbook (bug 22899)
   Applied change from bug 14565

2.12  22 June 2007 

SVN revision 573

Bug Fixes :
   Fixed some db_colinfo test bugs
   Fixed typo in edit form template
   AsForm fixes to stringification _to_select
   made DFV and FromCGI warn instead of die on unexpected cgi params
   small improvements to some factory templates
   fix to path handling in mod_perl and CGI when location ends in /
   fixed template path ordering so i.e. /tablename/list is used before /list when provided with a tablename
   fixed template path with array refs
   fix to template being reset from path in plain templates (i.e. where no model), may affect those relying on the bug ( bug 23722 )
   fix to display_line macro in factory templates (bug 22920)
   fix to correct problem with LocationMatch and regex based Location directives in apache config.
   fix to redirect_request
   Fixed typo in _do_update_or_create (bug 26495)

API additions and enhancements :
   new Class::DBI::DFV based model
   New config method : additional, for stashing additional info, especially from additional_data method
   new warn method in maypole/request class/object, over-ridden by Apache::MVC, etc or own driver
   new build_form_elements attribute for Maypole request and Maypole::Config, set it to 0 to avoid building cgi form if you don't need it
   added CGI params to TT error template
   improvements to factory templates
   added search_columns method to base cdbi model class, provides display_columns unless over-ridden
   added new hook - preprocess_location
   added new attribute to Maypole::Config - request_options
   improved pager template macro

Internal additions and enhancements :
   Inheritence simpler and nicer and less hacked
   add_model_superclass method moves @ISA munging into the model
   new test to check everything compiles
   Model inheritance re-organised

2.111 Mon 30 April 2007
   - forked - see 2.111 changelog

2.11 Mon 31 July 2006

SVN revision 519

    Directly accessing the attributes of the request object, or the parameters 
    in $r->params, or anything else, is DEPRECATED and likely to break in future 
    releases. Be good, and use proper method calls.

    Maypole no longer uses Class::DBI::AsForm, instead Maypole::Model::CDBI::AsForm
    has replaced it.

    $config->{$table}{required_cols} is deprecated, please use $class->required_columns instead

Incompatible API changes:
	 - is_applicable() deprecated for is_model_applicable(). is_applicable is
         an alias for is_model_applicable now.
	 - ERROR constant now 500, previously -1 (bug #18901)
	- delete and search actions are now deprecated - use do_search and do_delete
	- table name rather than moniker is used to find templates

API additions and enhancements:
    	- -Init flag (wishlist 14123)
        - recognises Maypole::HTTPD and installs Maypole::HTTPD::Frontend
            as its frontend
    	add() alias to push() (wishlist 14142)
        - get_session() method (no-op)
        - get_user() method (no-op)
        - get_session() is called during handler_guts() before authenticate()
        - new preprocess_path() method added and called by parse_path(), 
	        parse_path() will leave any properties set by preprocess_path() in 
        - start_request_hook() added
        - status() attribute added (though only used by start_request_hook() 
            so far)
        - setup() split into setup(), setup_model(), and load_model_subclass()
        - added new path processing methods for ssl and default table/action
        - added make_path() 
        - added make_uri()
	- improved exception handling
	- now uses File::MMagic::XS to guess mime type of output unless already set
	- new component method provides Maypole::Component functionality
	- new object method gets/sets first/only object in objects
	- do_delete, do_search in place of delete/search actions
	- new report_error method
	- new embedded error report page in __DATA__
        - Improved pager macro/include
	- Improved factory templates
        - added the status() attribute, although it's not used in many places 
	- Changed factory edit/view to use object instead of objects
	- improved error messages in do_edit action
        - new required_columns mutator method
        - new column_required accessor method

Bug fixes:
    Fix to cgi_maypole.t (bug 11346)
    Fix to TT error reporting (bug 13991)
    Template xhtml validation (bug 13975)
    Apache2 fixes in Apache::MVC (bug 13888)
    Fixed inheritance issues in Mp::Application - Mp::App now manipulates the 
        caller's @ISA directly, and doesn't inject itself into the chain (bugs 
        12923 & 14120)
    Improved Template error reporting (14133)
    Maypole::Session::generate_unique_id() now returns the id (bug 14124)
    Moved ar accessor to Apache::MVC (bug 14014)
    Refactored core to support further development in 2.11 and onwards
    Fixed related_class() method (bug 14566)
    Added a cgi() attribute in Maypole::CGI
    Factory templates now less vulnerable to XSS (bug 16659)
    Reduced risk of XSS in factory templates (bug 16659)
    model search/delete methods in model and subclassing the cdbi mode (bug 16661)
    fixed problems with stringify_self and untaint missing ignore columns (bug 15678)
    fixed Maypole::Model::CDBI::Plain to JustWork(TM) with plain CDBI Classes (bug 16977)
    some silent death scenarios resolved
	Now initializes template_args, stash, parmas, objects and others to correct data type. (bug 15147)

    Fix to documentation for CGI::Maypole (bug 7263)
    Simplified Net::Amazon example (bug 14073)
    Numerous major and minor updates to docs.
    Renamed Maypole::Manual::Request to Maypole::Manual::Cookbook
	Added Maypole::Manual::Install, with material removed from 
	Added Maypole::Manual::Inheritance
	Added Maypole::Manual::Terminology
        - updated Maypole::Manual::View
        - updated Maypole::View:TT
    Examples of fancy forms and templates using new features

   HTTP::Body now required
   CGI::Untaint >= 1.26 now required rather than >= 0

2.10 Tue 19 Jul 2005
    Multiple Template Paths added ( )
    Small fix to templates/factory/frontpage ( )
    MasonX support in Maypole::Application ( )
    Maypole::Model::CDBI::Plain / Maypole Config issue ( )
    Repeat Submission detection support ( Bug #6500 )
    Fix to setup_database in Maypole::Model::CDBI ( Bug #12384 )
    Fix to plugin to allow Maypole::Plugin::Config::YAML to work
    Fix to Maypole::Model::CDBI order sub from list
    Improvement to primary display column using CDBI
    Improved efficiency of finding stringified columns using new classmetadata field
    Fixed BeerDB to untaint pub fields

    Additional Requirements : Digest::MD5

2.09  Mon Jan 25 22:00:00 2005
    - Fixed plugin inheritance set up by Maypole::Application, added tests

    - factory/addnew will only prefill values when there's a row creation error

2.08  Mon Jan 24 20:45:00 2005
    - Added $r->config->template_extension() to set optional file extension
      for templates (Dave Howorth)

    - Maypole::Application adds plugin classes to caller's @ISA (Marcus Ramberg)
    - FETCH_CODE_ATRIBUTES in M::M::Base should return an empty list if there
      are no attributes
    - M::M::CDBI will warn() about Class::DBI::FromCGI errors

2.07  Sun Jan 16 18:45:00 2005
    (This version was not uploaded to CPAN)

    Internal changes:
    - Removed Maypole::Model->description. It didn't work as expected and
      clashed with 'description' columns in the database

    - Model->process() shouldn't set $r->objects() to a list with a single,
      undefined element
    - Fixed overriding $r->template_args->{classmetadata} in M::V::Base
      (Thanks to Dave Howorth for spotting the mistake)
    - #9473: Maypole::Model::CDBI->related_class (Thanks David Baird)
    - #9434: M::M::CDBI->search generated "uninitialized value" warnings

    - The addnew template will attempt to prefill form fields with request
    - edit template includes 'addnew' if there is no object to edit

2.06  Wed Dec 29 01:30:00 2004
    - Minor restructuring of the manual so indexes it better
    - #9129: Skip t/apache_mvc.t if Apache::Request isn't installed

2.05  Fri Dec 24 03:20:00 2004
    - Revised and updated documentation. Many thanks to Dave Howorth for his
      hard work and 120kb documentation patches.
    - Added support for request and response HTTP headers with
      $r->headers_in & $r->headers_out (Maypole::Headers)
    - Support for compound primary keys for Maypole::Model::CDBI classes
    - Template toolkit objects are configurable with M::Config->view_options
    - Templating performance should be improved when running Maypole with
      mod_perl since compiled templates remain in memory. CGI users can use
      TT2's COMPILE_DIR or COMPILE_EXT options with
      Maypole::Config->view_options to improve performance

    Internal changes:
    - Added a new override for the model: fetch_objects(). 
    - 'classmetadata' template variables can now be overriden individually
    - New unit tests for Maypole, CGI::Maypole, Maypole::Headers, and others.
      More to come.

    - Maypole::CLI is more tolerant of trailing slashes in the request/uri_base
    - fixed a bug in CGI::Maypole::parse_location() (Dave Howorth)
    - Also applied that fix to Apache::MVC (Marcus Ramberg)
    - some fixes for Maypole::Config, Maypole::Model::Base and
      Maypole::Model::CDBI::Plain (Dave Howorth)
    - Documented adding new accessors to Maypole::Config
    - Added Apache::RequestIO to Apache::MVC (
    - Applied patch to fix length of utf8 documents.
    - support compound primary keys in CDBI fetch_objects.
    - Check if has_a actually points to a Maypole::Model (Dave Howorth)
    - Make test suite work with DBD::SQLite2
    - default search() action removes empty fields from search parameters
    - #6622 - Maypole::Application will create a separate Maypole::Config for
      each application (instead of the current workaround for multiple apps
      under mod_perl)
    - #7643 - improve M::V::Base's error() messages. prefix error with label,
      and carp()
    - #7651 - minor POD improvements in M::M::CDBI (Dave Howorth)
    - #7834 - minor POD update in M::M::CDBI (Kevin Connor)
    - #7917 - if do_edit fails for object creation, try again with the correct
      template (addnew)
    - #7930 - handle Class::DBI constraint failures in do_edit. 

    - add support for compound primary keys in factory templates
      (Dagfinn Ilmari Mannsåker)
    - Only show buttons for public actions.
      (Dagfinn Ilmari Mannsåker)
    - Split the meat of the view template off to a view_item macro.
    - New login template
    - Other assorted css/template fixes

2.04  Tue Oct 27 14:00:00 2004
    - fixed Apache::MVC version (Randal Schwartz)
    - fixed template_args (Dave Howorth)
    - new Maypole::Config documentation (Dave Howorth)
    - Maypole::Model::Base::process() no more steals you the first
      arg after fetching objects

2.03  Tue Oct 26 13:00:00 2004
    - increased version number of Apache::MVC
    - fixed display_tables bug (Steve Simms)
    - fixed templates, now again XHTML compliant
    - documentation fix (Dave Howorth)
    - only set charset for text/*

2.02  Mon Oct 25 13:00:00 2004
    - Fixed charset in http header.
    - replaced action links with forms in factory templates

2.01  Sun Oct 24 14:50:00 2004
    - documentation fix to make t/03podcoverage happy

2.0   Fri Oct 22 20:00:00 2004
    - added parse_args() (Simon Flack)
    - call additional_data() and authenticate() for plain templates
    - merged Apache2::MVC (mod_perl2 support) into Apache::MVC
    - added Maypole::Application universal front-end
    - config parameter handling for Maypole::Model::CDBI
    - $r->{query} is now deprecated, use $r->{params} for GET and POST
    - fixed multiple value handling (Simon Flack)
    - added exception handling (Simon Flack)
    - fixed documentation bugs
    - changed default documentencoding to utf8. Change with 
    - removed Maypole::View::Mason as it's distributed separately on CPAN.
    - factory templates are now XHTML 1.1 compliant.
    - made the config hash into -> Maypole::Config
    - accessors for everything
    - win32 support
    - new documentation for (Simon Flack)
    - moved doc/*.pod to lib/Maypole/Manual
    - added Maypole::Model::Base::is_public() to make it simple to overload
      :Exported behavior
    - added support for replacing use base qw/All My Modules/ with 
      use Maypole::Application qw/Redirect AnotherPlugin/; note that this 
      will only triggers with parameters to import, to preserve backwards
    - fixed search ordering in Maypole::Model::CDBI and parameter
      handling in CGI::Maypole (Dave Slack)
    - sweet new factory templates (Danijel Milicevic)
    - zero search fix (Dave Slack)

1.7   Sat Jul 17 20:15:26 BST 2004
    - Emergency release - we lost the "use Maypole::Constants" from somehow

1.6   Fri Jul 16 23:51:21 BST 2004
    - Two very trivial fixes:
    - Put ::Plain in the MANIFEST, so it actually ships this time
    - Make CLI test == OK, not just true

1.5   Mon Jun 21 14:36:54 BST 2004
    - CLI mode correctly uses Constants module
    - Template footers as well as headers (Markus Ramberg)
    - Fix problems on failed object create (Jesse Sheidlower)
    - Fix related() to deal with latest version of Class::DBI (Markus)
    - Add sample CSS to distribution
    - Maypole::Model::CDBI::Plain, for those who already have a CDBI set
      of classes set up
    - Friendlier errors when a template can't be found
    - Don't authenticate without a model class
    - #6569 Passing DBI options in setup() (Mickael Joanne)
    - #6571 User-defined ok_tables: patch
    - #6572 Makefile patch: require up-to-date CBDI::AsForm (Markus Ramberg)
    - #6573 Set empty params to '' instead of undef (Jody Belka)
    - #6617 Required cols patch in (Jesse Sheidlower)

1.4   Fri Apr 16 18:11:41 BST 2004
    - Much, much more documentation
    - CLI debugging mode
    - CGI frontend (CGI::Maypole)
    - Beginnings of a test suite
    - Maypole::Constants module to remove dependency on Apache
    - Refactoring of view classes to base/module-specific modules
    - HTML::Mason view class
    - Various small template bug fixes and enhancements

1.3   Fri Mar 26 19:16:33 GMT 2004
    - Fix serious order/CDBI::Page interaction bug.
    - Die if model/view class can't be compiled.

1.2   Thu Mar 25 12:35:21 GMT 2004
    - Ensure safety when dereferencing any ->objects
    - Support for the "frontpage" template
    - Maypole itself no longer uses ->{ar}, which is now completely
      refactored into the Apache::MVC class
    - The beginnings of the documentation framework
    - Support for paging and ordering in searches
    - Stringify column changed from magic "name" to customizable
    - Move BeerDB to ex/
    - Fix SQLite dependency

1.1   Wed Feb 25 10:29:25 GMT 2004
    - Update CDBIL dependency
    - Don't stringify to "name" if there isn't one
    - Better support for authentication and template changes
    - Full set of templates
    - Allow passing of username and password to ->setup
    - display_columns method

1.0   Wed Feb 11 17:34:12 GMT 2004
    - Renamed from Apache::MVC to Maypole.
    - Clearer separation of model and view classes from controller
    - Factoring out of Apache-specific code back into Apache::MVC

0.2   Thu Feb  5 18:03:33 GMT 2004
    - This release adds paging of list results and ordering by column
      (ascending and descending)

0.01  Thu Jan  8 15:50:17 2004
	- original version; created by h2xs 1.22 with options
		-AX -b 5.6.0 -n Apache::MVC