Revision history for TAP-Parser

0.31     21 September 2006
         - Fixed bug where Carp::croak without parens could cause Perl to fail
           to compile on some platforms. [Andreas J. Koenig]
         - Eliminated the non-portable redirect of STDERR to STDOUT (2>&1) and
           fixed the synchronization issue.  This involves overridding
           Test::Builder::failure_output() in a very sneaky way.  I may have
           to back this out.
         - Renamed boolean methods to begin with 'is_'.  The methods they
           replace are documented, deprecated, and will not be removed prior
           to version 1.00.

0.30     17 September 2006
         - Fixed bug where no output would still claim to have a good plan.
         - Fixed bug where no output would cause parser to die.
         - Fixed bug where failing to specify a plan would be two parse errors
           instead of one.
         - Fixed bug where a correct plan count in an incorrect place would
           still report as a 'good_plan'.
         - Fixed bug where comments could accidently be misparsed as
           directives.
         - Eliminated testing of internal structure of result objects.  The
           other tests cover this.
         - Allow hash marks in descriptions.  This was causing a problem
           because many test suites (Regexp::Common and Perl core) allowed
           them to exist.
         - Added support for SKIP directives in plans.
         - Did some work simplifying &TAPx::Parser::_initialize.  It's not
           great, but it's better than it was.
         - TODO tests now always pass, regardless of actual_passed status.
         - Removed 'use warnings' and now use -w
         - 'switches' may now be passed to the TAPx::Parser constructor.
         - Added 'exit' status.
         - Added 'wait' status.
         - Eliminated 'use base'.  This is part of the plan to make
           TAPx::Parser compatible with older versions of Perl.
         - Added 'source' key to the TAPx::Parser constructor.  Making new
           parsers is now much easier.
         - Renamed iterator first() and last() methods to is_first() and
           is_last().  Credit:  Aristotle.
         - Planned tests != tests run is now a parse error.  It was really
           stupid of me not to do that in the first place.
         - Added massive regression test suite in t/100-regression.t
         - Updated the grammar to show that comments are allowed.
         - Comments are now permitted after an ending plan.

0.22     13 September 2006
         - Removed buggy support for multi-line chunks from streams.  If your
           streams or iterators return anything but single lines, this is a
           bug.
         - Fixed bug whereby blank lines in TAP would confuse the parser.
           Reported by Torsten Schoenfeld.
         - Added first() and last() methods to the iterator.
         - TAPx::Parser::Source::Perl now has a 'switches' method which allows
           switches to be passed to the perl executable running the test file.
           This allows tprove to accept a '-l' argument to force lib/ to be
           included in Perl's @INC.

0.21     8 September 2006
         - Included experimental GTK interface written by Torsten Schoenfeld.
         - Fixed bad docs in examples/tprove_color
         - Applied patch from Shlomi Fish fixing bug where runs from one
           stream could leak into another when bailing out.
           [rt.cpan.org #21379] 
         - Fixed some typos in the POD.
         - Corrected the grammar to allow for a plan of "1..0" (infinite
           stream).
         - Started to add proper acknowledgements.

0.20     2 September 2006
         - Fixed bug reported by GEOFFR.  When no tap output was found, an
           "Unitialized value" warning occurred.  
           [rt.cpan.org #21205]
         - Updated tprove to now report a test failure when no tap output
           found.
         - Removed examples/tprove_color2 as tprove_color now works.
         - Vastly improved callback system and updated the docs for how to use
           them.
         - Changed TAPx::Parser::Source::Perl to use Symbol::gensym() instead
           of a hard-to-guess filehandle name.

0.12     30 July 2006
         - Added a test colorization script
         - Callback support added.
         - Added TAPx::Parser::Source::Perl.
         - Added TAPx::Parser::Aggregator. 
         - Added version numbers to all classes.
         - Added 'todo_failed' test result and parser.
         - 00-load.t now loads all classes instead of having individual tests
           load their supporting classes.
         - Changed $parser->results to $parser->next

0.11     25 July, 2006
         - Renamed is_skip and is_todo to has_skip and has_todo.  Much less
           confusing since a result responding true to those also responded
           true to is_test.
         - Added simplistic bin/tprove to run tests.  Much harder than I
           thought and much code stolen from Test::Harness.
         - Modified stolen iterator to fix a bug with stream handling when
           extra newlines were encountered.
         - Added TAPx::Parser::Iterator (stolen from Test::Harness::Iterator)
         - Normalized internal structure of result objects.
         - All tokens now have a 'type' key.  This greatly simplifies
           internals.
         - Copied much result POD info into the main docs.
         - Corrected the bug report URLs.
         - Minor updates to the grammar listed in the POD.

0.10     23 July, 2006
         - Oh my Larry, we gots docs!
         - _parse and _tap are now private methods.
         - Stream support has been added.
         - Moved the grammar into its own class.
         - Pulled remaining parser functionality out of lexer.
         - Added type() method to Results().
         - Parse errors no longer croak().  Instead, they are available through
           the parse_errors() method.
         - Added good_plan() method.
         - tests_planned != tests_run is no longer a parse error.
         - Renamed test_count() to tests_run().
         - Renamed num_tests() to tests_planned().

0.03     17 July, 2006
         - 'Bail out!' is now handled.
         - The parser is now data driven, thus skipping a huge if/else chain
         - We now track all TODOs, SKIPs, passes and fails by test number.
         - Removed all non-core modules.
         - Store original line for each TAP line.  Available through
           $result->raw().
         - Renamed test is_ok() to passed() and added actual_passed().  The
           former method takes into account TODO tests and the latter returns
           the actual pass/fail status.
         - Fixed a bug where SKIP tests would not be identified correctly.

0.02     8 July, 2006
         - Moved some lexer responsibility to the parser.  This will allow us
           to eventually parse streams.
         - Properly track passed/failed tests, even accounting for TODO.
         - Added support for comments and unknown lines.
         - Allow explicit and inferred test numbers to be mixed.
         - Allow escaped hashes in the test description.
         - Renamed to TAPx::Parser.  Will probably rename it again.

0.01     Date/time
         - First version, unreleased on an unsuspecting world.
         - No, you'll never know when ...
