[Dbix-class] GOVERNANCE: Aggregation and conclusion
Darin McBride
darin.mcbride at shaw.ca
Wed Nov 2 22:32:31 GMT 2016
On Monday October 31 2016 11:22:07 AM Andrew Beverley wrote:
> On Mon, 31 Oct 2016 00:43:31 Matt S Trout <mst at shadowcat.co.uk> wrote:
> > Otherwise, I would suggest that you turn your plan into a full
> > proposal,
>
> TBH, I didn't even realise I was making a proposal until I saw the
> results[1]. I was merely bringing up one of Dave's earlier
> suggestions[2], which several others also seemed to like.
>
> But, in that case, I propose:
>
> - RIBASUSHI retains the current namespace, continuing to maintain and
> tighten that code base. The aim would be a rock-solid module with a
> very conservative rate of change and new features.
>
> - A new namespace DBIx::Class2 is created, owned and operated by MST's
> governance+core team proposal. Developers that want to create new
> features do so in this namespace.
>
> I do not understand the technicalities, but from what I have seen
> discussed, people would still be able to use DBIx::Class::* modules in
> both namespaces.
There is one piece missing, IMO. The rest of CPAN. Maybe there's a simple
solution, maybe this is a non-issue. But, not knowing the internals of DBIC
plugins, I'm going to ask the dumb questions.
As a user of DBIC, let's say I want to go with the "dangerous" DBIC2 instead
of the stable DBIC. It has some feature I really want that just got released
next year some time. However, I have a bunch of DBIx::Class plugins as well.
Do the plugins Just Work (TM) with DBIC2 despite the namespace change?
Obviously, my own code needs to derive off a new set of base classes, which I
sort of asked for by virtue of switching. Ideally, that'd be it - but is it?
If other DBIC modules that exist on CPAN need updating to work with DBIC2
(presumably, they could work against both DBIC and DBIC2), what updating is
it? What can DBIC2 do to minimise this?
Presumably, some plugins out there are "stable" already and their authors may
have already abandoned them, more or less, is this split going to be a make-
work project, with much angst and gnashing of teeth just to get all the
plugins various DBIC2 users are using updated on CPAN?
If changes need to be made, is there something reasonable that an end-user who
switches can do to monkey-patch things so that DBIC plugins will work with
DBIC2?
Is DBIC2 going to be able to co-exist with DBIC? Not merely on CPAN, but also
on a user's perl installation? I'm presuming this would be the plan, but I do
want to ask.
I think this information would greatly impact my ability to vote. Basically,
how broken is someone if they go with the very first DBIC2 release? If it will
take 2 or 3 years from the first DBIC2 release until the ecosystem supports it
well enough to make it viable for end-users to switch, I would think the split
would then be basically DOA - it would be entirely moot. On the other hand,
if there is a list of 5 or fewer steps that users would need to do to start
work with it, including all plugins (e.g., "in your code, switch this use
statement to that, and call this monkey-patch function against your plugins"),
it would tighten the feedback loop to at least make it viable. Further, if
there is a nice cargo-cult-style chunk of code that plugins can use to auto-
select between DBIC and DBIC2 support, right from that first release, it would
greatly aid in the transition speed. If, however, no plugin can support both
DBIC and DBIC2 simultaneously without duplicating code or other code smells,
then we would want to really think carefully about advocating a split. I just
don't know.
I think a secondary set of questions are also in need of asking, though final
decisions on these likely can be deferred to consensus should the split be
approved. Questions such as whether fixes found in DBIC2 that also affect DBIC
would be offered, whether as patches or pull requests or whatever format riba
would want them in, back to DBIC as a matter of default policy (this does not
tie riba's hands to actually accept them). And, if riba doesn't accept them
as is but fixes the same problem in another way, would that be merged back to
DBIC2? Another question here would be whether DBIC updates in general would
be merged into DBIC2. Having default positions on these from the "split"
side, should it exist, would show priorities as well as indicate whether votes
need to be taken, i.e., if the reverse from the default were being proposed.
More information about the DBIx-Class
mailing list