Hi all!

I'd like to suggest a generic proposal for the Perl Foundation Grants. Note 
that I'm not going to take it myself, because I just started a new job and 
would like to commit to it. However, I can be the mentor for this grant. I'm 
posting it here to get some reactions before I put it in my use.perl.org 
journal, etc.

The grant is about Test::Run, which is a fork of Test::Harness that aims to 
greatly refactor and modularise it. I've already revamped and re-written a 
lot of code for it, but there's still a lot that needs to be done.

Here are some Test::Run links:

1. Lightning Talk about Test::Run - 
http://www.shlomifish.org/lecture/Perl/Lightning/Test-Run/

2. use.perl.org journal entries:
http://use.perl.org/~Shlomi+Fish/journal/27467
http://use.perl.org/~Shlomi+Fish/journal/27887

(they contain a lot of links).

-----------

Licencing Issues:
=================

Some of the code in Test::Run is derived from the code of Test::Harness, which 
is GPL+[Artistic 1.0]. Thus, it should be kept this way. However, some code 
was written from scratch and due to my personal preferences, it was licensed 
under the MIT X11 Licence[1]. I prefer that all new code will be also MIT X11 
licence, and that existing code will retain its original licensing terms.

Comparison with Similar Efforts:
================================

* Test::Harness is the old harness module of Perl 5, from which Test::Run was 
derived. It is not very Object Oriented, suffers from some modularity issues, 
and is generally hard to properly adapt. Often, customisations to it need to 
be kept and maintained in house.

Test::Run is no longer backwards compatible with Test::Harness. The internal 
and external interface was changed.

* TAP::Harness is a rewrite of Test::Harness by Michael G. Schwern and others. 
It has similar goals to Test::Run, but has a different methodology of trying 
to achieve it. 

* TAP::Parser by Ovid is a work-in-progress module that aims to be a modular 
event-based parser for TAP output. Test::Run may eventually convert to use it 
instead of its current ad-hoc TAP handling routine (that was inherited from 
Test::Harness).

Orthogonal to all of these are the various Perl and non-Perl TAP generators 
such as Test::Builder, Test::Simple, Test::More, Test::Base, and the 
http://search.cpan.org/~petdance/Test-Harness-2.62/lib/Test/Harness/TAP.pod#Non-Perl_TAP
. Test::Run and friends are not concerned by them as long as the script that 
performs the tests' generates correct TAP.

Scope of the Project:
=====================

This project aims to do the following:

1. Finish refactoring Test::Run::Obj, Test::Run::Straps and the other modules 
derived from Test::Harness. One should probably have read "Refactoring" by 
Martin Fowler, for some indication on which "bad smells" exist in bad code, 
and how bad code should be methologicaly refactored if it has them. "Perl 
Best Practices" is also possibly a good read. (albeit I only began reading 
it).

2. Move some of the functionality of Test::Harness that's currently in the 
Test::Run::Obj core into plugins.

3. Update the POD documentation for the new version.

4. Extend (using plugins, etc.) for:
        - Formatting the messages using templates or callbacks.
        - Colours in the output. (Already exist to some extent).
        - HTML, XML and YAML (and others) Output.
        - Persistent Running.
        - Interrupted GUI running.

Michael G. Schwern also suggested the following: (in the context of 
TAP::Harness)

<<<
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.
>>>

Roles in the Project:
=====================

Like I said I'm going to be the mentor for the project, not the one who 
actually performs it. The one who takes it will receive most (or all) of the 
money of the grant while doing most of the work on Test::Run.

I will aid the project proposer by giving him a Berlios.de developer status 
for the Test-Run project (with Subversion commit access) and also eventually 
make him a CPAN co-maintainer for the appropriate namespaces, so he can 
upload modules there.

One note is that so far I did most of the work on Test::Run, and so no-one 
else has much first-hand experience with it. However, I believe any prior 
experience with the Test::Harness code or even with Perl 5 testing in general 
will do, and I'll be glad to help any newcomer feel comfortable with the 
code.

I can be reached in the following means:

http://www.shlomifish.org/me/contact-me/

Regards,

        Shlomi Fish

[1] - The MIT X11 Licence ( http://en.wikipedia.org/wiki/MIT_License )  a 
BSD-style licence that is almost entirely public domain. (except for a 
no-warranty clause and the fact that it is considered copyrighted code). As 
such it can be converted into any other licence (whether open-source or 
non-open-source) and also can be used by any other licence that permits using 
it.

Note that the Makefile.PL/Build.PL files and the META.yml may say it is 
a "bsd"-style licence, due to the fact there isn't a special grouping for the 
MIT X11 licence, and because the MIT X11 licence belongs to the BSD family of 
licences.

On Wednesday 05 July 2006 12:40, Gabor Szabo wrote:
> ---------- Forwarded message ----------
> From: Thomas Klausner <[EMAIL PROTECTED]>
> Date: Jul 5, 2006 12:39 PM
> Subject: [pm_groups] Call for proposals -- Perl Foundation Grants
>
>
> Hi!
>
> Please forward the Call for Proposals to your local groups. The last
> call didn't result in any grants because there weren't enough /
> interesting / correct proposals.
>
> http://news.perlfoundation.org/2006/07/call_for_proposals_perl_founda.html
> _______________________________________________
> Perl mailing list
> [EMAIL PROTECTED]
> http://perl.org.il/mailman/listinfo/perl

-- 

---------------------------------------------------------------------
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%.

Reply via email to