Page MenuHomePhabricator

What to do about multiple libraries implementing the same thing?
Open, Needs TriagePublic

Description

While poking around at T227244, I noticed it brings in nyholm/psr7 and we already have guzzlehttp/psr7...

What should we be doing in these cases? Really, we don't want multiple competing implementations of the same thing, but this is going to happen more and more in future as people build competing implementations of specs

While they're going to be namespaced, and not going to conflict.. It does feel icky

Related Objects

Event Timeline

Reedy created this task.Sep 5 2019, 1:43 PM
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptSep 5 2019, 1:43 PM
Reedy added a comment.Jan 13 2020, 3:20 PM

Another one is now MediaWiki-extensions-OAuth having two different JWT implementations; firebase/php-jwt for OAuth 1.0 and lcobucci/jwt as a dependancy for league/oauth2-server as for OAuth 2.0

:|

For PSR-7 can we ask upstream to just depend upon the the interface so we only need one implementation?

Reedy added a comment.Jan 13 2020, 9:57 PM

For PSR-7 can we ask upstream to just depend upon the the interface so we only need one implementation?

Maybe, I honestly haven't asked. It could be worth a conversation.

https://packagist.org/packages/guzzlehttp/psr7 has 145M installs. https://packagist.org/packages/nyholm/psr7 has 1.52M. Which isn't insignificant, either

It's certainly possible someone else has the alternative view; they already use nyholm/psr7, why would they necessarily want to change to another?

Krinkle updated the task description. (Show Details)May 16 2020, 7:14 PM