Darius.V
Darius.V

Reputation: 908

Composer updating codeception - phpunit does not update

I run

rm -rf vendor && composer update codeception/codeception -v

I get error:

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

  Problem 1
    - The requested package phpunit/phpunit (locked at 4.1.6, required as 4.8.x-dev) is satisfiable by phpunit/phpunit[4.1.6] but these conflict with your requirements or minimum-stability.
  Problem 2
    - The requested package behat/gherkin (locked at v2.3.5, required as ~4.4.0) is satisfiable by behat/gherkin[v2.3.5] but these conflict with your requirements or minimum-stability.
  Problem 3
    - behat/behat v2.5.5 requires behat/gherkin ~2.3.0 -> satisfiable by behat/gherkin[2.3.x-dev, v2.3.0, v2.3.1, v2.3.2, v2.3.3, v2.3.4, v2.3.5] but these conflict with your requirements or minimum-stability.
    - behat/behat v2.5.5 requires behat/gherkin ~2.3.0 -> satisfiable by behat/gherkin[2.3.x-dev, v2.3.0, v2.3.1, v2.3.2, v2.3.3, v2.3.4, v2.3.5] but these conflict with your requirements or minimum-stability.
    - behat/behat v2.5.4 requires behat/gherkin ~2.3.0 -> satisfiable by behat/gherkin[2.3.x-dev, v2.3.0, v2.3.1, v2.3.2, v2.3.3, v2.3.4, v2.3.5] but these conflict with your requirements or minimum-stability.
    - behat/behat v2.5.3 requires behat/gherkin ~2.3.0 -> satisfiable by behat/gherkin[2.3.x-dev, v2.3.0, v2.3.1, v2.3.2, v2.3.3, v2.3.4, v2.3.5] but these conflict with your requirements or minimum-stability.
    - behat/behat v2.5.2 requires behat/gherkin ~2.3.0 -> satisfiable by behat/gherkin[2.3.x-dev, v2.3.0, v2.3.1, v2.3.2, v2.3.3, v2.3.4, v2.3.5] but these conflict with your requirements or minimum-stability.
    - behat/behat v2.5.1 requires behat/gherkin ~2.3.0 -> satisfiable by behat/gherkin[2.3.x-dev, v2.3.0, v2.3.1, v2.3.2, v2.3.3, v2.3.4, v2.3.5] but these conflict with your requirements or minimum-stability.
    - behat/behat v2.5.0 requires behat/gherkin ~2.2.9 -> satisfiable by behat/gherkin[v2.2.9] but these conflict with your requirements or minimum-stability.
    - Installation request for behat/behat 2.5.* -> satisfiable by behat/behat[v2.5.0, v2.5.1, v2.5.2, v2.5.3, v2.5.4, v2.5.5].

Currently in require-dev there are following settings:

"phpunit/phpunit": "4.8.x-dev",
        "phpunit/dbunit": "1.3.*",
        "codeception/codeception": "2.2.7",
        "fzaninotto/faker": "1.4.*",
        "flow/jsonpath": "0.2.*",
        "behat/behat": "2.5.*",
        "behat/gherkin": "~4.4.0",

and also one not related translations package created by our company.

I am trying to update codeception to the latest version.

I have experimented setting phpunit various versions but I am not able to get rid of errors.

What I am doing wrong?

Update

I updated composer.json to use same versions of packages as in

composer show

output, except for

"zendframework/zend-crypt": "2.3.*",

Ran

composer update

Still getting errors:

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
    - mabuzagu/pdo-dblib-module dev-master requires doctrine/doctrine-orm-module ^1.0.0 -> satisfiable by doctrine/doctrine-orm-module[1.0.0, 1.1.0].
    - mabuzagu/pdo-dblib-module dev-master requires doctrine/doctrine-orm-module ^1.0.0 -> satisfiable by doctrine/doctrine-orm-module[1.0.0, 1.1.0].
    - doctrine/doctrine-orm-module 1.0.0 requires doctrine/orm >=2.5,<2.7 -> satisfiable by doctrine/orm[v2.5.0, v2.5.1, v2.5.2, v2.5.3, v2.5.4, v2.5.5].
    - doctrine/orm v2.5.5 requires doctrine/common >=2.5-dev,<2.7-dev -> satisfiable by doctrine/common[2.5.x-dev, 2.6.x-dev, v2.5.0, v2.5.0-beta1, v2.5.1, v2.5.2, v2.5.3, v2.6.0, v2.6.1, v2.6.2] but these conflict with your requirements or minimum-stability.
    - doctrine/orm v2.5.4 requires doctrine/common >=2.5-dev,<2.7-dev -> satisfiable by doctrine/common[2.5.x-dev, 2.6.x-dev, v2.5.0, v2.5.0-beta1, v2.5.1, v2.5.2, v2.5.3, v2.6.0, v2.6.1, v2.6.2] but these conflict with your requirements or minimum-stability.
    - doctrine/orm v2.5.3 requires doctrine/common >=2.5-dev,<2.7-dev -> satisfiable by doctrine/common[2.5.x-dev, 2.6.x-dev, v2.5.0, v2.5.0-beta1, v2.5.1, v2.5.2, v2.5.3, v2.6.0, v2.6.1, v2.6.2] but these conflict with your requirements or minimum-stability.
    - doctrine/orm v2.5.2 requires doctrine/common >=2.5-dev,<2.6-dev -> satisfiable by doctrine/common[2.5.x-dev, v2.5.0, v2.5.0-beta1, v2.5.1, v2.5.2, v2.5.3] but these conflict with your requirements or minimum-stability.
    - doctrine/orm v2.5.1 requires doctrine/common >=2.5-dev,<2.6-dev -> satisfiable by doctrine/common[2.5.x-dev, v2.5.0, v2.5.0-beta1, v2.5.1, v2.5.2, v2.5.3] but these conflict with your requirements or minimum-stability.
    - doctrine/orm v2.5.0 requires doctrine/common >=2.5-dev,<2.6-dev -> satisfiable by doctrine/common[2.5.x-dev, v2.5.0, v2.5.0-beta1, v2.5.1, v2.5.2, v2.5.3] but these conflict with your requirements or minimum-stability.
    - doctrine/doctrine-orm-module 1.1.0 requires php ^5.6 || ^7.0 -> your PHP version (5.5.9) does not satisfy that requirement.
    - Installation request for mabuzagu/pdo-dblib-module dev-master -> satisfiable by mabuzagu/pdo-dblib-module[dev-master].

Why is that? It likely should not be updating anything now until I set some new version.

Upvotes: 2

Views: 5758

Answers (2)

Konstantin Ivanov
Konstantin Ivanov

Reputation: 410

there are two points:

  1. Composer often unable to perform update with dependencies.
  2. Codeception is not bound to your project. (if you have not done otherwise on purpose ) which lets you do:

    composer remove codeception/codeception

    +

    composer require "codeception/codeception:2.2.7"

p.s. had the same issue recently upgrading from 2.0

Upvotes: 1

BVengerov
BVengerov

Reputation: 3007

Just run composer update

What I am doing wrong?

The problem is that you are trying to update a single package instead of updating the whole list of packages, as is required by the newer version of codeception.

As you can see in the error message, all other dependencies are eager to be updated, but are locked as they already have versions specified in the composer.lock file.

Removing the .lock file may help, but is not the 'right way'. Just tell composer explicitly to update everything according to composer.json.

P.S. You might also consider using composer clear-cache in your mentioned command in the future for cases when you just absolutely positively want to get every dependency downloaded and installed from scratch.

Upvotes: 2

Related Questions