On Sat, May 2, 2015 at 7:31 PM, David Golden <x...@xdg.me> wrote: > On Sat, May 2, 2015 at 11:11 AM, Kent Fredric <kentfred...@gmail.com> > wrote: > >> >> That is, conceptually, its possible that a misguided author of a >> distribution at the same level as say, Test::Differences, thinks it wise to >> simply rewrite their existing code in the new framework. >> > > We've seen that horror show in Dancer/Dancer2 around plugins. > > I think that if we ship a Test::More2, then such a release should > encourage people to leave Test::Foo alone and fork it to Test::Foo2 > instead. Then a new ecosystem can build up around it without sacrificing > the existing one. >
That has its down-sides too, though, as we've seen in the Dancer/Dancer2 issue. Effectively what happened/happens is that, while plugins are now able to provide two different implementations without worrying about backwards compatibility (we originally wanted ןא to be seamless but turned out to be very hard), most plugins had a shared core. This was odd to maintain. You either fork it or you put it in a common "::Core" module, or you ship both in the same distribution. We're now rewriting the plugins architecture, but a situation of two classes provides both clear separation benefit and a headache of its own.