On Saturday 01 July 2006 22:36, Michael G Schwern wrote: > Those of you who were/are at the YAPC Hackathon might know, I've begun > work on what started as Test::Harness 3 and is now TAP::Harness. This > is brand new, ground up rewrite of the idea of a harness for TAP > sources (a foo.t file is a TAP source). Its being designed to be > extendable to handle all the things we'd like to do with Test::Harness > over the last few years without having to worry about backwards > compat. . . . > * Will I be able to do X with TAP::Harness? > > The goal is to encompass the largest set of X. Another goal is to > have the extender be able to focus on the display aspects and not the > TAP parsing. > > Right now the use cases I have in mind include things such as > parallelized test runs, fancy GUI and HTML outputs (for example, > TAP::Model::HTMLMatrix), multiple, non-Perl TAP sources (ex. contact a > URL and get the TAP from that; run HTML through a validator which > produces TAP; run a C program which spits out TAP), "enhanced" TAP > output (ex. colors; levels of verbosity), and the ability to smoothly > handle TAP extensions. >
I can't readily think of other stuff now. One thing I'm wondering about is whether you are going to code all of this into TAP::Harness from scratch. Plus, I've also been planning similar things for Test::Run too, (and already started implementing to some extent) and I'd hate to see some duplicate effort. As some of the people who may know I like to start from an existing codebase when I can. This may be due to a bit of hacker's superstition as backed up by: http://www.catb.org/esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s02.html (Not to mention "Things you should never do part 1" and "Rub a dub dub" by Joel Spolsky).[1] Now, I started Test::Run so it will be an incompatible Test::Harness-like module, only more modular, object oriented, pluginnable, etc. I found the Test::Harness code to be somewhat lacking in some respects, but believed (due to my superstition) that I can bang on it until it exceeds its current limitations. I hope the Test::Harness maintainers can understand that I had no intentions of fragmenting, but rather as a way to create a better harness. Test::Run still has many issues, but I think that it will still be easier to start from it than from an empty code. I didn't make a stable release of Test::Run yet, and would not recommend people to depend on its API being stable, so everybody's who's interested can go there and even break the API (as long as he also fixes the tests.) Refactoring and extension of existing code is much more brainless than starting to work on a brand-new codebase, and is more rewarding. Please do not consider this email as an attack against your attempt to write code or fix what's broken with Test::Harness. I don't mind having some competition. However, I'm trying to see whether there is some way we can consolidate our efforts. The most up-to-date Test-Run code is here: http://svn.berlios.de/svnroot/repos/web-cpan/Test-Harness-NG/ I don't mind giving Subversion access to the repository to anyone who registers in http://developer.berlios.de/ and is either a CPAN contributor, or has sent me one patch for me to commit. With Adam Kennedy's permission, I can also move the files to his Subversion repository, where everyone with a PAUSE ID can commit to. A lightning talk I gave at two occassions (OSDC::Israel::2006 and an Israel.pm meeting) can be found here: http://www.shlomifish.org/lecture/Perl/Lightning/Test-Run/ > > * Will TAP::Harness include X extension to TAP? > > No. TAP::Harness is using the current TAP spec from > Test::Harness::TAP. Extending TAP is another problem. > It may be a good idea to have a parser that outputs an events' stream and an analyzer that reads and analyzes the events. Then we can have a different protocol than TAP. Regards, Shlomi Fish [1] - Another module which I did not write from scratch is HTML::Widgets::NavMenu. I was looking for alternatives on CPAN, found 3, and chose HTML::Widget::SideBar by Yosef Meller (a fellow Israel.PM-er). http://search.cpan.org/dist/HTML-Widget-SideBar/ Overtime I had to patch the module, subclass it and write some glue around it. Eventually, I wrote my tree-generation logic for generating a site map, and ported the rest of my code to it, leaving my module with none of Meller's original code. Would it have been easier to re-write everything from scratch? I can't tell for sure, but in any case, it was less intimidating to start from scratch. ESR has other stories like that. --------------------------------------------------------------------- Shlomi Fish [EMAIL PROTECTED] Homepage: http://www.shlomifish.org/ 95% of the programmers consider 95% of the code they did not write, in the bottom 5%.