Here is what I want to do.

I want to release a Test-Stream dist on cpan. It will say in its POD that
it is still experimental, largely because of this debate right now. This
release will not be tied to Test::Builder, Test::More, etc. There will be a
limited compatibility module people can choose to use if they want to try
to mix old ecosystem and new. This module will be considered
ultra-experimental with a note that it might go away completely if we
decide it is not worth the effort.

This experiment will run for a little while, I am talking 2-6 months. At
one point we will make a decision on the future of Test-Stream and
Test-Simple:
* Decide we have stabilized it and are ok with having a forked ecosystem
(with possible limited compatibility between them)
* Decide that the forked ecosystem is a mistake and come back to the plan
we have been using of having backcompat.
* Decide Test-Stream is bullshit and abandon it.
* Something else we decide based on information we do not have yet since
the experiment has not happened

There is no real reason not to release the separate dist now, specially if
we warn people it is an experiment. We will also warn Test::* authors not
to switch their modules wholesale to Test::Stream since they would then
break backcompat.

This is not outright an abandonment of the current plan. I will ensure that
any work that occurs during the experiment is also merged into a
'punchlist' branch. If the experiment proves we do not like the forked
ecosystem, and need to backtrack to this we can pick up right where we left
off, and finish the punchlist (or come up with a new one).

This is very much opt-in. Nobody will be required to use Test::Stream, or
to maintain their tools in a compatible way. If it turns out nobody
bothers, or they think the burden of supporting both is too much, we will
know that this is the wrong option. If authors decide to try it, either by
limiting their module to the backcompat api, or by supporting both, then we
know that this alternative plan is a good one.

*Ultimately* my personal motivation is this: The backcompat burden is huge,
and has resulted in a lot of things I do not like in Test-Stream. I do not
like carrying forward these bad things that are inherited. This option
allows me to make Test-Stream much much better, and removes a lot of the
burden.

On Sat, May 2, 2015 at 12:36 PM, David Golden <x...@xdg.me> wrote:

> On Sat, May 2, 2015 at 3:03 PM, Stefan Seifert <n...@detonation.org>
> wrote:
>
>> What would that mean from a user perspective? Would one be able to mix
>> Test::More and Test::More2 (and higher level modules based on them) in the
>> same test file?
>>
>
> No, I meant that a .t file would have to choose one or the other.  So, for
> example, if I had a Test::More2 .t file, I'd have to use Test::Fatal2,
> Test::Deep2, etc. that are all built on Test::Builder2.
>
> Meanwhile, anyone would still be free to have a .t file with Test::More,
> Test::Fatal, etc.
>
> There are only a handful of really commonly used Test::* libraries and I
> suspect that they could be forked to use Test::Builder2 trivially, as few
> of them wind up needing the interesting new bits.  Only the Test::* modules
> that were monkey patching or can take advantage of hooks would need any
> real revision.
>
> David
>
> --
> David Golden <x...@xdg.me> Twitter/IRC: @xdg
>

Reply via email to