=head1 NAME

Text::MicroMason::Docs::Changes - Change History for the MicroMason Distribution

=head1 VERSION 2 HISTORY

=head2 Version 2.20

=over 4

=item 2016-09-30

Fix #118166 reported by GREGOA via Debian package testing.

Attempt another workaround for t/34-compile_cache.t in MS32. `perldoc
perlport` leads me to believe this is an MS32-specific issue. 

=head2 Version 2.19

=over 4

=item 2016-05-26

Merge patches for pod errors and typos from Debian Perl Group.

Work around issue in t/34-compile_cache.t where sleep() wasn't effective on some CPANTS test servers.

=back

=head2 Version 2.18

=over 4

=item 2016-05-12 

Update version in Text::MicroMason::PLP to ensure PAUSE indexes it properly.

Fix bug in default_policy pod.

=back

=head2 Version 2.17

=over 4

=item 2016-05-12

Expand documentation for Text::MicroMason::Filters.

Add C<default_policy => 'override'> attribute for filter default behavior

=back

=head2 Version 2.16

=over 4

=item 2015-06-27

Remove garbage files from dist.

=back

=head2 Version 2.15

=over 4

=item 2015-06-27

[rt.cpan.org #105499] Fix regression due to new error/warning format in Perl 5.22.

[rt.cpan.org #92771] Fix line number regressionf due to a Perl line numbering bugfix.  This 
    passes tests but I'm not entirely convinced it's correct.

=back

=head2 Version 2.14

=over 4

=item 2013-06-11

[rt.cpan.org #85965] Fix POD errors in Changes.pod.

=back

=head2 Version 2.13

=over 4

=item 2011-01-13

[rt.cpan.org #64192] Skip the Safe-related tests more often, since newer
versions of Safe.pm mark their own failing tests as TODO instead of
changing the module's behavior.

=back

=head2 Version 2.12

=over 4

=item 2010-09-07

Skip more tests that fail due to a bug in Safe.pm. Add a prereq for
Safe.pm so CPAN testers will provide more debug info on failure.

=back

=head2 Version 2.11

=over 4

=item 2010-09-07

[rt.cpan.org #61010] Fix spelling errors and pod example bugs. Thanks to
vshih at yahoo.com for reporting these problems.

=item 2010-09-07

Under Perl 5.13.1 and later with Safe version 2.27, skip failing tests
in t/32-safe.t. The regression tests for Safe 2.27 fail in Perl 5.13.1
as well, in a similar way. This bug is not fixable in any reasonable way
until Safe.pm is also stable.

=item 2010-07-26

[rt.cpan.org #59081] Fix spelling and pod errors. Thanks to Ansgar
Burchardt and the Debian project for submitting this bug report along
with patches.

=back 

=head2 Version 2.10

=over 4

=item 2010-06-29

[rt.cpan.org #57797] Deprecate safe_methods parameter.  Unfortunately,
Safe.pm version 2.27 patches a bug we were inadvertantly taking
advantage of to implement the safe_methods parameter.  Unless we can
find a working implementation of safe_methods that is smaller than
"make everything unsafe" then we can't continue to support
safe_methods.

Using safe_methods now issues a deprecation warning, but it should
work with older versions of Safe.  I'm in no hurry to remove the
feature, but I don't want anyone to use it who isn't already using it,
until we know it can be supported in the future.

Thanks to Niko Tyni and the Debian Perl Group for submitting this bug report.

=item 2010-04-05

"uninitialized" warnings in templates were being generated at a line
number within MicroMason instead of a line number within the template
itself. Thanks to Mike Kelly for a patch: by concatenating an empty
string to each TOKEN within the template, the warning's line number is
shifted to inside the template where the interpolation took place.

=back

=head2 Version 2.09

=over 4

=item 2010-03-24

Fix test that was broken by changes in URI::Escape 1.30.  Double
quotes aren't reserved characters in URIs but they were previously
encoded anyway.  Test modified to use reserved single quotes instead,
for URI::Escape testing.

=back

=head2 Version 2.08

=over 4

=item 2010-03-08

Fixed PassVariables bug: <%init> failed with -PassVariables plugin.
Thanks to William Kern for reporting this.

=item 2009-11-19

Fixed [rt.cpan.org #51727] [Patch] POD nit; thanks to Frank Wiegand for
reporting this.

=back

=head2 Version 2.07

=over 4

=item 2009-11-16

Merge patch from Simon Cavalletto: fix bug reported in CPAN forum with
"OUT" appearing in the input template stream.  Thanks!

Update requirement for Test::More 0.48 or later in Makefile.PL. Tests
using unlike() failed with Test::More version 0.47.

Fix problem in t/08_errors.t which caused test failures in Perl 5.6. The
error message isn't as important as the test made it out to be, but the
code didn't have a problem.

=item 2009-11-12

Remove documentation for unsupported compile(lines => ...) mode. Put it
on ToDo instead.

=back

=head2 Version 2.06

=over 4

=item 2009-11-11

Fix bug reported in CPAN forum: substr() in LineNumbers.pm was being
used incorrectly, resulting in incorrect line numbering in some cases.

=item 2009-11-12

#51460: Clean up the tarball and resubmit a version that doesn't
contain a stray .tgz file.

=back

=head2 Version 2.05

=over 4 

=item 2009-11-10

Modify compilation error reporting: provide line numbers when dumping
the compiled template into $@, and change the #line to match the line
numbering correctly.

=item 2009-11-11

Fix bug reported by CPAN testers on some Windows boxes: use
Cwd::abs_path for strict_root checking to avoid literal path separators
in TemplateDir.pm.

=item 2009-11-11

Add a hint about -LineNumbers in the numbered template dump when a
compilation error occurs.

=back
 
=head2 Version 2.04

=over 4

=item 2009-11-06

Fixed SKIP count in t/33_filters.t to prevent test failures when
URI::Escape isn't installed.

=back

=head2 Version 2.03

=over 4

=item 2009-10-30

Happy Halloween.

Updated tests to use Test::More for better diagnostics via CPAN testers.

Tweaked t/34 with a longer sleep() since some linux hosts seemed to be
sleeping for less than a second with sleep(1).

=back

=head2 Version 2.02

=over 4

=item 2009-10-29

Updated Changes.pod.

Fixed SKIP count in t/33 which caused test count mismatches when
HTML::Entities wasn't installed.

=back

=head2 Version 2.01

=over 4

=item 2009-10-29

Fix a bug with TemplatePath error messages. If a template name was
provided that didn't exist in the path, the error message generated by
read_file didn't specify which template was requested. This version
now croaks in resolve_path instead of returning undef and letting
read_file croak.

Updated pod to reflect this change and document previously undocumented
exception strings.

Modified undocumented exception strings for strict_root violations.

=back

=head2 Version 2.0

=over 4

=item 2008-01-02

Fix bug with || filter patch: it was erroneously removing the last
character of the filtered token, which made it fail if there was no
space before the |.

Bump version to 2.0

=back

=head2 Version 1.993_01

=over 4

=item 2007-12-21

Add LineNumbers mixin and associated tests.

=item 2007-12-21

Update TODO: move almost everything into a WISH LIST with a request for
contributions, and make the main TODO list bug fixes and a few likely
developments.

=item 2007-12-21

Merge test and patch from RT bug #21802: cache expiration bug. 

=item 2007-12-21

Merge changes from RT bug #18435: filter problem with 
<% $thing || "default" %>

=item 2007-12-21

Bump version to 1.993_01

=back

=head2 Version 1.993

=over 4

=item 2007-12-20

Merge changes from pair Networks local branch, which have been in
testing and production since Q1 2007; bump version to 1.993.

This includes:

=over 2

=item TemplatePath mixin

Template lookups on a search path

=item TemplateDir/ Cache patch

 fix interaction of caching and TemplateDir/TemplatePath

=item Additional test files

=item Stop creating cache objects unless/until they're used

=back

=back

=head2 Version 1.992_01

=over 4

=item 2007-12-20

Updated pod and makefiles for maintenance transition from Simon to
Alan. Thanks for the wonderful module, Simon! I hope I can keep things
under control.

Bumped version number.

=back

=head2 Version 1.992

=over 4

=item 2005-11-13

Updated ToDo.pod with a few ideas for upcoming releases.

Extended t/58-quicktemplate.t to demonstrate use of the pre_fill method.

=item 2005-11-12

Fixed incorrect handling of default values for array or hash variables in an <%args> block. Thanks to Alexander for the bug report.

Added extra newlines to the do blocks generated by Base's assemble(), so that <% exprs %> can contain a comment. Problem reported by Alexander.

Improved error reporting by changing the file name embedded in the CPP-style line number comment at the top of each stretch of generated Perl code. Based on a problem report from Alexander. This does not fix the line numbering problem, but at least the file name is more helpful than it used to be.

=item 2005-08-24

Added RoughDraft of "ParseInfo.pm" based on a reply to a question via email from Alexander.

=item 2005-07-30

Fixed return value from Text::MicroMason::Cache::File set() method; thanks to Alan Ferrency for the helpful bug report and test case.

=item 2005-07-24

Extracted HasParams and StoreOne mixins from HTMLTemplate. 

Added QuickTemplate mixin class with emulation for Text::QuickTemplate.

=item 2005-07-20

Added reference links to benchmarking section in Docs/ToDo.pod.

Added "local $^W;" in two test scripts to silence extra warning on Perl 5.005_04.

Bumped version number.

=back

=head2 Version 1.991

=over 4

=item 2005-07-19

Bumped version number.

Added ApacheHandler configuration options and basic documentation.

=item 2005-07-18

Added PLP mixin class with emulation for PLP templating package.

Added the skeleton for a basic ApacheHandler class.

Improved strict_root support in TemplateDir and added documentation for it.

Extracted argument passing logic from TextTemplate to create new PassVariables mixin.

Added Sprintf syntax mixin and basic tests.

=item 2005-07-17

Added DoubleQuote syntax mixin and basic tests.

=back

=head2 Version 1.99

=over 4

=item 2005-07-09

Added AllowGlobals mixin based on suggestion and patch from Jonas Alves. Reviewed similar functionality in HTML::Mason and added docs and tests.

Extracted debug options to separate Debug mixin class.

Changed name of internal new() method to create(), while propogating the mixin finding behavior from the Text::MicroMason facade up to Text::MicroMason::Base.

Renamed examples directory to samples.

Added read_handle method and output_sub attribute.

Added assembler_vars method and removed %Assembler global.

=item 2004-12-01

Fixed early exit of t/42-text_template.t to skip test if missing Text::Balanced.

=item 2004-11-30

Renamed the Mason compatibilty class to HTMLMason to match other syntax classes. Changed it to be a mixin like the other classes, instead of a subclass.

Switched to use of Class::MixinFactory and removed old class() and NEXT() methods. 

Extracted new interpret() method from inside of compile().

Adjusted setting of options and attributes so that this doesn't happen within interpret().

Extracted list of related modules to new Docs::Related POD file.

=back

=head2 Version 1.98

=over 4

=item 2004-11-29

Fixed unprotected test dependency on Text::Balanced for TextTemplate emulation.

Fixed unexpected side-effect of change to parsing for single-character Filter flags.

Minor adjustments to POD documentation.

=back

=head2 Version 1.97

=over 4

=item 2004-11-28

Moved to do list into new pod file. Moved extra pod files into Docs namespace.

Added _printable to default set of functions in Filters. Tweaked parse_filters  and get_filter_functions methods.

Changed internal names for ouput and include token types to expr and file. Corrected typo in one of the assembler token names.

Adjusted $Carp::CarpLevel in Base croak_msg().

Fixed test failure in t/33-filters.t reported by William Kern.

=item 2004-10-24

Fixed typo in ServerPages example; thanks to William Kern for pointing it out.

=item 2004-10-20

Adjustments to documentation in top-level package.  

=back


=head2 Version 1.96

=over 4

=item 2004-10-19

Added PostProcess mixin class at the suggestion of Alan Ferrency.

Renamed a few keys in the hash returned by assembler_rules(). 

Moved syntax documentation to Mason subclass.

=back

=head2 Version 1.95

=over 4

=item 2004-10-19

Fixed problem with extra semicolons breaking code statements broken onto
multiple % code lines; thanks to Alan Ferrency for test code to isolate
the problem, now added to regression tests.

=item 2004-10-17

Documentation updates.

=back


=head2 Version 1.94

=over 4

=item 2004-10-17

Factored subclass-specific lex_token() method out from superclass lex() method.

Added Embperl mixin class with emulation for HTML::Embperl.

Merged Devel.pod back in to other package documentation.

=item 2004-10-16

Replaced assembler attribute with assembler_rules() method.

Added Mason subclass and moved some functionality to there from Base.

Documentation updates.

=item 2004-10-15

Added HTMLTemplate mixin class with emulation for HTML::Template.

=item 2004-10-13

Added TextTemplate mixin class with emulation for Text::Template.

=back

=head2 Version 1.93

=over 4

=item 2004-10-12

Instead of run-time eval of @MIXIN to fix SUPER resolution, now using a new SUPER method.

=item 2004-10-11

Documentation updates.

=back

=head2 Version 1.92

=over 4

=item 2004-10-11

Uploaded to CPAN to fix packaging issue with 1.9_1.

=back


=head2 Version 1.91

=over 4

=item 2004-10-10

Posted description of mixin mechanism to PerlMonks for discussion.

Debugged CompileCache and finished ExecuteCache. Added test scripts.

Debugged TemplateDir and added test script.

Implemented support for one-time options passed to compile that override other attributes. Adjusted Safe facade to prevent this from being done there, in order to avoid escapes from a Safe compartment.

=item 2004-10-09

Reorganized t/ directory.

=back


=head2 Version 1.90

=over 4

=item 2004-10-08

Documentation updates.

=item 2004-10-05

Documentation updates.

=back


=head2 Version 1.55

=over 4

=item 2004-09-23

Documentation updates.

=back


=head2 Version 1.54

=over 4

=item 2004-09-22

Renamed "interpret" method to "execute" for consistency with function interface.

Moved try_ functionality to new ErrorCatching mixin.

Generalized behavior of assemble method; moved template elements into %Assembly hash.

=back


=head2 Version 1.53

=over 4

=item 2004-09-22

Moved Safe functionality to new Safe mixin.

Moved filtering functionality to new Filters mixin.

=item 2004-09-21

Added mixin inheritance hacking logic based on DBIx::SQLEngine::Record::Class.

=back


=head2 Version 1.52

=over 4

=item 2004-09-19

Extracted Changes to separate POD document.

=item 2004-09-18

Additional work.

=back


=head2 Version 1.51

=over 4

=item 2004-09-17

Refactoring of method interface to merge compie and interpretation into single subroutines with parameters to indicate whether we're reading text or a file.

Added initial support for filtering interpolated expressions based on a patch and extended discussion with Alan Ferrency.

Packaged as version 1.51 but not released to CPAN.

=item 2004-09-16

Refactored to object-oriented implementation to allow subclassing. Inspired by discussion with Alan Ferrency about how to extend functionality.

Started CodeCache subclass based on experimental caching code included in 1.07.

Started TemplateDir subclass with base directory and relative path calculations based on a patch from Tommi Maekitalo.

Incorporated patch from Tommi Maekitalo to put default values from an <%args> block into the %ARGS variable as well as the separate named variables.

Created ServerPages subclass based on feature request from William Kern. 

=item 2004-09-15

Moved package documentation into separate ReadMe.pod.

=back


=head1 VERSION 1 HISTORY

=head2 Version 1.07

=over 4

=item 2003-09-26

Discard line break after <%perl> block as suggested by Tommi
Maekitalo. Note that removing these line breaks may affect the
rendering of your current templates! Although I am typically hesitant
to change established behavior, this does improve the template
output and brings us into line with HTML::Mason's behavior.

Added $Debug flag and support for <%args> blocks based on a
contribution by Tommi Maekitalo.

Adjusted internals to allow block reordering, and added support
for <%init> and <%once>.

Released as Text-MicroMason-1.07.tar.gz.

=back

=head2 Version 1.06

=over 4

=item 2003-09-04

Changed the way that subroutines were scoped into the
Text::MicroMason::Commands namespace so that Safe compartments with
separate namespaces and shared symbols have the visibility that
one would expect.

Fixed a bug in which an unadorned percent sign halted parsing, as
reported by William Kern at PixelGate. Added a test to the end of
6-regression.t that fails under 1.05 but passes under 1.06 to
confirm this.

Simplified parser regular expressions by using non-greedy matching.

Added documentation for *_file() functions. 
Corrected documentation to reflect the fact that template code is not compiled with "use safe" in effect by default, but that this might change in the future.

Released as Text-MicroMason-1.06.tar.gz.

=back

=head2 Version 1.05

=over 4

=item 2003-08-11

Adjusted regular expression based on parsing problems reported by Philip King and Daniel J. Wright, related to newlines and EOF. Added regression tests that fail under 1.04 but pass under 1.05 to ensure these features keep working as expected. 

Added non-printing-character escaping to parser failure and debugging messages to better track future reports of whitespace-related bugs.

Moved tests from test.pl into t/ subdirectory. 

Added experimental suppport for file code cache in compile_file_codecache.

Released as Text-MicroMason-1.05.tar.gz.

=back

=head2 Version 1.04

=over 4

=item 2002-06-23 

Adjusted regular expression based on parsing problems reported by Mark Hampton. 

Added file-include support with <& ... &> syntax. 

Documentation tweaks. Adjusted version number to simpler 0.00 format.
Released as Text-MicroMason-1.04.tar.gz.

=item 2002-01-14 

Documentation tweaks based on feedback from Pascal Barbedor. Updated author's contact information.

=back

=head2 Version 1.0.3

=over 4

=item 2001-07-01

Renamed from HTML::MicroMason to Text::MicroMason. Documentation tweaks. Released as Text-MicroMason-1.0.3.tar.gz.

=back

=head2 Version 1.0.2

=over 4

=item 2001-04-10 

Munged interface for clarity. Added Safe support. 
Adjusted docs to reflect feedback from mason-users.
Released as HTML-MicroMason-1.0.2.tar.gz.

=back

=head2 Version 1.0.1

=over 4

=item 2001-03-28 

Parser tweakage; additional documentation.
Added Exporter support.
Released as HTML-MicroMason-1.0.1.tar.gz.

=item 2001-03-26 

Added try_interpret; documented error messages.

=back

=head2 Version 1.0.0

=over 4

=item 2001-03-23 

Extended documentation; added makefile, test script. 
Renamed accumulator to $OUT to match Text::Template.
Released as HTML-MicroMason-1.0.0.tar.gz.

=item 2001-03-22 

Created.

=back


=head1 SEE ALSO

For distribution, installation, support, copyright and license 
information, see L<Text::MicroMason::Docs::ReadMe>.

=cut
