Skip to content
This repository has been archived by the owner on Jan 6, 2024. It is now read-only.

Make an empty v3 version for guzzle7 compat #88

Closed
japerry opened this issue Sep 28, 2022 · 3 comments
Closed

Make an empty v3 version for guzzle7 compat #88

japerry opened this issue Sep 28, 2022 · 3 comments

Comments

@japerry
Copy link

japerry commented Sep 28, 2022

Description
Somewhat by design, the Guzzle6-adapter is incompatible with Guzzle7. Unfortunately it means that a dependent library/module cannot work with with Guzzle6 and 7 at the same time if it requires the features from the guzzle6-adapter.

So instead, I propose creating an empty version (v3) that requires Guzzle7. This will allow downstream users of this library to work with both versions of Guzzle. (require: guzzle6-adapter: ^2|^3; Guzzle: ^6|^7)

@dbu
Copy link
Contributor

dbu commented Sep 29, 2022

hi @japerry , i am not sure i understand what exactly you want to achieve.

independent modules should not depend on any specific adapter but on either the psr-18 client or php-http/httplug if they need the async client.
and consumers can use the guzzle7-adapter if you want to work with guzzle7.

for testing, you can use the require-dev section of composer to install with one of them, or if you think you need to test with both, you can set up your ci pipelines to do the necessary composer require ... to install each version you want to test.

is there a reason you specifically need the guzzle6-adapter?

@mglaman
Copy link

mglaman commented Sep 29, 2022

@dbu the goal is to provide a bridge for end-users who have a package that also has this as a dependency and provide updates regardless if that end-user has Guzzle 6 or Guzzle 7.

The request is a 3.x of this version which drops the adapter itself and just is a pass-through to Guzzle, since Guzzle 7 is PSR-18 compliant. That way our package could say php-http/guzzle6-adapter: ^2 || ^3. If their project still has Guzzle 6, they'll get this package with ^2.0. If they have Guzzle 7, they'll get the new ^3 without any breaking changes.

For reference, we have a Drupal module which required the adapter. Drupal 9 supported Guzzle 6. Drupal 10 supports Guzzle 7. We're trying to provide a bridge from 9 to 10 without having this package disappear from folk's dependencies and having to ask them to manually add it back.

@dbu
Copy link
Contributor

dbu commented Sep 30, 2022

the point of psr-18 is to avoid this kind of problems. your drupal module should require psr/http-client, not a concrete adapter. users will then have to chose the right adapter for their drupal version.

if you absolutely don't want to do that, you can create a new major version of your module that is only supporting drupal 10 and requires the guzzle7-adapter.

@dbu dbu closed this as completed Sep 30, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants