Drupal 10 compatibility: changing php-http/guzzle6-adapter dependency into php-http/guzzle7-adapter

Created on 1 June 2022, about 2 years ago
Updated 28 January 2024, 5 months ago

Geocoder has a dependecy on php-http/guzzle6-adapter which depends on guzzlehttp/guzzle:^6.0. But Drupal 9.4 allows now Guzzle 7 (see https://www.drupal.org/project/drupal/issues/3225966 ). Trying to update Guzzle from 6 to 7 I'm stuck because of this dependency. But I'm not sure it's still used by Geocoder.

Feature request
Status

RTBC

Version

4.0

Component

Code

Created by

🇷🇴Romania claudiu.cristea Arad 🇷🇴

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Merge Requests

Comments & Activities

Not all content is available!

It's likely this issue predates Contrib.social: some issue and comment data are missing.

  • Same problem.

    Problem 1
    - php-http/guzzle7-adapter 1.0.0 requires guzzlehttp/guzzle ^7.0 -> found guzzlehttp/guzzle[7.0.0, ..., 7.5.0] but the package is fixed to 6.5.8 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
    - drupal/geocoder 4.4.0 requires php-http/guzzle7-adapter ^1.0 -> satisfiable by php-http/guzzle7-adapter[1.0.0].
    - Root composer.json requires drupal/geocoder ^4.4 -> satisfiable by drupal/geocoder[4.4.0].

    Once installed unable to update the structure of items as it stops updating this running correctly- composer require geocoder-php/google-maps-provider

    • itamair committed 699c1401 on 8.x-3.x
      "php-http/guzzle7-adapter" dependency fixed into "^1.0" (Issue #3283651...
    • itamair committed 9f390c96 on 8.x-3.x
      Issue #3283651 by claudiu.cristea, itamair: Drupal 10 compatibility:...
  • Getting this error, not able to edit any content types because of this.

    Drupal 9.5.8
    PHP 8.1
    Geocoder 8.x-49

    ================
    [27-Apr-2023 10:26:05 Europe/London] Error: Class "Http\Adapter\Guzzle7\Client" not found in /home/afvbcouk/public_html/core/lib/Drupal/Component/DependencyInjection/Container.php on line 259 #0 /home/DOMAINNAME/public_html/core/lib/Drupal/Component/DependencyInjection/Container.php(177): Drupal\Component\DependencyInjection\Container->createService(Array, 'geocoder.http_a...')
    #1 /home/DOMAINNAME/public_html/modules/geocoder/src/ConfigurableProviderUsingHandlerWithAdapterBase.php(88): Drupal\Component\DependencyInjection\Container->get('geocoder.http_a...')
    #2 /home/DOMAINNAME/public_html/core/lib/Drupal/Core/Plugin/Factory/ContainerFactory.php(21): Drupal\geocoder\ConfigurableProviderUsingHandlerWithAdapterBase::create(Object(Drupal\Core\DependencyInjection\Container), Array, 'googlemaps', Array)
    #3 /home/DOMAINNAME/public_html/core/lib/Drupal/Component/Plugin/PluginManagerBase.php(83): Drupal\Core\Plugin\Factory\ContainerFactory->createInstance('googlemaps', Array)
    #4 /home/DOMAINNAME/public_html/core/lib/Drupal/Core/Plugin/DefaultSingleLazyPluginCollection.php(62): Drupal\Component\Plugin\PluginManagerBase->createInstance('googlemaps', Array)
    #5 /home/DOMAINNAME/public_html/core/lib/Drupal/Component/Plugin/LazyPluginCollection.php(80): Drupal\Core\Plugin\DefaultSingleLazyPluginCollection->initializePlugin('googlemaps')
    #6 /home/afvbcouk/public_html/modules/geocoder/src/Plugin/GeocoderProviderPluginCollection.php(22): Drupal\Component\Plugin\LazyPluginCollection->get('googlemaps')
    #7 /home/afvbcouk/public_html/core/lib/Drupal/Core/Plugin/DefaultSingleLazyPluginCollection.php(83): Drupal\geocoder\Plugin\GeocoderProviderPluginCollection->get('googlemaps')
    #8 /home/DOMAINNAME/public_html/core/lib/Drupal/Core/Plugin/DefaultSingleLazyPluginCollection.php(99): Drupal\Core\Plugin\DefaultSingleLazyPluginCollection->setConfiguration(Array)
    #9 /home/DOMAINNAME/public_html/core/lib/Drupal/Core/Plugin/DefaultSingleLazyPluginCollection.php(55): Drupal\Core\Plugin\DefaultSingleLazyPluginCollection->addInstanceId('googlemaps', Array)
    #10 /home/DOMAINNAME/public_html/modules/geocoder/src/Entity/GeocoderProvider.php(103): Drupal\Core\Plugin\DefaultSingleLazyPluginCollection->__construct(Object(Drupal\geocoder\ProviderPluginManager), 'googlemaps', Array)
    #11 /home/DOMAINNAME/public_html/modules/geocoder/src/Entity/GeocoderProvider.php(119): Drupal\geocoder\Entity\GeocoderProvider->getPluginCollection()
    #12 /home/afvbcouk/public_html/modules/geocoder/src/Entity/GeocoderProvider.php(144): Drupal\geocoder\Entity\GeocoderProvider->getPlugin()
    #13 /home/DOMAINNAME/public_html/modules/geocoder/src/ProviderPluginManager.php(236): Drupal\geocoder\Entity\GeocoderProvider->isConfigurable()
    #14 [internal function]: Drupal\geocoder\ProviderPluginManager->Drupal\geocoder\{closure}(Array, 0)
    #15 /home/DOMAINNAME/public_html/modules/geocoder/src/ProviderPluginManager.php(238): array_map(Object(Closure), Array, Array)
    #16 /home/DOMAINNAME/public_html/modules/geocoder/modules/geocoder_field/src/Plugin/Geocoder/Field/DefaultField.php(320): Drupal\geocoder\ProviderPluginManager->providersPluginsTableList(Array)
    #17 /home/afvbcouk/public_html/modules/geocoder/modules/geocoder_field/geocoder_field.module(91): Drupal\geocoder_field\Plugin\Geocoder\Field\DefaultField->getSettingsForm(Object(Drupal\field\Entity\FieldConfig), Array, Object(Drupal\Core\Form\FormState))
    #18 /home/DOMAINNAME/public_html/core/lib/Drupal/Core/Extension/ModuleHandler.php(562): geocoder_field_form_field_config_edit_form_alter(Array, Object(Drupal\Core\Form\FormState), 'field_config_ed...')
    #19 /home/DOMAINNAME/public_html/core/lib/Drupal/Core/Form/FormBuilder.php(838): Drupal\Core\Extension\ModuleHandler->alter('form', Array, Object(Drupal\Core\Form\FormState), 'field_config_ed...')
    #20 /home/DOMAINNAME/public_html/core/lib/Drupal/Core/Form/FormBuilder.php(282): Drupal\Core\Form\FormBuilder->prepareForm('field_config_ed...', Array, Object(Drupal\Core\Form\FormState))
    #21 /home/DOMAINNAME/public_html/core/lib/Drupal/Core/Controller/FormController.php(73): Drupal\Core\Form\FormBuilder->buildForm(Object(Drupal\field_ui\Form\FieldConfigEditForm), Object(Drupal\Core\Form\FormState))
    #22 [internal function]: Drupal\Core\Controller\FormController->getContentResult(Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\RouteMatch))
    #23 /home/DOMAINNAME/public_html/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array(Array, Array)
    #24 /home/DOMAINNAME/public_html/core/lib/Drupal/Core/Render/Renderer.php(580): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
    #25 /home/afvbcouk/public_html/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext(Object(Drupal\Core\Render\RenderContext), Object(Closure))
    #26 /home/DOMAINNAME/public_html/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array)
    #27 /home/DOMAINNAME/public_html/vendor/symfony/http-kernel/HttpKernel.php(169): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{closure}()
    #28 /home/afvbcouk/public_html/vendor/symfony/http-kernel/HttpKernel.php(81): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component\HttpFoundation\Request), 1)
    #29 /home/DOMAINNAME/public_html/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
    #30 /home/DOMAINNAME/public_html/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
    #31 /home/DOMAINNAME/public_html/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
    #32 /home/DOMAINNAME/public_html/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass(Object(Symfony\Component\HttpFoundation\Request), 1, true)
    #33 /home/DOMAINNAME/public_html/modules/advban/src/AdvbanMiddleware.php(57): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
    #34 /home/DOMAINNAME/public_html/core/modules/ban/src/BanMiddleware.php(50): Drupal\advban\AdvbanMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
    #35 /home/DOMAINNAME/public_html/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Drupal\ban\BanMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
    #36 /home/DOMAINNAME/public_html/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
    #37 /home/DOMAINNAME/public_html/modules/remove_http_headers/src/StackMiddleware/RemoveHttpHeadersMiddleware.php(49): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
    #38 /home/DOMAINNAME/public_html/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\remove_http_headers\StackMiddleware\RemoveHttpHeadersMiddleware->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
    #39 /home/DOMAINNAME/public_html/core/lib/Drupal/Core/DrupalKernel.php(718): Stack\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
    #40 /home/DOMAINNAME/public_html/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request))
    #41 {main}

    ==============

  • 🇬🇧United Kingdom the_g_bomb

    Confirmed this is still a problem for the recommended module version

    Running:
    composer require drupal/geocoder
    results in:

    Your requirements could not be resolved to an installable set of packages.

    Problem 1
    - php-http/guzzle7-adapter[1.0.0, ..., 1.x-dev] require guzzlehttp/guzzle ^7.0 -> found guzzlehttp/guzzle[7.0.0-beta.1, ..., 7.5.x-dev] but these were not loaded, likely because it conflicts with another require.
    - drupal/geocoder[4.9.0, ..., 4.x-dev] require php-http/guzzle7-adapter ^1.0 -> satisfiable by php-http/guzzle7-adapter[1.0.0, 1.x-dev].
    - Root composer.json requires drupal/geocoder ^4.9 -> satisfiable by drupal/geocoder[4.9.0, 4.x-dev].

    Running:
    composer require drupal/geocoder:4.x-dev@dev
    results in:
    Completed installation

  • I seem to be unable to install the dev version successfully.

    composer.phar require  'drupal/geocoder:4.x-dev@dev'
    ./composer.json has been updated
    Running composer update drupal/geocoder
    Loading composer repositories with package information
    Updating dependencies
    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - php-http/guzzle7-adapter 1.0.0 requires guzzlehttp/guzzle ^7.0 -> found guzzlehttp/guzzle[7.0.0, ..., 7.5.1] but the package is fixed to 6.5.8 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
        - drupal/geocoder 4.x-dev is an alias of drupal/geocoder dev-4.x and thus requires it to be installed too.
        - drupal/geocoder dev-4.x requires php-http/guzzle7-adapter ^1.0 -> satisfiable by php-http/guzzle7-adapter[1.0.0].
        - Root composer.json requires drupal/geocoder 4.x-dev@dev -> satisfiable by drupal/geocoder[4.x-dev (alias of dev-4.x)].
    
    Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
    

    Same as in the geocoder:^4.9 branch.

    Is there an alternative to first upgrade to 10 and then switch Geocoder back on - even though I can't uninstall it, since fields are using it?

  • 🇮🇹Italy itamair

    Hey here ... good news here, on my side

    I am on al fresh Drupal 10, with
    drupal/core-recommended

    and I cannot reproduce any specific issues with the following commands that require Geocoder 8.x-4.x branch now:

    composer require drupal/geocoder:^4.9
    composer require drupal/geocoder:4.x-dev@dev
    composer require drupal/geocoder:4.x-dev

    also I am able to successfully require the following geocoder providers:

    geocoder-php/arcgis-online-provider
    geocoder-php/google-maps-provider

    Specifically my configuration is the following:

    Drupal version: 10.0.4
    PHP: 8.1
    Composer version 2.5.4
    etc.

    It looks to me that Geocoder 8.x-4.x branch can be installed nicely on Drupal 10 now, without major core and accessory libraries incompatibilities.
    Do you experience the same?
    Can we set it as Recommended branch too?

  • 🇨🇦Canada dadderley Vancouver

    I have a Drupal 9.5.9 site running in php8.1.13.
    When I try to update Geocoder.

    me@mebox ost9 % composer require 'drupal/geocoder:^4.9'
    ./composer.json has been updated
    Running composer update drupal/geocoder
    Loading composer repositories with package information
    Info from https://repo.packagist.org: #StandWithUkraine
    Updating dependencies
    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - php-http/guzzle7-adapter 1.0.0 requires guzzlehttp/guzzle ^7.0 -> found guzzlehttp/guzzle[7.0.0, ..., 7.5.1] but the package is fixed to 6.5.8 (lock file version) by a partial update and that version does not match. Make sure you list it as an argument for the update command.
        - drupal/geocoder 4.9.0 requires php-http/guzzle7-adapter ^1.0 -> satisfiable by php-http/guzzle7-adapter[1.0.0].
        - Root composer.json requires drupal/geocoder ^4.9 -> satisfiable by drupal/geocoder[4.9.0].
    
    Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
    
    Installation failed, reverting ./composer.json and ./composer.lock to their original content.
    me@mebox ost9 %

    I want to upgrade to Drupal 10 and this is a blocker.

    Looks like installing geocoder:4.9 on a Drupal 10 site works, but how do I do the upgrade?

  • I followed the example of csv_serialization :

    "When preparing for an upgrade to Drupal 10 we recommend that you widen your Composer version constraints to allow either 2.x or 3.x: composer require drupal/csv_serialization:^2.0 || ^3.0. This will allow the module to be automatically upgraded when you upgrade Drupal core."

    In the case of geocoder I edited composer.json to:

    "require": {
      ...
      "drupal/geocoder": "^3.20 || ^4.0",
      ...
    }
    

    Upgrade status continued to report that geocoder was incompatible.
    Nevertheless, I ran:

    composer require 'drupal/core-recommended:^10' 'drupal/core-composer-scaffold:^10' 'drupal/core-project-message:^10' --update-with-dependencies --no-update
    

    Followed by:

    composer update
    

    Database updates proceeded correctly.

    Drupal updated to 10.0.9 and geocoder updated to 8.x-4.9.

    Success.

    I suggest adding a paragraph to the project page:

    "When preparing for an upgrade to Drupal 10 we recommend that you widen your composer version constraints to allow either 3.x or 4.x. Edit composer.json to require drupal/geocoder: "^3.0 || ^4.0". This will allow the module to be automatically upgraded when you upgrade Drupal core."

  • 🇨🇦Canada dadderley Vancouver

    Thank you Graham Shepherd

    This simple manual modification of composer.json allowed me to upgrade from 9.5.9 to 10.0.9 and geocoder to be updated from 8.x-3.34 to 10.x-4.9

  • 🇮🇹Italy itamair

    Thanks @GrahamShepherd ... noted your suggestion.

  • Thanks @GrahamShepherd,
    worked here as well now.

  • Thanks for the feedback.

    It would seem appropriate that upgrade_status should recognize the broadening of composer.json version requirements where appropriate. There are probably several modules in the geocoder and csv_serialization category where a new version is required for Drupal 10 which is not compatible with Drupal 9.

    I wll put in a suggestion to that effect against that module.

    • itamair committed d0a926c0 on 8.x-4.x
      Readme.md documentation upgrade on how to properly upgrade to Drupal 10...
    • itamair committed fede55e6 on 8.x-4.x
      Drupal.org Project page documentation upgrade on how to properly upgrade...
    • itamair committed 91f4cf3d on 8.x-3.x
      Drupal.org Project page documentation upgrade on how to properly upgrade...
  • 🇮🇹Italy itamair

    @GrahamShepherd ... your suggested documentation on how to (more) seamlessly upgrade to Drupal 10 and Geocoder 4.x have been added in the Drupal.org Geocoder main page documentation (so as also on the Geocoder 4.x-dev branch Readme.md file)

  • Thanks @itamair. I notice that on the project page the link to the issue goes nowhere, ie it need an href="".

    "This will allow the module to be automatically upgraded when you upgrade Drupal core.
    (For more info refer to this Issue Comment Drupal 10 compatibility: changing php-http/guzzle6-adapter dependency into php-http/guzzle7-adapter RTBC .)"

    It's petty, I'm sorry, but for completeness.

    I have added this issue to the upgrade status module: https://www.drupal.org/project/upgrade_status/issues/3363765 Recognize the availability of a valid later module release which is not backwards compatible Active

  • 🇮🇹Italy itamair

    thanks for the catch @GrahamShepherd ... fixed that link.

  • 🇺🇸United States hockey2112

    composer require drupal/geocoder:^3.20 || ^4.0

    That worked for me as well. Thanks!

  • Tried
    composer require drupal/geocoder:^3.20 - not worked

    Tried
    composer require drupal/geocoder:^4.0 - worked

    Cheers

  • 🇬🇧United Kingdom Alina Basarabeanu

    Upgrading from 3 to 4 versions is impossible because of the php-http/guzzle6-adapter requirement.
    Can this fix be merged as soon as possible? we really need to move to Drupal 10 and this is the only module blocking us.

  • 🇮🇹Italy itamair

    @Alina Basarabeanu before upgrading from geocoder 3.x to 4.x branch you indeed need to remove php-http/guzzle6-adapter dependency and (before of it) any other module/library/component you do have that is depending from it ...

    Once done, you will be able to "composer require 'drupal/geocoder:^4.9'", and require php-http/guzzle7-adapter along with it ...

  • 🇬🇧United Kingdom Alina Basarabeanu

    Merging the pull request for this issue makes the process much easier and faster.

  • 🇮🇹Italy itamair

    Well ... the MR attached to this was just an initial workaround removing the php-http/guzzle6-adapter dependency.
    But it doesn't look a solid and wise solution, because it assumes the php-http/guzzle6-adapter or php-http/guzzle7-adapter will be parallel required somehow, but they are a dependency requirement for this module, and it won't work if not already present and not automatically required as dependency.

  • 🇫🇷France erwangel

    Typing composer require drupal/geocoder:^3.20 || ^4.0 as per #61 simply installs the geocoder 3 (3.34.0 in my case on Drupal 9.5). Of course geocoder 3 seems to work with Drupal 9.5. But we still need a solution for installing geocoder 4 on Drupal 9 and 10.

  • 🇮🇹Italy itamair

    Hey hey! Now the following:

    composer require 'drupal/geocoder'

    will require drupal/geocoder:4.x branch by default, as the 4.x is marked as Recommended branch,
    and so in Drupal 9.4+ and Drupal 10

    Of course you should get rid from your code base (and composer requirements) of any constrain that prevents it (even your PHP version, that should be 8+).

    SO DEFINITELY WE HAVE A CLEAR WAY TO INSTALL Gecoder module (4.x) for Drupal 9.4+ and Drupal 10

    If you blocked on this it depends on your composer code base & requirements / constraints (and may be your lack of capabilities in solving them),
    and not caused by Geocoder 4.x limitations / incompatibilities ...

    Otherwise please arise and document clear blocker on this.

  • 🇬🇧United Kingdom robcarr Perthshire, Scotland

    The blocker if you are trying to prep a site for D9 > D10 upgrade is guzzlehttp/guzzle. Run `composer why guzzlehttp/guzzle` and you can see that drupal/core-recommended (9.5.11) requires guzzlehttp/guzzle (~6.5.8) (whereas drupal/core is more flexible as it requires guzzlehttp/guzzle (^6.5.8 || ^7.4.5)).

    Only solution is at #3283651-50: Drupal 10 compatibility: changing php-http/guzzle6-adapter dependency into php-http/guzzle7-adapter (#50) to modify your composer.json file

  • 🇨🇦Canada netgeek123

    Ran;

    composer why guzzlehttp/guzzle
    donutdan4114/shopify            2020.01.2 requires guzzlehttp/guzzle (~6.0)             
    drupal/core                     9.5.11    requires guzzlehttp/guzzle (^6.5.8 || ^7.4.5) 
    drupal/core-recommended         9.5.11    requires guzzlehttp/guzzle (~6.5.8)           
    drush/drush                     11.6.0    requires guzzlehttp/guzzle (^6.5 || ^7.0)     
    enlightn/security-checker       v1.11.0   requires guzzlehttp/guzzle (^6.3|^7.0)        
    php-http/guzzle6-adapter        v2.0.2    requires guzzlehttp/guzzle (^6.0)             
    sainsburys/guzzle-oauth2-plugin v3.0.7    requires guzzlehttp/guzzle (^6.0|^7.0)

    Simply changing the composer.json php-http/guzzle6-adapter v2.0.2 requires guzzlehttp/guzzle (^6.0) to requires guzzlehttp/guzzle (^6.5.8 || ^7.4.5) should work?

  • Status changed to Needs work 5 months ago
  • 🇺🇸United States RoloDMonkey

    Since it has been more than a year since this was marked RTBC, and people are still actively debating the correct solution, I am bumping this back down to "Needs work".

  • Status changed to RTBC 5 months ago
  • 🇮🇹Italy itamair

    Thanks @RoloDMonkey but this doesn't need any work on the Geocoder side, as there is no real issue in adopting Geocoder 8.x-4.x branch and also no real in moving from 8.x-3.x into 8.x-4.x,
    but only a correct approach and understanding how each existing composer based project should remove any dependency from php-http/guzzle6-adapter and simply move on ...

    Previous comments (#50) simply prove that a smart and feasible upgrade is possible and its advice/suggestion was even added in the project page.

    Users simply need to go through this thread to find their way ...
    RTBC is the proper state, to keep this still in the Open issues.

    • itamair committed d0a926c0 on 8.x-3.x
      Readme.md documentation upgrade on how to properly upgrade to Drupal 10...
    • itamair committed fede55e6 on 8.x-3.x
      Drupal.org Project page documentation upgrade on how to properly upgrade...
Production build 0.69.0 2024