develooper Front page | perl.qa | Postings from February 2016

Last call for review of Test-Builder using Test2 (FormerlyTest-Stream)

From:
Chad Granum
Date:
February 5, 2016 19:14
Subject:
Last call for review of Test-Builder using Test2 (FormerlyTest-Stream)
Message ID:
CAJFr3kufO_yx=u+UibRrbOW9rSKjgefNHwNXG6ysQ72HEhS4Nw@mail.gmail.com
On October 29th, 2015, I released Test-Stream as stable. I did this because
I felt it was ready, and because I was no longer receiving any feedback from
perl-qa asking me to change things. Since that release, the feedback picked
up substantially. It seems that declaring something done is the best way
to find out ways in which it is not actually done.

Here are the big things people wanted:

 - Split the dist into multiple dists, making the internals and tools
separate.

 - Abandon the loader system (use Test::Stream -/:/etc)

 - Loosen the tight coupling of Test::Steam to TAP

 - Make context() less magic (don't use INTERNALS::SvREFCNT)

 - Use less import() magic

 - Better namespace structuring

 - Changes to how SKIP and TODO are implemented

We decided that the best way forward was to forget about compatibility
with Test-Stream, which is still new enough that it is not seeing much use,
and make a new name with
everyone's changes.  That's Test2.

After the split there are 3 distributions:

 - Test2 (https://metacpan.org/pod/Test2) - The guts. No tools, just the
   things to make tools. This is what Test::Builder will be using.

 - Test2::Suite (https://metacpan.org/pod/Test2::Suite) - New tools as an
   alternative to Test::More and friends, built directly on Test2 instead of
   Test::Builder

 - Test2::Workflow (https://metacpan.org/pod/Test2::Workflow) - The 'spec'
   plugin and workflow extension from Test::Stream. This was big enough to
be
   a separate distribution.

Test2::Suite and Test2::Workflow are optional systems.  I think you'll
find them very useful, but they're not the key deliverable.  That's
Test2, which is meant to replace Test::Builder's guts.  Test::Builder
will be a backward compatibility layer on top of Test2.

As of the latest releases of Test2 and Test2-Suite I am considering the work
done to my specifications and intentions. Now is the time to review these
and make commentary. Once this goes stable it will become much harder, if
not impossible, to make sweeping changes. If there is anything in these
distributions (Test2 in particular) that makes you uncomfortable, you
need to speak now. I am not yet ready to say Test2-Workflow is complete.


The work to make Test::Builder use Test2 under the hood is also complete.

On CPAN:
https://metacpan.org/pod/release/EXODIST/Test-Simple-1.302013_011/lib/Test/Builder.pm

On Github: https://github.com/Test-More/test-more/tree/Test2/master

Blead Patch Ticket:
https://rt.perl.org/Public/Bug/Display.html?id=127000#txn-1385453

This work has been through several verification procedures:

 - CPAN Smoking by Andreas K├Ânig

 - My own testing against CPAN distributions

 - Blead patches I have written (though to date nobody has merged it in)

 - A comparison of verbose testing output on blead with and without my
   patch https://github.com/exodist/blead_stream_diff

Note: The preferred form of feedback is tickets on the relevant github
projects

-Chad



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About