Last call for review of Test-Builder using Test2 (Formerly Test-Stream)
[email protected] (Chad Granum) Fri, 5 Feb 2016 11:14:43 -0800
| Newsgroups | perl.qa |
|---|---|
| Message-ID | <CAJFr3kufO_yx=u+UibRrbOW9rSKjgefNHwNXG6ysQ72HEhS4Nw@mail.gmail.com> |
--001a11403fd4ea002a052b0aa9c2 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable 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 fro= m 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 o= f 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 wor= k 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=3D127000#txn-1385453 This work has been through several verification procedures: - CPAN Smoking by Andreas K=C3=B6nig - 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 --001a11403fd4ea002a052b0aa9c2 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>On October 29th, 2015, I released Test-Stream as stab= le. I did this because</div><div>I felt it was ready, and because I was no = longer receiving any feedback from</div><div>perl-qa asking me to change th= ings. Since that release, the feedback picked</div><div>up substantially. I= t seems that declaring something done is the best way</div><div>to find out= ways in which it is not actually done.</div><div><br></div><div>Here are t= he big things people wanted:</div><div><br></div><div>=C2=A0- Split the dis= t into multiple dists, making the internals and tools separate.</div><div><= br></div><div>=C2=A0- Abandon the loader system (use Test::Stream -/:/etc)<= /div><div><br></div><div>=C2=A0- Loosen the tight coupling of Test::Steam t= o TAP</div><div><br></div><div>=C2=A0- Make context() less magic (don't= use INTERNALS::SvREFCNT)</div><div><br></div><div>=C2=A0- Use less import(= ) magic</div><div><br></div><div>=C2=A0- Better namespace structuring</div>= <div><br></div><div>=C2=A0- Changes to how SKIP and TODO are implemented</d= iv><div><br></div><div>We decided that the best way forward was to forget a= bout compatibility</div><div>with Test-Stream, which is still new enough th= at it is not seeing much use, and make a new name with</div><div>everyone&#= 39;s changes.=C2=A0 That's Test2.</div><div><br></div><div>After the sp= lit there are 3 distributions:</div><div><br></div><div>=C2=A0- Test2 (<a h= ref=3D"https://metacpan.org/pod/Test2">https://metacpan.org/pod/Test2</a>) = - The guts. No tools, just the</div><div>=C2=A0 =C2=A0things to make tools.= This is what Test::Builder will be using.</div><div><br></div><div>=C2=A0-= Test2::Suite (<a href=3D"https://metacpan.org/pod/Test2::Suite">https://me= tacpan.org/pod/Test2::Suite</a>) - New tools as an</div><div>=C2=A0 =C2=A0a= lternative to Test::More and friends, built directly on Test2 instead of</d= iv><div>=C2=A0 =C2=A0Test::Builder</div><div><br></div><div>=C2=A0- Test2::= Workflow (<a href=3D"https://metacpan.org/pod/Test2::Workflow">https://meta= cpan.org/pod/Test2::Workflow</a>) - The 'spec'</div><div>=C2=A0 =C2= =A0plugin and workflow extension from Test::Stream. This was big enough to = be</div><div>=C2=A0 =C2=A0a separate distribution.</div><div><br></div><div= >Test2::Suite and Test2::Workflow are optional systems.=C2=A0 I think you&#= 39;ll</div><div>find them very useful, but they're not the key delivera= ble.=C2=A0 That's</div><div>Test2, which is meant to replace Test::Buil= der's guts.=C2=A0 Test::Builder</div><div>will be a backward compatibil= ity layer on top of Test2.</div><div><br></div><div>As of the latest releas= es of Test2 and Test2-Suite I am considering the work</div><div>done to my = specifications and intentions. Now is the time to review these</div><div>an= d make commentary. Once this goes stable it will become much harder, if</di= v><div>not impossible, to make sweeping changes. If there is anything in th= ese</div><div>distributions (Test2 in particular) that makes you uncomforta= ble, you</div><div>need to speak now. I am not yet ready to say Test2-Workf= low is complete.</div><div><br></div><div><br></div><div>The work to make T= est::Builder use Test2 under the hood is also complete.</div><div><br></div= ><div>On CPAN:</div><div><a href=3D"https://metacpan.org/pod/release/EXODIS= T/Test-Simple-1.302013_011/lib/Test/Builder.pm">https://metacpan.org/pod/re= lease/EXODIST/Test-Simple-1.302013_011/lib/Test/Builder.pm</a></div><div><b= r></div><div>On Github: <a href=3D"https://github.com/Test-More/test-more/t= ree/Test2/master">https://github.com/Test-More/test-more/tree/Test2/master<= /a></div><div><br></div><div>Blead Patch Ticket:</div><div><a href=3D"https= ://rt.perl.org/Public/Bug/Display.html?id=3D127000#txn-1385453">https://rt.= perl.org/Public/Bug/Display.html?id=3D127000#txn-1385453</a></div><div><br>= </div><div>This work has been through several verification procedures:</div= ><div><br></div><div>=C2=A0- CPAN Smoking by Andreas K=C3=B6nig</div><div><= br></div><div>=C2=A0- My own testing against CPAN distributions</div><div><= br></div><div>=C2=A0- Blead patches I have written (though to date nobody h= as merged it in)</div><div><br></div><div>=C2=A0- A comparison of verbose t= esting output on blead with and without my</div><div>=C2=A0 =C2=A0patch <a = href=3D"https://github.com/exodist/blead_stream_diff">https://github.com/ex= odist/blead_stream_diff</a></div><div><br></div><div>Note: The preferred fo= rm of feedback is tickets on the relevant github projects<br></div><div><br= ></div><div>-Chad</div><div><br></div></div> --001a11403fd4ea002a052b0aa9c2--