Hi, I can't update version 3.9 to version 4.1

Here are the error messages :

ubuntu@www-example-com /var/www/www-example-com $ composer require drupal/search_api_solr:^4.1 drupal/search_api_solr_multilingual:^3.1

./composer.json has been updated
Gathering patches for root package.
> DrupalProject\composer\ScriptHandler::checkComposerVersion
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for solarium/solarium (locked at 5.1.6) -> satisfiable by solarium/solarium[5.1.6].
    - drupal/search_api_solr 4.x-dev requires solarium/solarium ^6.0 -> satisfiable by solarium/solarium[6.0.0-alpha.1].
    - drupal/search_api_solr 4.1.0 requires solarium/solarium ^6.0 -> satisfiable by solarium/solarium[6.0.0-alpha.1].
    - Conclusion: don't install solarium/solarium 6.0.0-alpha.1
    - Installation request for drupal/search_api_solr ^4.1 -> satisfiable by drupal/search_api_solr[4.x-dev, 4.1.0].


Installation failed, reverting ./composer.json to its original content.

Comments

zenimagine created an issue. See original summary.

mkalkbrenner’s picture

You "locked" solarium to version 5.1.6. But search_api_solr requires solarium 6.0.0.

1. Run composer require solarium/solarium:^6.0 drupal/search_api_solr:^4.1 drupal/search_api_solr_multilingual:^3.1

Or

2. Edit your main composer.json and remove the requirement for solarium/solarium and run your command again:
composer require drupal/search_api_solr:^4.1 drupal/search_api_solr_multilingual:^3.1

Option 2 is the better choice because it removes the explicit lock.

zenimagine’s picture

@mkalkbrenner Thank you for your reply. For option 2 I delete solarium / solarium here :

            "require": {
                "consolidation/annotated-command": "^2.12",
                "drupal/core": "^8.7.7 || ^9",
                "drupal/search_api": "~1.15",
                "ext-dom": "*",
                "ext-json": "*",
                "ext-simplexml": "*",
                "maennchen/zipstream-php": "^1.2.0",
                "php": "^7.1.3",
                "solarium/solarium": "~5.0.3|~5.1.5",
                "zendframework/zend-stdlib": "^3.0.1"
            },

Should we also delete this part :

        {
            "name": "solarium/solarium",
            "version": "5.1.6",
            "source": {
                "type": "git",
                "url": "https://github.com/solariumphp/solarium.git",
                "reference": "9e073cc32c0144fc23215fe205cd0cb44e68b6ad"
            },
            "dist": {
                "type": "zip",
                "url": "https://api.github.com/repos/solariumphp/solarium/zipball/9e073cc32c0144fc23215fe205cd0cb44e68b6ad",
                "reference": "9e073cc32c0144fc23215fe205cd0cb44e68b6ad",
                "shasum": ""
            },
            "require": {
                "ext-json": "*",
                "php": "^7.1.3",
                "symfony/event-dispatcher": "^4.3 || ^5.0"
            },
            "require-dev": {
                "friendsofphp/php-cs-fixer": "^2.16",
                "guzzlehttp/guzzle": "^3.8 || ^6.2",
                "php-coveralls/php-coveralls": "^2.1",
                "phpunit/phpunit": "^8.0",
                "squizlabs/php_codesniffer": "^3.4",
                "zendframework/zend-http": "^2.8"
            },
            "suggest": {
                "minimalcode/search": "Query builder compatible with Solarium, allows simplified solr-query handling"
            },
            "type": "library",
            "autoload": {
                "psr-4": {
                    "Solarium\\": "src/"
                }
            },
            "notification-url": "https://packagist.org/downloads/",
            "license": [
                "BSD-3-Clause"
            ],
            "authors": [
                {
                    "name": "See GitHub contributors",
                    "homepage": "https://github.com/basdenooijer/solarium/contributors"
                }
            ],
            "description": "PHP Solr client",
            "homepage": "http://www.solarium-project.org",
            "keywords": [
                "php",
                "search",
                "solr"
            ],
            "time": "2020-02-14T15:18:59+00:00"
        },
mkalkbrenner’s picture

Don't touch composer.lock!

The snippet you posted looks like the composer.json of search_api_solr. You have to edit your main composer.json!

vlyalko’s picture

I am also having difficulties updating search_api_solr
I removed solarium/solarium from my main composer.json and when run composer require drupal/search_api_solr:^4.1, i get the following error:

Problem 1
- Installation request for solarium/solarium (locked at 5.1.6) -> satisfiable by solarium/solarium[5.1.6].
- drupal/search_api_solr 4.x-dev requires solarium/solarium ^6.0 -> satisfiable by solarium/solarium[6.0.0-alpha.1].
- drupal/search_api_solr 4.1.0 requires solarium/solarium ^6.0 -> satisfiable by solarium/solarium[6.0.0-alpha.1].
- Conclusion: don't install solarium/solarium 6.0.0-alpha.1
- Installation request for drupal/search_api_solr ^4.1 -> satisfiable by drupal/search_api_solr[4.x-dev, 4.1.0].

mkalkbrenner’s picture

Removing such locks is a pain.

If you can ensure that drupal is not running you can do

composer remove drupal/search_api_solr solarium/solarium maennchen/zipstream-php
composer require drupal/search_api_solr:^4.1
vlyalko’s picture

Thank you. Made sure Drupal was not running. Stopped all docker containers. Ran remove command. Same error on composer require drupal/search_api_solr:^4.1 as before

zenimagine’s picture

Thank you, I did not succeed with option 2, but option 1 works for me.

mkalkbrenner’s picture

Did you test option 1? Can we close this issue?

zenimagine’s picture

Status: Active » Fixed
bogdog400’s picture

Just FYI: option (2) did not work. But option (1) did.

vlyalko’s picture

after i uninstalled search_api_spellcheck module and removed it from composer, I was able to successfully update search_api_solr with the following:
composer require solarium/solarium:^6.0 drupal/search_api_solr:^4.1 drupal/search_api_solr_multilingual:^3.1

Thank you mkalkbrenner

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.

paddyilos’s picture

Option 2 #6 worked for me for 4.2

chike’s picture

I solved this by running two commands:

composer update solarium/solarium

and next,

composer update drupal/search_api_solr

... and both were updated!

chike’s picture

A simpler way to do this is to run composer update drupal/search_api_solr -W and Composer handles all of it. The -W flag means '--with-all-dependencies'.