I'm wondering what happens when two projects under the same tree want
two different DBIC's.

Also, I think that Alt::* or the likes clarifies the intent to replace
something, rather than have a version of it (the way ::Tiny) does.
Basically what Chad said.

Regardless, I think Riba has a solid plan here on how to handle an
alternative fork of DBIC and that it certainly falls within "safe
habor".


On 26 October 2017 at 14:53, David Golden <x...@xdg.me> wrote:
> Neil, Andreas and I got an email request from Peter Rabbitson to confirm his
> reading of the new PAUSE operating model.  I see no reason for this
> discussion to be secret so I'm emailing cpan-workers for opinions, as
> suggested in the operating model document.  While PAUSE admins will make a
> final decision on this matter, I welcome non-admin opinions about the
> situation.
>
> Peter wants to know if his intended approach for alternative distributions
> falls under a "safe harbor" clause of the operating model.
>
> Specifically, the operating model says:
>
> "As a general rule, installing an indexed distribution (i.e. tarball, zip
> file), should not change post-install module loading for any package that is
> not indexed to that distribution... Installing your module(s) should not
> result in changes to someone else's modules that might already be installed,
> either by changing them or removing them... The one exception to the above
> is where that's the whole raison d'être of your module. In that case it
> should be clearly documented as such, and the installation process should
> get explicit user confirmation that they wish to proceed with this. The
> documentation and name of your module should be respectful."
>
> Peter's desire is to release Alt::* style modules whose raison d'être is to
> provide a drop in replacement:
>
>> As stated on the mailing list many moons ago, soon after the new
>> DBIx::Class management gets on with development I intend to ship my own
>> versions of these modules under a "fail-safe Alt::-like system". The indexed
>> namespace will of course have a different name ( DBIx::Class::Boring as
>> working title ), but will install over preexisting DBIx::Class* modules IFF
>> it recognizes what it is about to overwrite as being the contents of
>> DBIx::Class 0.082840 or earlier ( I will simply hash every file ever shipped
>> by myself, and compare against this whitelist of what is safe to overwrite
>> ). Failing that the installation will abort and a user will have to set a
>> specific environment variable in order to proceed further. I intend to trial
>> this with SQL::Abstract::Boring first. Given the available ecosystem
>> installers, this is the closest thing I can come up with while leaving a
>> choice to the userbase.
>
>
> What do we think about this?  Do we feel it falls under the 'safe harbor'
> exception?  If not, what would Peter need to do to be protected by it?
>
> My personal thoughts:
>
> The reason for the safe harbor clause in the first place was to allow this
> sort of thing while putting appropriate protections in place for end users
> -- so I think the intent is clearly protected by the safe harbor and
> questions should focus only on mechanisms and transparency.
> Per the "explicit user confirmation", I think an explicit opt-in must be
> present, not merely checking for overwriting via hashing.  If prompting
> during Makefile.PL, I would prefer the default to be "no", but I don't think
> the safe harbor is violated if the default is "yes" (people who auto-accept
> prompts get what they deserve).
> I would prefer checking for the presence of an environment variable over
> prompting as that similarly indicates explicit confirmation and is kinder to
> many poor users who auto-accept prompts -- or whose cpan client does so on
> their behalf.
> I'd be happy to see a convention established checking for a particular
> environment variable like "PERL_ALLOW_ALT_MODULES=1" that could apply across
> many Alt-style modules.  A Makefile.PL prompt could default to "yes" if the
> environment variable is true..
> I have no objection to "DBIx::Class::Boring" as a name.  I don't think we
> should mandate a convention of "Alt::*".
>
> What do others think?
>
> David
>
>
> --
> David Golden <x...@xdg.me> Twitter/IRC/GitHub: @xdg

Reply via email to