grondilu / libdigest-raku

Raku implementation of various digests
Artistic License 2.0
27 stars 42 forks source link

Name collision with the Digest::HMAC module broke a number of dependents #35

Closed 2colours closed 1 year ago

2colours commented 1 year ago

Now that this module exposes Digest::HMAC, it breaks the module with that exact name because use Digest::HMAC (or even zef install Digest::HMAC apparently, under some circumstances) now might dispatch to your package, rather than the module, hence possibly breaking any old module that didn't specify an auth.

I'm going to check if something could be done about it on the zef side (under somewhat related issue https://github.com/ugexe/zef/issues/227). I ask you as well to think about solutions, please.

grondilu commented 1 year ago

How do package managers typically deal with that? Anyways, it seems to me that zef should detect these situations and request the user to either use disambiguation in the code or interactively during installation.

JJ commented 1 year ago

How do package managers typically deal with that? Anyways, it seems to me that zef should detect these situations and request the user to either use disambiguation in the code or interactively during installation.

By using an auth version in the one that chooses the name the last, or simply another name. May I ask you to do so? After all, all dependencies that already use Digest::HMAC do refer to the version that was published in the first place.

2colours commented 1 year ago

I think the issue, as described here, is solved. https://github.com/grondilu/libdigest-raku/issues/36 can be used for broader investigation of interface/module changes of this distribution and the means of coping.