Line # Revision Author
1 17 abw #========================================================================
2 #
3 1093 abw # Changes
4 17 abw #
5 # DESCRIPTION
6 1093 abw # Revision history for the Template Toolkit.
7 17 abw #
8 # AUTHOR
9 637 abw # Andy Wardley <abw@wardley.org>
10 17 abw #
11 #========================================================================
12
13 797 abw #------------------------------------------------------------------------
14 1177 abw # Version 2.21 - Not yet officially released - currently at 2.20_01
15 1172 abw #------------------------------------------------------------------------
16
17 * Tweaked Template::Parser to work better with the ANYCASE option. It
18 now knows that anything following a dotop cannot be a keyword so that
19 you can write data.last without the 'last' bit being interpreted as the
20 LAST keyword. Thanks to Sean McAfee for the post that inspired it.
21 http://lists.tt2.org/pipermail/templates/2008-September/010462.html
22
23 1177 abw * Fixed a broken test for Apache::Util in the html_entity filter. Added
24 the use_html_entities() and use_apache_util() class methods to
25 Template::Filters to allow end-user selection of one or the other.
26 http://rt.cpan.org/Public/Bug/Display.html?id=40870
27 http://template-toolkit.org/svnweb/Template2/revision/?rev=1177
28 1172 abw
29 1177 abw
30 1172 abw #------------------------------------------------------------------------
31 1167 abw # Version 2.20 - 13th August 2008
32 1093 abw #------------------------------------------------------------------------
33
34 1136 abw * Updated all the documentation.
35
36 * Restored the GIF images that got mangled in the switch from CVS to
37 Subversion.
38
39 * Fixed the Makefile.PL to pre-glob the tests to keep things working
40 smoothly in Win32.
41 http://rt.cpan.org/Ticket/Display.html?id=25573
42
43 * Applied a patch to Template::Directives from Ben Morrow to fix the
44 SWITCH/CASE directive when matching strings containing regex metacharacters.
45 http://rt.cpan.org/Ticket/Display.html?id=24183
46
47 * Applied a patch to Template::Parser from Koichi Taniguchi to make it
48 treat TAGS with case sensitivity.
49 http://rt.cpan.org/Ticket/Display.html?id=19975
50
51 * Changed html_entity_filter_factory() in Template::Filters to only look for
52 Apache::Utils and HTML::Entities once.
53 http://rt.cpan.org/Ticket/Display.html?id=19837
54
55
56 Template::Stash
57 ---------------
58
59 1093 abw * Applied a patch to Template::Stash from Jess Robinson which allows you
60 to call a list method on a single object and have it automatically
61 upgraded to a single item list. Changed the XS Stash to do the same.
62 1136 abw http://lists.tt2.org/pipermail/templates/2006-November/009115.html
63 1093 abw
64 1136 abw * Fixed a minor bug in the XS Stash which prevented it from updating
65 hash entries with empty, but defined keys. Thanks to Yitzchak
66 Scott-Thoennes for reporting the problem.
67 http://lists.tt2.org/pipermail/templates/2007-November/009819.html
68
69 * Applied a patch from Alexandr Ciornii to make the XS Stash compile
70 cleanly under VC++ 6.0 and with Sun's C compiler.
71 http://rt.cpan.org/Ticket/Display.html?id=20291
72 1093 abw
73 1136 abw
74 Template::Provider
75 ------------------
76
77 1093 abw * Fixed a minor bug in the Template::Provider code added in 2.19 that
78 caused errors in templates to only be reported once. Subsequent
79 fetches incorrectly returned 'not found' instead of repeating the
80 error.
81
82 1136 abw * Made Template::Provider use File::Spec->catfile instead of using '/'
83 and letting Perl worry about Doing The Right Thing.
84 http://rt.cpan.org/Ticket/Display.html?id=34489
85 1093 abw
86 1136 abw * Applied patch from Lyle Brooks to add binmode to the _template_content()
87 method in Template::Provider.
88 http://rt.cpan.org/Ticket/Display.html?id=38075
89
90 * Applied patch from Ted Carnahan to silence UNIVERSAL::isa warnings in
91 Template::Provider.
92 http://rt.cpan.org/Ticket/Display.html?id=25468
93
94 * Applied patch to Template::Provider from Andrew Hamlin which works around
95 a bug in Strawberry Perl on Win32.
96 http://rt.cpan.org/Ticket/Display.html?id=34578
97
98
99 Template::VMethods
100 ------------------
101
102 * Applied a patch from Paul "LeoNerd" Evans to make the list.slice vmethod
103 work properly with negative indices.
104 http://lists.tt2.org/pipermail/templates/2008-March/010105.html
105
106
107 Plugins
108 -------
109
110 * Added the Math plugin and related files to the MANIFEST so they
111 actually get shipped out as part of the distribution. D'Oh!
112 http://rt.cpan.org/Ticket/Display.html?id=27375
113
114 * Added the Scalar plugin which adds the .scalar vmethod for calling
115 object methods and subroutines in scalar context.
116
117 * Added Template::Plugin::Assert which allows you to assert that values
118 are defined.
119
120 * Changed Template::Plugin::Filter to weaken the $self reference to avoid
121 circular references and memory leaks. Thanks to Masahiro Honma for
122 reporting the problem and suggesting the fix.
123
124 * Applied patch from Ronald J Kimball to make Template::Plugin::Date accept
125 dates with the year coming first.
126 http://lists.tt2.org/pipermail/templates/2007-July/009540.html
127
128 * Added C<1;> to the end of a few plugin modules that were missing it.
129
130 ttree
131 -----
132
133 1093 abw * Changed the --accept option in ttree to match against the full file
134 path (relative to --src dir) rather than just the file name. This
135 makes it behave the same way as the --ignore option.
136
137 1136 abw * Applied patch from Lyle Brooks to add binmode to the process()
138 call in ttree.
139 http://rt.cpan.org/Ticket/Display.html?id=38076
140
141 * Added a patch from Nigel Metheringham also to set binmode in ttree
142 but via a configuration option.
143 https://rt.cpan.org/Ticket/Display.html?id=30760
144 1093 abw
145 1136 abw
146
147 1093 abw #------------------------------------------------------------------------
148 1069 abw # Version 2.19 - 27th April 2007
149 #------------------------------------------------------------------------
150
151 * Applied a patch to t/fileline.t from Steffen Müller which fixes the
152 problems running on Win32 with backslashes in paths.
153
154 https://rt.cpan.org/Ticket/Display.html?id=20488
155
156 * Applied a patch to the XS Stash from Randy Kobes which fixes some other
157 Win32 problems.
158
159 1136 abw http://lists.tt2.org/pipermail/templates/2007-February/009247.html
160 1069 abw
161 * Applied another patch to the XS Stash from Steve Peters which fixes
162 a problem with tied hashes under more recent version of Perl.
163
164 1136 abw http://lists.tt2.org/pipermail/templates/2007-January/009181.html
165 1069 abw
166 * Fixed a problem in the Perl Stash when using objects that have
167 overloaded comparison operators. Thanks to Randal Schwartz, Tatsuhiko
168 Miyagawa and Daisuke Maki for their contributions.
169
170 1136 abw http://lists.tt2.org/pipermail/templates/2007-March/009265.html
171 1069 abw
172 * Applied a patch from Bill Moseley to Template::Provider which adds
173 negative caching and moves some functionality into separate methods
174 to make subclassing easier. Also added the STAT_TTL configuration
175 parameter.
176
177 1136 abw http://lists.tt2.org/pipermail/templates/2007-January/009183.html
178 1069 abw
179 * Added the url filter as a less aggressive form of the uri filter.
180 Whereas the uri filter now (from v2.16 onwards) encodes all the
181 reserved characters (@, :, /, etc.) as per RFC2396, the url filter
182 leaves them intact and thus behaves just like the uri filter used
183 to.
184
185 1136 abw http://lists.tt2.org/pipermail/templates/2007-March/009277.html
186 1069 abw
187 #------------------------------------------------------------------------
188 # Version 2.18a - 9th February 2007
189 #------------------------------------------------------------------------
190
191 * Applied a patch from Steve Peters to the Stash.xs to allow it to
192 compile with bleadperl 5.9.x
193
194 https://rt.cpan.org/Public/Bug/Display.html?id=22506
195
196 #------------------------------------------------------------------------
197 1038 abw # Version 2.18 - 9th February 2007
198 #------------------------------------------------------------------------
199
200 * Merged in Adam's changes in 2.16 and 2.17 back into the developer CVS
201 repository and added his name to the credits.
202
203 * Changed the parser grammar to accept expressions as arguments to a
204 subroutine, method or virtual method call. I'm embarrassed to admit
205 that it was a one line change that could (and should) have been made
206 long ago, if only I had realised just how trivial it was. Anyway,
207 you can now write nested expressions like this:
208
209 [% add(a+5, b < 10 ? c : d + e*5) %]
210
211 * Put the t/fileline.t test back in as this was fixed in 2.15a
212
213 * Added the Template::Toolkit documentation-only module.
214
215 #------------------------------------------------------------------------
216 # Version 2.17 - 8th Feb 2007
217 #------------------------------------------------------------------------
218
219 Another interim release from Adam Kennedy.
220
221 * Change in Makefile.PL to force an upgrade to File::HomeDir 0.64 on darwin.
222 This is due to problems caused by changes made to Perl on the new Intel
223 versions of Mac OS X.
224
225 * skip_all filelines.t on darwin
226
227 #------------------------------------------------------------------------
228 # Version 2.16 - 23rd Jan 2007
229 #------------------------------------------------------------------------
230
231 Interim release from Adam Kennedy.
232
233 * Skip fileline.t on Win32, as it has some hard-coded path seperator
234 assumptions. This will be fixed more comprehensively later.
235
236 * Handle spurious errors in Makefile.PL when a dev version of
237 ExtUtils::MakeMaker is installed.
238
239 * Don't say "nmake" on Win32 when $Config{make} is 'dmake'.
240 This corrects the message on Strawberry Perl.
241
242
243 #------------------------------------------------------------------------
244 # Version 2.15c - Not released ## DEVELOPER RELEASE ##
245 #------------------------------------------------------------------------
246
247 * Fixed a bug in Template::Parser which caused it to get confused about
248 block names if it encountered a syntax error inside a BLOCK. Thanks
249 to Bill Moseley for reporting the problem.
250
251 1136 abw http://lists.tt2.org/pipermail/templates/2006-July/008815.html
252 1038 abw
253 * Fixed a minor buglet in Template::Provider which came to light while
254 investigating the above problem. If a previously cached template is changed
255 on disk and then fails to compile, the provider now invalidates the cache
256 entry immediately. Without this fix, the provider would report the error
257 once, then reuse the cached good version of the template until $STAT_TTL
258 ticked over when it would try to load and compile the disk version again.
259 The problem was that error messages were only reported once every $STAT_TTL
260 second(s) and any requests for the same template in the interim time would
261 mysteriously work. This way errors get reported consistently and immediately
262 and no-one has to waste an afternoon trying to figure out where the errors
263 went!
264
265 #------------------------------------------------------------------------
266 1022 abw # Version 2.15b - 30th May 2006 ## DEVELOPER RELEASE ##
267 1020 abw #------------------------------------------------------------------------
268
269 * Changed the uri filter to escape all reserved characters as per
270 URI::Escape and RFC2396. This now includes &, @, /, ;, :, =, +, ?
271 and $ which were previously not escaped. Thanks to islue@cpan.org
272 for reporting the problem.
273
274 http://rt.cpan.org/Ticket/Display.html?id=19593
275
276 * Also changed the uri filter to encode all wide characters as the
277 equivalent UTF escapes. Thanks to Jonathan Rockway for reporting
278 the problem.
279
280 http://rt.cpan.org/Ticket/Display.html?id=19354
281
282 1022 abw * Fixed the redirect filter to not support relative paths. Thanks to
283 Paul Seamons for spotting the problem and providing a solution.
284
285 1020 abw * Moved all the virtual methods out of Template::Stash and into
286 a new Template::VMethods module.
287
288 * Fixed the version number of Template::Stash which had rolled over
289 to 2.102 making it appear to predate the 2.86 stash in TT v2.14.
290 1022 abw Thanks to Randal Schwartz for reporting the problem. Changed all
291 version numbers in other modules to be a hard-coded numbers instead
292 of grokking it automagically from the CVS revision.
293 1020 abw
294 * Changed the _recover() method of Template::Service to check if the
295 error thrown is a Template::Exception object rather than just a
296 reference. Thanks to David Wheeler for reporting the problem.
297
298 http://rt.cpan.org/Ticket/Display.html?id=17630
299
300 * Fixed the some tests in stash.t and stash-xs.t which were failing
301 under Perl 5.6.2 due to a slightly different error message being
302 generated. Thanks to Anton Berezin for reporting the problem.
303
304 * Fixed a bug in the Template::Provider _load() method to check that
305 $data is a hash ref before trying to mess with its innards. Thanks
306 1038 abw to barbie@cpan.org for reporting the problem.
307 1020 abw
308 1038 abw http://rt.cpan.org/Ticket/Display.html?id=18653
309
310
311 1020 abw #------------------------------------------------------------------------
312 # Version 2.15a - 29th May 2006 ## DEVELOPER RELEASE ##
313 #------------------------------------------------------------------------
314
315 * Removed the latex filter from Template::Filters and related config
316 variables from Template::Config
317
318 * Changed the t/fileline.t test to remove the line number from what Perl
319 reports as "(eval $line)". It appears to get the $line wrong on
320 FreeBSD, although the correct line number is reported following that
321 so the tests still do the right thing. Thanks to Anton Berezin for
322 reporting the problem.
323
324 * Changed the t/compile3.t test to do something similar.
325
326
327 #------------------------------------------------------------------------
328 1002 abw # Version 2.15 - 26th May 2006
329 853 darren #------------------------------------------------------------------------
330
331 1002 abw Chomping Options
332 ----------------
333
334 * Added the CHOMP_GREEDY option and '~' chomping flag. Changed
335 CHOMP_COLLAPSE to greedily chomp all whitespace (including multiple
336 newlines) and replace it with a single space. Previously it only
337 chomped one line. Renamed the CHOMP_ALL option to CHOMP_ONE which
338 makes more sense. CHOMP_ALL is still provided as an alias for
339 CHOMP_ONE for backwards compatibility. Thanks to Paul Seamons for
340 doing all the hard work on this.
341
342 1136 abw http://lists.tt2.org/pipermail/templates/2006-February/thread.html#8354
343 1002 abw
344 * Added code to the replace text virtual method to use a faster and
345 simpler implementation if the replacement text doesn't contain any
346 back references. Thanks to Josh Rosenbaum for all his efforts on
347 this.
348
349 1136 abw http://lists.tt2.org/pipermail/templates/2006-February/008344.html
350 1002 abw
351 943 abw Stash
352 -----
353 853 darren
354 1002 abw * Changed various tests for private/hidden variables (starting '_'
355 or '.') to use a regex defined in the $PRIVATE package variable in
356 Template::Stash. This can be redefined or undefined. Note that
357 the XS Stash only looks to see if $PRIVATE is defined or not, and
358 currently hard-codes the regex.
359
360 Plugins
361 -------
362
363 * Changed the Image plugin tag() method to call the name() method
364 instead of accessing the name directly, making it easier for
365 subclasses to provide an alternate name. Thanks to Cees Hek for
366 his patch.
367
368 1136 abw http://lists.tt2.org/pipermail/templates/2006-February/008423.html
369 1002 abw
370 * Change the AUTOLOAD regex in the Table plugin to be more robust.
371
372 1136 abw http://lists.tt2.org/pipermail/templates/2006-May/008602.html
373 1002 abw
374 Documentation
375 -------------
376
377 * Added the Template::Toolkit documentation pointing people to
378 the right place.
379
380 * Updated the Template::Stash::XS documentation to remove the
381 "experimental" description and tidy things up a bit.
382
383
384 #------------------------------------------------------------------------
385 # Version 2.14a - 2nd February 2006 ## DEVELOPER RELEASE ##
386 #------------------------------------------------------------------------
387
388 Stash
389 -----
390
391 943 abw * Activated a patch in Template::Stash from Stephen Howard which adds
392 1002 abw code for the full set of fallbacks for dot ops called against
393 objects which don't implement the specific method. For example
394 [% hashobj.vmethod %] [% listobj.2 %] and [% listobj.vmethod %] now
395 943 abw all work with the Perl Template::Stash. Added code to the XS Stash
396 to do the same and updated tests.
397
398 http://template-toolkit.org/pipermail/templates/2003-December/005417.html
399
400 * Added full support for tied hashes and tied lists in the XS Stash.
401 Added some further tests to make sure it's all working as expected.
402
403 1136 abw http://lists.tt2.org/pipermail/templates/2006-January/008266.html
404 943 abw
405 1002 abw * Applied path from Slaven Rezic to Template::Stash::XS to check
406 return code in tt_fetch_item() in a way which plays nicely with tied
407 hashes.
408 943 abw
409 http://rt.cpan.org/Ticket/Display.html?id=7830
410
411 1002 abw * Changed Template::Stash and Template::Stash::XS to evaluate list
412 943 abw vmethods in lvalues.
413
414 1136 abw http://lists.tt2.org/pipermail/templates/2006-January/008198.html
415 943 abw
416 * Changed Template::Stash to be a little more strict about what it
417 1002 abw considers a failed method call. This allows exception thrown within
418 called methods to be propagated correctly rather than being ignored
419 as undefined method. Thanks to Dave Howorth, Tom Insam and Stig
420 Brautaset for reporting the problem and providing fixes.
421 943 abw
422 1136 abw http://lists.tt2.org/pipermail/templates/2005-April/007375.html
423 http://lists.tt2.org/pipermail/templates/2006-February/008367.html
424 943 abw
425 1002 abw * Removed redundant performance profiling code from
426 Template::Stash::XS. Must check with Doug that this is OK and he's
427 not still using it...
428 943 abw
429 1002 abw
430 943 abw Virtual Methods
431 ---------------
432
433 1002 abw * Added the scalar.remove, scalar.substr, hash.delete, hash.items,
434 hash.pairs, list.import and list.hash virtual methods.
435 943 abw
436 1002 abw * Changed the scalar.replace method to work properly with back
437 references ($1, $2, etc) by incorporating ideas, code and tests from
438 Nik Clayton, Paul Seamon, Sergey Martynoff, Josh Rosenbaum and
439 others.
440 943 abw
441 1136 abw http://lists.tt2.org/pipermail/templates/2006-February/008306.html
442 http://lists.tt2.org/pipermail/templates/2006-February/008326.html
443 943 abw
444 1002 abw * Changed list.push and list.unshift to accept multiple arguments,
445 thanks to Bill Moseley.
446
447 1136 abw http://lists.tt2.org/pipermail/templates/2006-January/008294.html
448 1002 abw
449 * Fixed the split scalar virtual method which wasn't accepting the
450 second argument (limit) correctly. Thanks to Josh Rosenbaum for
451 pointing out the problem.
452
453 1136 abw http://lists.tt2.org/pipermail/templates/2005-October/007982.html
454 943 abw
455 1002 abw * Documented the fact that hash.list is going to change in the future,
456 recommending people switch to hash.pairs.
457 943 abw
458 1136 abw http://lists.tt2.org/pipermail/templates/2006-January/008256.html
459 http://lists.tt2.org/pipermail/templates/2006-February/008312.html
460 943 abw
461 1002 abw * Added the global option to the 'match' scalar virtual method.
462 943 abw
463 1002 abw * Changed $element to $component in Template::Context to fix callers
464 bug, thanks to Andy Maas who identified the problem and found the
465 solution:
466 943 abw
467 1136 abw http://lists.tt2.org/pipermail/templates/2004-December/007020.html
468 943 abw
469 1002 abw * Changed the sort and nsort list virtual methods to always return
470 943 abw references to lists, avoiding any ambiguity in return results.
471
472 1002 abw * Changed the hash.defined method to do the same thing as
473 scalar.defined when called without arguments. Added list.defined to
474 do the same thing as hash.defined.
475 943 abw
476 http://rt.cpan.org/Ticket/Display.html?id=9094
477
478 1002 abw * Moved all the tests into t/vmethods/*
479 943 abw
480 1002 abw
481 943 abw Plugins
482 -------
483
484 * Added the $Template::Plugins::PLUGIN_BASE package variable to define
485 1002 abw the default 'Template::Plugin' value for the PLUGIN_BASE option. By
486 clearing this value before calling the Template new() constructor,
487 you can avoid having Template::Plugin added to the PLUGIN_BASE by
488 943 abw default. Also changed PLUGINS search to look for lower case plugin
489 1002 abw name as well as case-specific name. Thanks yet again Josh for
490 943 abw addressing this issue.
491
492 1136 abw http://lists.tt2.org/pipermail/templates/2006-January/008225.html
493 943 abw
494 * Applied a single character patch from Lubomir Host which fixes the
495 user attribute in Template::Plugin::File.
496
497 * Added the Math Plugin to MANIFEST.
498
499 * Changed the URL plugin to ignore parameters that are unset (e.g.
500 defined but zero length)
501
502 * Applied two patches to the Image plugin from Bill Moseley to escape
503 attributes in the tag() method and to provide the 'file' options.
504 Also adds proper documentation for the 'root' option.
505
506 1136 abw http://lists.tt2.org/pipermail/templates/2005-November/008086.html
507 http://lists.tt2.org/pipermail/templates/2005-December/008189.html
508 943 abw
509 * Added the $JOINT package variable to Template::Plugin::URL to
510 provide a work-around for the URL plugin which incorrectly (as
511 we now know) encodes '&' as '&amp;'
512
513 http://rt.cpan.org//Ticket/Display.html?id=11551
514 1136 abw http://lists.tt2.org/pipermail/templates/2005-December/008158.html
515 943 abw
516 * Added substr() method to the String plugin, as suggested here:
517
518 http://rt.cpan.org/Ticket/Display.html?id=2619
519
520 * Moved all XML plugins and related tests into a separate Template-XML
521 distribution.
522
523 * Moved DBI plugin and tests into Template-DBI distribution.
524