This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Make cxinc member of the public API
[perl5.git] / ext / Test-Harness / Changes
1 Revision history for Test-Harness
2
3 3.17    2009-05-05
4         - Changed the 'failures' so that it is overridden by verbosity rather
5           than the other way around.
6         - Added the 'comments' option, most useful when used in conjunction
7           with the 'failures' option.
8         - Deprecated support for Perls earlier than 5.6.0.
9         - Allow '-I lib' as well as '-Ilib' in $Test::Harness::Switches
10           (regression).
11         - Restore old skip parsing semantics for TAP < v13. Refs #39031.
12         - Numerous small documentation fixes.
13         - Remove support for fork-based parallel testing. Multiplexed
14           parallel testing remains.
15
16 3.16    2009-02-19
17         - Fix path splicing on platforms where the path separator
18           is not ':'.
19         - Fixes/skips for failing Win32 tests.
20         - Don't break with older CPAN::Reporter versions.
21
22 3.15    2009-02-17
23         - Refactor getter/setter generation into TAP::Object.
24         - The App::Prove::State::Result::Test now stores the parser object.
25         - After discussion with Andy, agreed to clean up the test output
26           somewhat.  t/foo.....ok becomes t/foo.t ... ok
27         - Make Bail out! die instead of exiting. Dies with the same
28           message as 2.64 for (belated) backwards compatibility.
29         - Alex Vaniver's patch to refactor TAP::Formatter::Console into
30           a new class, TAP::Formatter::File and a common base class: 
31           TAP::Formatter::Base.
32         - Fix a bug where PERL5LIB might be put in the wrong spot in @INC.
33           #40257
34         - Steve Purkis implemented a plugin mechanism for App::Prove.
35
36 3.14    2008-09-13
37         - Created a proper (ha!) API for prove state results and tests.
38         - Added --count and --nocount options to prove to control X/Y display
39           while running tests.
40         - Added 'fresh' state option to run test scripts that have been
41           touched since the test run.
42         - fixed bug where PERL5OPT was not properly split  
43         - fixed regex in _filtered_inc. Fixes #39248. Thanks Slaven.
44
45 3.13    2008-07-27
46         - fixed various closure related leaks
47         - made prove honour HARNESS_TIMER
48         - Applied patches supplied by Alex Vandiver
49           - add 'rules' switch to prove: allows parallel execution rules
50             to be specified on the command line.
51           - allow '**' (any path) wildcard in parallel rules
52           - fix bug report address
53           - make tprove_gtk example work again.
54
55 3.12    2008-06-22
56         - applied Steve Purkis' huge refactoring patch which adds
57           configurable factories for most of the major internal classes.
58         - applied David Wheeler's patch to allow exec to be a code
59           reference.
60         - made tests more robust in the presence of -MFoo in PERL5OPT.
61
62 3.11    2008-06-09
63         - applied Jim Keenan's patch that makes App::Prove::run return a
64           rather than exit (#33609)
65         - prove -r now recurses cwd rather than 't' by default (#33007)
66         - restored --ext switch to prove (#33848)
67         - added ignore_exit option to TAP::Parser and corresponding
68           interfaces to TAP::Harness and Test::Harness. Requested for
69           Parrot.
70         - Implemented rule based parallel scheduler.
71         - Moved filename -> display name mapping out of formatter. This
72           prevents the formatter's strip-extensions logic from stripping
73           extensions from supplied descriptions.
74         - Only strip extensions from test names if all tests have the
75           same extension. Previously we stripped extensions if all names
76           had /any/ extension making it impossible to distinguish tests
77           whose name differed only in the extension.
78         - Removed privacy test that made it impossible to subclass
79           TAP::Parser.
80         - Delayed initialisation of grammar making it easier to replace
81           the TAP::Parser stream after instantiation.
82         - Make it possible to supply import parameters to a replacement
83           harness with prove.
84         - Make it possible to replace either _grammar /or/ _stream
85           before reading from a TAP::Parser.
86
87 3.10    2008-02-26
88         - fix undefined value warnings with bleadperl.
89         - added pragma support.
90         - fault unknown TAP tokens under strict pragma.
91
92 3.09    2008-02-10
93         - support for HARNESS_PERL_SWITCHES containing things like 
94           '-e "system(shift)"'.
95         - set HARNESS_IS_VERBOSE during verbose testing.
96         - documentation fixes.
97
98 3.08    2008-02-08
99         - added support for 'out' option to
100           Test::Harness::execute_tests. See #32476. Thanks RENEEB.
101         - Fixed YAMLish handling of non-alphanumeric hash keys.
102         - Added --dry option to prove for 2.64 compatibility.
103
104 3.07    2008-01-13
105         - prove now supports HARNESS_PERL_SWITCHES.
106         - restored TEST_VERBOSE to prove.
107
108 3.06    2008-01-01
109         - Skip t/unicode.t if PERL_UNICODE set. Fixes #31731.
110           Thanks Lukas.
111         - App::Prove::State no longer complains about tests that
112           are deleted.
113         - --state=new and --state=old now consider the modification time
114           of test scripts.
115         - Made test suite core-compatible.
116
117 3.05    2007-12-09
118         - Skip unicode.t if Encode unavailable
119         - Support for .proverc files.
120         - Clarified prove documentation.
121
122 3.04    2007-12-02
123         - Fixed output leakage with really_quiet set.
124         - Progress reports for tests without plans now show
125           "143/?" instead of "143/0".
126         - Made TAP::Harness::runtests support aliases for test names.
127         - Made it possible to pass command line args to test programs
128           from prove, TAP::Harness, TAP::Parser.
129         - Added --state switch to prove.
130
131 3.03    2007-11-17
132         - Fixed some little bugs-waiting-to-happen inside
133           TAP::Parser::Grammar.
134         - Added parser_args callback to TAP::Harness.
135         - Made @INC propagation even more compatible with 2.64 so that
136           parrot still works *and* #30796 is fixed.
137
138 3.02    2007-11-15
139         - Process I/O now unbuffered, uses sysread, plays better with
140           select. Fixes #30740.
141         - Made Test::Harness @INC propagation more compatible with 2.64.
142           Was breaking Parrot's test suite.
143         - Added HARNESS_OPTIONS (#30676)
144
145 3.01    2007-11-12
146         - Fix for RHEL incpush.patch related failure.
147         - Output real time of test completion with --timer
148         - prove -b adds blib/auto to @INC
149         - made SKIP plan parsing even more liberal for pre-v13 TAP
150
151 3.00    2007-11-06
152         - Non-dev release. No changes since 2.99_09.
153
154 2.99_09 2007-11-05
155         - Implemented TODO-in-PLAN syntax for TAP version 12 and earlier.
156
157 2.99_08 2007-11-04
158         - Tiny changes. New version pushed to get some smoke coverage.
159
160 2.99_07 2007-11-01
161         - Fix for #21938: Unable to handle circular links
162         - Fix for #24926: prove -b and -l should use absolute paths
163         - Fixed prove switches. Big oops. How the hell did we miss that?
164         - Consolidated quiet, really_quiet, verbose into verbosity.
165         - Various VMS related fixes to tests
166
167 2.99_06 2007-10-30
168         - Added skip_all method to TAP::Parser.
169         - Display reason for skipped tests.
170         - make test now self tests.
171
172 2.99_05 2007-10-30
173         - Fix for occasional rogue -1 exit code on Windows.
174         - Fix for @INC handling under CPANPLUS.
175         - Added real time to prove --timer output
176         - Improved prove error message in case where 't' not found and
177           no tests named.
178
179 2.99_04 2007-10-11
180         - Fixed bug where 'All tests successful' would not be printed if bonus
181           tests are seen.
182         - Fixed bug where 'Result: FAIL' would be printed at the end of a test
183           run if there were unexpectedly succeeding tests.
184         - Added -M, -P switches to allow arbitrary modules to be loaded
185           by prove. We haven't yet defined what they'll do once they
186           load but it's a start...
187         - Added testing under simulated non-forking platforms.
188
189 2.99_03 2007-10-06
190         - Refactored all display specific code out of TAP::Harness.
191         - Relaxed strict parsing of skip plan for pre v13 TAP.
192         - Elapsed hi-res time is now displayed in integer milliseconds
193           instead of fractional seconds.
194         - prove stops running if any command-line switches are invalid.
195         - prove -v would try to print an undef.
196         - Added support for multiplexed and forked parallel tests. Use
197           prove -j 9 to run tests in parallel and prove -j 9 --fork to
198           fork. These features are experimental and currently
199           unavailable on Windows.
200         - Rationalized the management of the environment that we give to
201           test scripts (PERL5LIB, PERL5OPT, switches).
202         - Fixed handling of STDIN (we no longer close it) for test
203           scripts.
204         - Performance enhancements. Parser is now 30% - 40% faster.
205
206 2.99_02 2007-09-07
207         - Ensure prove (and App::Prove) sort any recursively
208           discovered tests
209         - It is now possible to register multiple callback handlers for
210           a particular event.
211         - Added before_runtests, after_runtests callbacks to
212           TAP::Harness.
213         - Moved logic of prove program into App::Prove.
214         - Added simple machine readable summary.
215         - Performance improvement: The processing pipeline within
216           TAP::Parser is now a closure which speeds up access to the
217           various attribtes it needs.
218         - Performance improvement: Test count spinner now updates
219           exponentially less frequently as the count increases which
220           saves a lot of I/O on big tests.
221         - More improvements in test coverage from Leif.
222         - Fixes to TAP spooling - now captures YAML blocks correctly.
223         - Fix YAMLish handling of empty arrays, hashes.
224         - Renamed TAP::Harness::Compatible to Test::Harness,
225           runtests to prove.
226         - Fixes to @INC handling. We didn't always pass the correct path
227           to subprocesses.
228         - We now observe any switches in HARNESS_PERL_SWITCHES.
229         - Changes to output formatting for greater compatibility with
230           Test::Harness 2.64.
231         - Added unicode test coverage and fixed a couple of
232           unicode issues.
233         - Additions to documentation.
234         - Added support for non-forking Perls. If forking isn't
235           available we fall back to open and disable stream merging.
236         - Added support for simulating non-forking Perls to improve our
237           test coverage.
238
239 ========================================================================
240 Version numbers below this point relate to TAP::Parser - which was the
241 name of this version of Test::Harness during its development.
242 ========================================================================
243
244 0.54
245     - Optimized I/O for common case of 'runtests -l'
246     - Croak if supplied an empty (0 lines) Perl script.
247     - Made T::P::Result::YAML return literal input YAML correctly.
248     - Merged speed-ups from speedy branch.
249
250 0.53  18 August 2007
251     - Fixed a few docs nits.
252     - Added -V (--version) switch to runtests. Suggested by markjugg on
253       Perlmonks.
254     - Fixed failing t/030-grammer.t under 5.9.5. Exact cause still
255       unknown; something to do with localisation of $1 et all I think.
256     - Fixed use of three arg open in t/compat/test-harness-compat; was
257       failing on 5.6.2.
258     - Fixed runtests --exec option. T::H wasn't passing the exec option
259       to T::P.
260     - Merged Leif Eriksen's coverage enhancing changes to 
261       t/080-aggregator.t, t/030-grammar.t
262     - Made various changes so that we test cleanly on 5.0.5.
263     - Many more coverage enhancements by Leif.
264     - Applied Michael Peters' patch to add an EOF callback to
265       TAP::Parser.
266     - Added --reverse option to runtests to run tests in reverse order.
267     - Made runtests exit with non-zero status if the test run had
268       problems.
269     - Stopped TAP::Parser::Iterator::Process from trampling on STDIN.
270
271 0.52  14 July 2007
272     - Incorporate Schwern's investigations into TAP versions.
273       Unversioned TAP is now TAP v12. The lowest explicit version number
274       that can be specified is 13.
275     - Renumbered tests to eliminate gaps.
276     - Killed execrc.  The '--exec' switch to runtests handles all of this for
277       us.
278     - Refactored T::P::Iterator into
279       T::P::Iterator::(Array|Process|Stream) so that we have a
280       process specific iterator with which to experiment with
281       STDOUT/STDERR merging.
282     - Removed vestigial exit status handling from T::P::I::Stream.
283     - Removed unused pid interface from T::P::I::Process.
284     - Fixed infinite recursion in T::P::I::Stream and added regression
285       coverage for same.
286     - Added tests for T::P::I::Process.
287     - TAP::Harness now displays the first five TAP syntax errors and
288       explains how to pass the -p flag to runtests to see them all.
289     - Added merge option to TAP::Parser::Iterator::Process,
290       TAP::Parser::Source, TAP::Parser and TAP::Harness.
291     - Added --merge option to runtests to enable STDOUT/STDERR merging.
292       This behaviour used to be the default.
293     - Made T::P::I::Process use open3 for both merged and non-merged
294       streams so that it works on Windows.
295     - Implemented Eric Wilhelm's IO::Select based multiple stream
296       handler so that STDERR is piped to us even if stream merging is
297       turned off. This tends to reduce the temporal skew between the
298       two streams so that error messages appear closer to their
299       correct location.
300     - Altered the T::P::Grammar interface so that it gets a stream
301       rather than the next line from the stream in preparation for
302       making it handle YAML diagnostics.
303     - Implemented YAML syntax. Currently YAML may only follow a
304       test result. The first line of YAML is '---' and the last
305       line is '...'.
306     - Made grammar version-aware. Different grammars may now be selected
307       depending on the TAP version being parsed.
308     - Added formatter delegate mechanism for test results.
309     - Added prototype stream based YAML(ish) parser.
310     - Added more tests for T::P::YAMLish
311     - Altered T::P::Grammar to use T::P::YAMLish
312     - Removed T::P::YAML
313     - Added raw source capture to T::P::YAMLish
314     - Added support for double quoted hash keys
315     - Added TAP::Parser::YAMLish::Writer and renamed T::P::YAMLish as
316       T::P::YAMLish::Reader.
317     - Added extra TAP::Parser::YAMLish::Writer output options
318     - Inline YAML documents must now be indented by at least one space
319     - Fixed broken dependencies in bin/prove
320     - Make library paths absolute before running tests in case tests
321       chdir before loading modules.
322     - Added libs and switches handling to T::H::Compatible. This and the
323       previous change fix [24926]
324     - Added PERLLIB to libraries stripped in _default_inc [12030]
325     - Our version of prove now handles directories containing circular
326       links correctly [21938]
327     - Set TAP_VERSION env var in Parser [11595]
328     - Added setup, teardown hooks to T::P::I::Process to facilitate the
329       setup and cleanup of the test script's environment
330     - Any additional libs added to the command line are also added to
331       PERL5LIB for the duration of a test run so that any Perl children
332       of the test script inherit the same library paths.
333     - Fixed handling of single quoted hash keys in T::P::Y::Reader
334     - Made runtests return the TAP::Parser::Aggregator
335     - Fixed t/120-harness.t has failures if TAP::Harness::Color cannot
336       load optional modules [27125] - thanks DROLSKY
337     - Fixed parsing of \# in test description  
338 0.51 12 March 2007
339     - 'execrc' file now allows 'regex' matches for tests.
340     - rename 'TAPx' --> 'TAP'
341     - Reimplemented the parse logic of TAP::Parser as a state machine.
342     - Removed various ad-hoc state variables from TAP::Parser and moved
343       their logic into the state machine.
344     - Removed now-unused is_first / is_last methods from Iterator and
345       simplified remaining logic to suit.
346     - Removed now-redundant t/140-varsource.t.
347     - Implemented TAP version syntax.
348     - Tidied TAP::Harness::Compatible documentation
349     - Removed redundant modules below TAP::Harness::Compatible
350     - Removed unused compatibility tests
351
352 0.50_07 5 March 2007
353     - Fixed bug where we erroneously checked the test number instead of number
354       of tests run to determine if we've run more tests than we planned.
355     - Add a --directives switch to 'runtests' which only shows test results
356       with directives (such as 'TODO' or 'SKIP').
357     - Removed some dead code from TAPx::Parser.
358     - Added color support for Windows using Win32::Console.
359     - Made Color::failure_output reset colors before printing
360       the trailing newline.
361     - Corrected some issues with the 'runtests' docs and removed some
362       performance notes which no longer seem accurate.
363     - Fixed bug whereby if tests without file extensions were included then
364       the spacing of the result leaders would be off.
365     - execrc file is now a YAML file.
366     - Removed white background on the test failures.  It was too garish for
367       me.  Just more proof that we need better ways of overriding color
368       support.
369     - Started work on TAPx::Harness::Compatible. Right now it's mainly just
370       a direct lift of Test::Harness to make sure the tests work.
371     - Commented out use Data::Dumper::Simple in T::Harness.pm - it's not
372       a core module.
373     - Added next_raw to TAPx::Parser::Iterator which skips any fixes for
374       quirky TAP that are implemented by next. Used to support
375       TAPx::Harness::Compatible::Iterator
376     - Applied our version number to all T::H::Compatible modules
377     - Removed T::H::C::Assert. It's documented as being private to
378       Test::Harness and we're not going to need it.
379     - Refactored runtests to call aggregate_tests to expose the
380       interface we need for the compatibility layer.
381     - Make it possible to pass an end time to summary so that it needn't
382       be called immediately after the tests complete.
383     - Moved callback handling into TAPx::Base and altered TAPx::Parser
384       to use it.
385     - Made TAPx::Harness into a subclass of TAPx::Base and implemented
386       made_parser callback.
387     - Moved the dispatch of callbacks out of run and into next so that
388       they're called when TAPx::Harness iterates through the results.
389     - Implemented PERL_TEST_HARNESS_DUMP_TAP which names a directory
390       into which the raw TAP of any tests run via TAPx::Harness will
391       be written.
392     - Rewrote the TAPx::Grammar->tokenize method to return a
393       TAPx::Parser::Result object.  Code is much cleaner now.
394     - Moved the official grammar from TAPx::Parser to TAPx::Parser::Grammar,
395       provided a link and updated the grammar.
396     - Fixed bug where a properly escaped '# TODO' line in a test description
397       would still be reported as a TODO test.
398     - Added patches/ExtUtils-MakeMaker-6.31.patch - a patch against EUMM
399       that makes test_harness use TAPx::Harness instead of Test::Harness
400       if PERL_EUMM_USE_TAPX is true and TAPx::Harness is installed. In
401       other words cause 'make test' for EUMM based models to use
402       TAPx::Harness.
403     - Added support for timer option to TAPx::Harness which causes the
404       elapsed time for each test to be displayed.
405     - Setup tapx-dev@hexten.net mailing list.
406     - Fixed accumulating @$exec bug in TAPx::Harness.
407     - Made runtests pass '--exec' option as an array.
408     - (#24679) TAPx::Harness now reports failure for tests that die
409       after completing all subtests.
410     - Added in_todo attribute on TAPx::Parser which is true while the
411       most recently seen test was a TODO.
412     - (#24728) TAPx::Harness now supresses diagnostics from failed
413       TODOs. Not sure if the semantics of this are correct yet.
414       
415 0.50_06 18 January 2007
416     - Fixed doc typo in examples/README [rt.cpan.org #24409]
417     - Colored test output is now the default for 'runtests' unless
418       you're running under windows or -t STDOUT is false.
419       [rt.cpan.org #24310]
420     - Removed the .t extension from t/source_tests/*.t since those are
421       'test tests' which caused false negatives when running recursive
422       tests. [Adrian Howard]
423     - Somewhere along the way, the exit status started working again.
424       Go figure.
425     - Factored color output so that disabling it under Windows is
426       cleaner.
427     - Added explicit switch to :crlf layer after open3 under Windows.
428       open3 defaults to raw mode resulting in spurious \r characters input
429       parsed input.
430     - Made Iterator do an explicit wait for subprocess termination.
431       Needed to get process status correctly on Windows.
432     - Fixed bug which didn't allow t/010-regression.t to be run directly
433       via Perl unless you specified Perl's full path.
434     - Removed SIG{CHLD} handler (which we shouldn't need I think because
435       we explicitly waitpid) and made binmode ':crlf' conditional on
436       IS_WIN32. On Mac OS these two things combined to expose a problem
437       which meant that output from test scripts was sometimes lost.
438     - Made t/110-source.t use File::Spec->catfile to build path to
439       test script.
440     - Made Iterator::FH init is_first, is_last to 0 rather than undef
441       for consistency with array iterator.
442     - Added t/120-varsource.t to test is_first and is_last semantics
443       over files with small numbers of lines.
444     - Added check for valid callback keys.
445     - Added t/130-results.t for Result classes.
446
447 0.50_05 15 January 2007
448     - Removed debugging code accidentally left in bin/runtests.
449     - Removed 'local $/ = ...' from the iterator.  Hopefully that will fix the
450       line ending bug, but I don't know about the wstat problem.
451
452 0.50_04 14 January 2007
453     - BACKWARDS IMCOMPATIBLE:  Renamed all '::Results' classes to '::Result'
454       because they represent a single result.
455     - Fixed bug where piping would break verbose output.
456     - IPC::Open3::open3 now takes a @command list rather than a $command
457       string.  This should make it work under Windows.
458     - Added 'stdout_sterr' sample test back to regression tests.  IPC::Open3
459       appears to make it work.
460     - Bug fix:  don't print 'All tests successful' if no tests are run.
461     - Refactored 'runtests' to make it a bit easier to follow.
462     - Bug fix:  Junk and comments now allowed before a leading plan.
463     - HARNESS_ACTIVE and HARNESS_VERSION environment variables now set.
464     - Renamed 'problems' in TAPx::Parser and TAPx::Aggregator to
465       'has_problems'.
466
467 0.50_03 08 January 2007
468
469     - Fixed bug where '-q' or '-Q' with colored tests weren't suppressing all
470       information.
471     - Fixed an annoying MANIFEST nit.
472     - Made '-h' for runtests now report help.  Using a new harness requires
473       the full --harness switch.
474     - Added 'problems' method to TAPx::Parser and TAPx::Parser::Aggregator.
475     - Deprecatd 'todo_failed' in favor of 'todo_passed'
476     - Add -I switch to runtests.
477     - Fixed runtests doc nit (smylers)
478     - Removed TAPx::Parser::Builder.
479     - A few more POD nits taken care of.
480     - Completely removed all traces of C<--merge> as IPC::Open3 seems to be
481       working.
482     - Moved the tprove* examples to examples/bin in hopes of them no longer
483       showing up in CPAN's docs.
484     - Made the 'unexpectedly succeeded' message clearer (Adam Kennedy)
485
486 0.50_02 06 January 2007
487     - Added some files I left out of the manifest (reported by Florian
488       Ragwitz).
489     - Added strict to Makefile.PL and changed @PROGRAM to @program (reported
490       Florian Ragwitz).
491
492 0.50_01 06 January 2007
493     - Added a new example which shows to how test Perl, Ruby, and URLs all at
494       the same time using 'execrc' files.
495     - Fixed the diagnostic format mangling bug.
496     - We no longer override Test::Builder to merge streams.  Instead, we go
497       ahead and use IPC::Open3.  It remains to be seen whether or not this is
498       a good idea.
499     - Fixed vms nit:  for failing tests, vms often has the 'not' on a line by
500       itself.
501     - Fixed bugs where unplanned tests were not reporting as a failure (test
502       number greater than tests planned).
503     - TAPx::Parser constructor can now take an 'exec' option to tell it what
504       to execute to create the stream (huge performance boost).
505     - Added TAPx::Parser::Source.  This allows us to run tests in just about
506       any programming language.
507     - Renamed the filename() method to source() in TAPx::Parser::Source::Perl.
508     - We now cache the @INC values found for TAPx::Parser::Source::Perl.
509     - Added two test harnesses, TAPx::Harness and TAPx::Harness::Color.
510     - Removed references to manual stream construction from TAPx::Parser
511       documentation.  Users should not (usually) need to worry about streams.
512     - Added bin/runtests utility.  This is very similar to 'prove'.
513     - Renumbered tests to make it easier to add new ones.
514     - Corrected some minor documentation nits.
515     - Makefile.PL is no longer auto-generated (it's built by hand).
516     - Fixed regression test bug where driving tests through the harness I'm
517       testing caused things to break.
518     - BUG:  exit() values are now broken.  I don't know how to capture them
519       with IPC::Open3.  However, since no one appears to be using them, this
520       might not be an issue.
521
522 0.41  12 December 2006
523     - Fixed (?) 10-regression.t test which failed on Windows.  Removed the
524       segfault test as it has no meaning on Windows.  Reported by PSINNOTT
525       <link@redbrick.dcu.ie> and fix recommended by Schwern based on his
526       Test::Harness experience.
527       http://rt.cpan.org/Ticket/Display.html?id=21624
528
529 0.40  05 December 2006
530     - Removed TAPx::Parser::Streamed and folded its functionality into
531       TAPx::Parser.
532     - Fixed bug where sometimes is_good_plan() would return a false positive
533       (exposed by refactoring).
534     - A number of tiny performance enhancements.
535
536 0.33  22 September 2006
537     - OK, I'm getting ticked off by some of the comments on Perl-QA so I
538       rushed this out the door and broke it :(  I'm backing out one test and
539       slowing down a bit.
540
541 0.32  22 September 2006
542     - Applied patch from Schwern which fixed the Builder package name (TAPx::
543       instead of TAPX:: -- stupid case-insensitive package names!).
544       [rt.cpan.org #21605]
545
546 0.31  21 September 2006
547     - Fixed bug where Carp::croak without parens could cause Perl to fail to
548       compile on some platforms. [Andreas J. Koenig]
549     - Eliminated the non-portable redirect of STDERR to STDOUT (2>&1) and
550       fixed the synchronization issue.  This involves overridding
551       Test::Builder::failure_output() in a very sneaky way.  I may have to
552       back this out.
553     - Renamed boolean methods to begin with 'is_'.  The methods they replace
554       are documented, deprecated, and will not be removed prior to version
555       1.00.
556
557 0.30  17 September 2006
558     - Fixed bug where no output would still claim to have a good plan.
559     - Fixed bug where no output would cause parser to die.
560     - Fixed bug where failing to specify a plan would be two parse errors
561       instead of one.
562     - Fixed bug where a correct plan count in an incorrect place would still
563       report as a 'good_plan'.
564     - Fixed bug where comments could accidently be misparsed as directives.
565     - Eliminated testing of internal structure of result objects.  The other
566       tests cover this.
567     - Allow hash marks in descriptions.  This was causing a problem because
568       many test suites (Regexp::Common and Perl core) allowed them to exist.
569     - Added support for SKIP directives in plans.
570     - Did some work simplifying &TAPx::Parser::_initialize.  It's not great,
571       but it's better than it was.
572     - TODO tests now always pass, regardless of actual_passed status.
573     - Removed 'use warnings' and now use -w
574     - 'switches' may now be passed to the TAPx::Parser constructor.
575     - Added 'exit' status.
576     - Added 'wait' status.
577     - Eliminated 'use base'.  This is part of the plan to make TAPx::Parser
578       compatible with older versions of Perl.
579     - Added 'source' key to the TAPx::Parser constructor.  Making new parsers
580       is now much easier.
581     - Renamed iterator first() and last() methods to is_first() and is_last().
582       Credit:  Aristotle.
583     - Planned tests != tests run is now a parse error.  It was really stupid
584       of me not to do that in the first place.
585     - Added massive regression test suite in t/100-regression.t
586     - Updated the grammar to show that comments are allowed.
587     - Comments are now permitted after an ending plan.
588
589 0.22  13 September 2006
590     - Removed buggy support for multi-line chunks from streams.  If your
591       streams or iterators return anything but single lines, this is a bug.
592     - Fixed bug whereby blank lines in TAP would confuse the parser.  Reported
593       by Torsten Schoenfeld.
594     - Added first() and last() methods to the iterator.
595     - TAPx::Parser::Source::Perl now has a 'switches' method which allows
596       switches to be passed to the perl executable running the test file.
597       This allows tprove to accept a '-l' argument to force lib/ to be
598       included in Perl's @INC.
599
600 0.21  8 September 2006
601     - Included experimental GTK interface written by Torsten Schoenfeld.
602     - Fixed bad docs in examples/tprove_color
603     - Applied patch from Shlomi Fish fixing bug where runs from one stream
604       could leak into another when bailing out.  [rt.cpan.org #21379] 
605     - Fixed some typos in the POD.
606     - Corrected the grammar to allow for a plan of "1..0" (infinite stream).
607     - Started to add proper acknowledgements.
608
609 0.20  2 September 2006
610     - Fixed bug reported by GEOFFR.  When no tap output was found, an
611       "Unitialized value" warning occurred.  [rt.cpan.org #21205]
612     - Updated tprove to now report a test failure when no tap output found.
613     - Removed examples/tprove_color2 as tprove_color now works.
614     - Vastly improved callback system and updated the docs for how to use
615       them.
616     - Changed TAPx::Parser::Source::Perl to use Symbol::gensym() instead of a
617       hard-to-guess filehandle name.
618
619 0.12  30 July 2006
620     - Added a test colorization script
621     - Callback support added.
622     - Added TAPx::Parser::Source::Perl.
623     - Added TAPx::Parser::Aggregator. 
624     - Added version numbers to all classes.
625     - Added 'todo_failed' test result and parser.
626     - 00-load.t now loads all classes instead of having individual tests load
627       their supporting classes.
628     - Changed $parser->results to $parser->next
629
630 0.11  25 July, 2006
631     - Renamed is_skip and is_todo to has_skip and has_todo.  Much less
632       confusing since a result responding true to those also responded true to
633       is_test.
634     - Added simplistic bin/tprove to run tests.  Much harder than I thought
635       and much code stolen from Test::Harness.
636     - Modified stolen iterator to fix a bug with stream handling when extra
637       newlines were encountered.
638     - Added TAPx::Parser::Iterator (stolen from Test::Harness::Iterator)
639     - Normalized internal structure of result objects.
640     - All tokens now have a 'type' key.  This greatly simplifies internals.
641     - Copied much result POD info into the main docs.
642     - Corrected the bug report URLs.
643     - Minor updates to the grammar listed in the POD.
644
645 0.10  23 July, 2006
646     - Oh my Larry, we gots docs!
647     - _parse and _tap are now private methods.
648     - Stream support has been added.
649     - Moved the grammar into its own class.
650     - Pulled remaining parser functionality out of lexer.
651     - Added type() method to Results().
652     - Parse errors no longer croak().  Instead, they are available through the
653       parse_errors() method.
654     - Added good_plan() method.
655     - tests_planned != tests_run is no longer a parse error.
656     - Renamed test_count() to tests_run().
657     - Renamed num_tests() to tests_planned().
658
659 0.03  17 July, 2006
660     - 'Bail out!' is now handled.
661     - The parser is now data driven, thus skipping a huge if/else chain
662     - We now track all TODOs, SKIPs, passes and fails by test number.
663     - Removed all non-core modules.
664     - Store original line for each TAP line.  Available through
665       $result->raw().
666     - Renamed test is_ok() to passed() and added actual_passed().  The former
667       method takes into account TODO tests and the latter returns the actual
668       pass/fail status.
669     - Fixed a bug where SKIP tests would not be identified correctly.
670
671 0.02  8 July, 2006
672     - Moved some lexer responsibility to the parser.  This will allow us to
673       eventually parse streams.
674     - Properly track passed/failed tests, even accounting for TODO.
675     - Added support for comments and unknown lines.
676     - Allow explicit and inferred test numbers to be mixed.
677     - Allow escaped hashes in the test description.
678     - Renamed to TAPx::Parser.  Will probably rename it again.
679
680 0.01  Date/time
681     - First version, unreleased on an unsuspecting world.
682     - No, you'll never know when ...