I'm updating Laravel from 6.18 to 8. Normally I would simply change the version in composer.json and run composer update.
There are a bunch of additional changes for 6.x to 7 so I'm trying to do this first (as I use the auth scaffolding that changed in 7 but isn't mentioned in the documentation for 8.x upgrades).
I change composer.json accordingly (also dropping some outdated other stuff) and run composer update, but this fails (changing directly to 8 fails too). Using composer update -w doesn't work either.
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": "^7.2.2",
"ajthinking/tinx": "^2.1",
"barryvdh/laravel-debugbar": "^3.2",
"davejamesmiller/laravel-breadcrumbs": "^5.2",
"doctrine/dbal": "^2.10",
"dompdf/dompdf": "^0.8.5",
"facade/ignition": "^1.16",
"fico7489/laravel-pivot": "^3.0",
"fideloper/proxy": "^4.0",
"guzzlehttp/guzzle": "^6.5",
"guzzlehttp/psr7": "^1.6",
"jrean/laravel-user-verification": "^8.0",
"kriswallsmith/buzz": "^1.1",
"laravel/framework": "6.x",
"laravel/helpers": "^1.1",
"laravel/tinker": "^1.0",
"laravelcollective/html": "^6.0",
"maatwebsite/excel": "^3.1",
"mailgun/mailgun-php": "^3.0",
"nunomaduro/phpinsights": "^1.11",
"nyholm/psr7": "^1.2",
"php-http/guzzle6-adapter": "^2.0",
"php-http/message": "^1.8",
"predis/predis": "^1.1",
"simplesoftwareio/simple-qrcode": "~2"
},
"require-dev": {
"filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^2.0",
"phpunit/phpunit": "^7.0"
},
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"files": [
"app/Http/helpers.php"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
"extra": {
"laravel": {
"dont-discover": [
]
}
},
"scripts": {
"post-root-package-install": [
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"@php artisan key:generate"
],
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
]
},
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
},
"minimum-stability": "dev",
"prefer-stable": true
}
to
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": "^7.2.2",
"barryvdh/laravel-debugbar": "^3.2",
"davejamesmiller/laravel-breadcrumbs": "^5.2",
"doctrine/dbal": "^2.10",
"dompdf/dompdf": "^0.8.5",
"facade/ignition": "^2.0",
"fico7489/laravel-pivot": "^3.0",
"fideloper/proxy": "^4.0",
"guzzlehttp/guzzle": "^6.5",
"guzzlehttp/psr7": "^1.6",
"kriswallsmith/buzz": "^1.1",
"laravel/framework": "7.x",
"laravel/helpers": "^1.1",
"laravel/tinker": "^2.0",
"laravelcollective/html": "^6.0",
"maatwebsite/excel": "^3.1",
"mailgun/mailgun-php": "^3.0",
"nunomaduro/phpinsights": "^1.11",
"nyholm/psr7": "^1.2",
"php-http/guzzle6-adapter": "^2.0",
"php-http/message": "^1.8",
"predis/predis": "^1.1",
"simplesoftwareio/simple-qrcode": "~2"
},
"require-dev": {
"filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^4.1",
"phpunit/phpunit": "^8.5"
},
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"files": [
"app/Http/helpers.php"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
"extra": {
"laravel": {
"dont-discover": [
]
}
},
"scripts": {
"post-root-package-install": [
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"@php artisan key:generate"
],
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
]
},
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
},
"minimum-stability": "dev",
"prefer-stable": true
}
But this is failing (Laravel isn't updated)
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Conclusion: don't install one of phploc/phploc[5.0.0], symfony/console[v5.0.0-BETA1] | install one of symfony/console[v4.1.12, ..., v4.4.30] (conflict analysis result)
- Conclusion: don't install facade/ignition 2.10.0 (conflict analysis result)
- Conclusion: don't install symfony/console[v5.3.0-BETA1] | install one of symfony/console[v4.4.3, ..., v4.4.17] (conflict analysis result)
- Conclusion: don't install symfony/console v4.4.3 (conflict analysis result)
- Conclusion: don't install symfony/console v4.4.4 (conflict analysis result)
- Conclusion: don't install symfony/console[v5.0.0-BETA1] | install one of symfony/console[v4.4.5, ..., v4.4.17] (conflict analysis result)
- Conclusion: don't install symfony/console[5.4.x-dev] | install one of symfony/console[v4.4.5, ..., v4.4.17] (conflict analysis result)
- Conclusion: don't install symfony/console[5.3.x-dev] | install one of symfony/console[v4.4.5, ..., v4.4.17] (conflict analysis result)
- Conclusion: don't install symfony/console[5.1.x-dev] | install one of symfony/console[v4.4.5, ..., v4.4.17] (conflict analysis result)
- Conclusion: don't install symfony/console[5.0.x-dev] | install one of symfony/console[v4.4.5, ..., v4.4.17] (conflict analysis result)
- Conclusion: don't install symfony/console v4.4.5 (conflict analysis result)
- Conclusion: don't install symfony/console[v5.3.0-BETA2] | install one of symfony/console[v4.4.6, ..., v4.4.17] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.2.0-BETA3] | install one of symfony/console[v4.4.6, ..., v4.4.17] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.2.0-BETA2] | install one of symfony/console[v4.4.6, ..., v4.4.17] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.2.0-BETA1] | install one of symfony/console[v4.4.6, ..., v4.4.17] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.1.0-BETA1] | install one of symfony/console[v4.4.6, ..., v4.4.17] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.0.0-BETA2] | install one of symfony/console[v4.4.6, ..., v4.4.17] (conflict analysis result)
- Conclusion: don't install symfony/console[v4.4.6] | install one of laravel/framework[v7.30.2, v7.30.3], symfony/console[v5.0.0-RC1, ..., v5.3.0-RC1] (conflict analysis result)
- Conclusion: don't install laravel/framework v7.30.2 (conflict analysis result)
- Conclusion: don't install facade/ignition 2.10.1 (conflict analysis result)
- Conclusion: don't install symfony/console[v5.1.0-RC1] | install one of symfony/console[v4.4.7, ..., v4.4.15] (conflict analysis result)
- Conclusion: don't install symfony/console v4.4.7 (conflict analysis result)
- Conclusion: don't install symfony/console[v5.3.0-BETA3] | install one of symfony/console[v4.4.8, ..., v4.4.17] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.3.0-BETA4] | install one of symfony/console[v4.4.8, ..., v4.4.17] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.0.0-RC1] | install one of symfony/console[v4.4.8, ..., v4.4.17] (conflict analysis result)
- Conclusion: don't install symfony/console[v4.4.8] | install one of laravel/framework[v7.30.3], symfony/console[v5.0.0, ..., v5.3.0-RC1] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.2.0-RC2] | install one of symfony/console[v4.4.9, ..., v4.4.17] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.1.0-RC2] | install one of symfony/console[v4.4.9, ..., v4.4.17] (conflict analysis result)
- Conclusion: don't install symfony/console[v4.4.10] | install one of laravel/framework[v7.30.3], symfony/console[v5.0.0, ..., v5.3.0-RC1] (conflict analysis result)
- Conclusion: don't install symfony/console[v4.4.9] | install one of laravel/framework[v7.30.3], symfony/console[v5.0.0, ..., v5.3.0-RC1] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.0.2] | install one of symfony/console[v4.4.11, ..., v4.4.29] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.2.0-RC1] | install one of symfony/console[v4.4.11, ..., v4.4.17] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.0.3] | install one of symfony/console[v4.4.11, ..., v4.4.29] (conflict analysis result)
- Conclusion: don't install symfony/console[v4.4.11] | install one of laravel/framework[v7.30.3], symfony/console[v5.0.0, ..., v5.3.0-RC1] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.0.0] | install one of symfony/console[v4.4.12, ..., v4.4.17] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.0.1] | install one of symfony/console[v4.4.12, ..., v4.4.17] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.3.0-RC1] | install one of symfony/console[v4.4.12, ..., v4.4.17] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.0.4] | install one of symfony/console[v4.4.12, ..., v4.4.16] (conflict analysis result)
- Conclusion: don't install symfony/console[v4.4.13] | install one of laravel/framework[v7.30.3], symfony/console[v5.0.5, ..., v5.1.0] (conflict analysis result)
- Conclusion: don't install symfony/console[v4.4.12] | install one of laravel/framework[v7.30.3], symfony/console[v5.0.5, ..., v5.1.0] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.0.6] | install one of symfony/console[v4.4.14, ..., v4.4.30] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.0.7] | install one of symfony/console[v4.4.14, ..., v4.4.30] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.0.8] | install one of symfony/console[v4.4.14, ..., v4.4.30] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.0.5] | install one of symfony/console[v4.4.14, v4.4.15, v4.4.16] (conflict analysis result)
- Conclusion: don't install symfony/console[v4.4.14] | install one of laravel/framework[v7.30.3], symfony/console[v5.0.9, v5.0.10, v5.0.11, v5.1.0] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.0.9] | install one of symfony/console[v4.4.15, v4.4.16] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.0.10] | install one of symfony/console[v4.4.15, v4.4.16] (conflict analysis result)
- Conclusion: don't install symfony/console[v4.4.15] | install one of laravel/framework[v7.30.3], symfony/console[v5.0.11] (conflict analysis result)
- Conclusion: don't install laravel/framework v7.30.3 (conflict analysis result)
- Conclusion: don't install facade/ignition 2.10.2 (conflict analysis result)
- Conclusion: don't install facade/ignition 2.11.0 (conflict analysis result)
- Conclusion: don't install symfony/console[v5.0.11] | install symfony/console[v4.4.16] (conflict analysis result)
- Conclusion: don't install symfony/console v4.4.16 (conflict analysis result)
- Conclusion: don't install facade/ignition 2.11.1 (conflict analysis result)
- Conclusion: don't install facade/ignition 2.11.2 (conflict analysis result)
- Conclusion: don't install symfony/console v4.4.17 (conflict analysis result)
- Conclusion: don't install symfony/console v5.1.0 (conflict analysis result)
- Conclusion: don't install symfony/console[v5.1.2] | install one of symfony/console[v4.4.18, ..., v4.4.29] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.1.3] | install one of symfony/console[v4.4.18, ..., v4.4.30] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.1.1] | install one of symfony/console[v4.4.18, ..., v4.4.29] (conflict analysis result)
- Conclusion: don't install symfony/console v4.4.18 (conflict analysis result)
- Conclusion: don't install symfony/console v5.1.4 (conflict analysis result)
- Conclusion: don't install symfony/console v4.4.19 (conflict analysis result)
- Conclusion: don't install symfony/console v5.1.5 (conflict analysis result)
- Conclusion: don't install symfony/console v4.4.20 (conflict analysis result)
- Conclusion: don't install symfony/console v5.1.6 (conflict analysis result)
- Conclusion: don't install symfony/console v4.4.21 (conflict analysis result)
- Conclusion: don't install symfony/console v5.1.7 (conflict analysis result)
- Conclusion: don't install symfony/console[v5.1.10] | install one of symfony/console[v4.4.22, ..., v4.4.30] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.1.11] | install one of symfony/console[v4.4.22, ..., v4.4.30] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.1.9] | install one of symfony/console[v4.4.22, ..., v4.4.29] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.1.8] | install one of symfony/console[v4.4.22, ..., v4.4.29] (conflict analysis result)
- Conclusion: don't install symfony/console v4.4.22 (conflict analysis result)
- Conclusion: don't install symfony/console v5.2.0 (conflict analysis result)
- Conclusion: don't install symfony/console v4.4.23 (conflict analysis result)
- Conclusion: don't install symfony/console v5.2.1 (conflict analysis result)
- Conclusion: don't install symfony/console v4.4.24 (conflict analysis result)
- Conclusion: don't install symfony/console v5.2.2 (conflict analysis result)
- Conclusion: don't install symfony/console v4.4.25 (conflict analysis result)
- Conclusion: don't install symfony/console v5.2.3 (conflict analysis result)
- Conclusion: don't install symfony/console[v5.2.6] | install one of symfony/console[v4.4.26, v4.4.27, v4.4.29, v4.4.30] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.2.7] | install one of symfony/console[v4.4.26, v4.4.27, v4.4.29, v4.4.30] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.2.5] | install one of symfony/console[v4.4.26, v4.4.27, v4.4.29] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.2.4] | install one of symfony/console[v4.4.26, v4.4.27, v4.4.29] (conflict analysis result)
- Conclusion: don't install symfony/console v4.4.26 (conflict analysis result)
- Conclusion: don't install symfony/console v5.2.8 (conflict analysis result)
- Conclusion: don't install symfony/console v4.4.27 (conflict analysis result)
- Conclusion: don't install symfony/console v5.2.10 (conflict analysis result)
- Conclusion: don't install symfony/console v4.4.29 (conflict analysis result)
- Conclusion: don't install symfony/console v5.2.11 (conflict analysis result)
- Conclusion: don't install facade/ignition 2.11.3 (conflict analysis result)
- Conclusion: don't install symfony/console v5.2.12 (conflict analysis result)
- Conclusion: don't install facade/ignition 2.11.4 (conflict analysis result)
- Conclusion: don't install symfony/console v5.2.14 (conflict analysis result)
- Conclusion: don't install symfony/console v5.3.0 (conflict analysis result)
- Conclusion: don't install symfony/console[v5.3.4] | install symfony/console[v4.4.30] (conflict analysis result)
- Conclusion: don't install symfony/console[v5.3.2] | install symfony/console[v4.4.30] (conflict analysis result)
- Conclusion: don't install symfony/console v4.4.30 (conflict analysis result)
- Conclusion: don't install facade/ignition 2.12.0 (conflict analysis result)
- Conclusion: don't install symfony/console v5.3.6 (conflict analysis result)
- Conclusion: don't install one of phploc/phploc[5.0.0], symfony/console[v5.3.7] (conflict analysis result)
- Conclusion: don't install sebastian/version[2.0.1] | install phploc/phploc[5.0.0] (conflict analysis result)
- Conclusion: install sebastian/version 2.0.1 (conflict analysis result)
- Conclusion: don't install one of phploc/phploc[5.0.0], symfony/console[v5.2.4] | install one of symfony/console[v4.4.18, ..., v4.4.30] (conflict analysis result)
- Conclusion: don't install symfony/console v4.4.2 (conflict analysis result)
- Conclusion: don't install one of phploc/phploc[5.0.0], symfony/console[v5.2.5] | install one of symfony/console[v4.4.18, ..., v4.4.30] (conflict analysis result)
- Conclusion: don't install one of phploc/phploc[5.0.0], symfony/console[v5.1.0-BETA1] | install one of symfony/console[v4.2.0, ..., v4.4.30] (conflict analysis result)
- Conclusion: don't install one of phploc/phploc[5.0.0], symfony/console[v5.0.0-BETA2] | install one of symfony/console[v4.1.12, ..., v4.4.30] (conflict analysis result)
- Root composer.json requires laravel/framework 7.x -> satisfiable by laravel/framework[v7.0.0, ..., 7.x-dev].
- Root composer.json requires phpunit/phpunit ^8.5 -> satisfiable by phpunit/phpunit[8.5.0, ..., 8.5.x-dev].
- Root composer.json requires nunomaduro/phpinsights ^1.11 -> satisfiable by nunomaduro/phpinsights[v1.11.0, ..., v1.x-dev].
- facade/ignition[2.0.0, ..., 2.9.1] require symfony/console ^5.0 -> satisfiable by symfony/console[v5.0.0-BETA1, ..., 5.4.x-dev].
- Conclusion: don't install symfony/console[5.2.x-dev] | install one of symfony/console[v4.4.2, ..., v4.4.17] (conflict analysis result)
- Root composer.json requires facade/ignition ^2.0 -> satisfiable by facade/ignition[2.0.0, ..., 2.12.0].
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
I have trouble reading what the problem exactly is and have no idea how to solve this (especially since I'm following the steps as laid out by the Laravel update documentation).
I've read about some similar-ish update problems because of different required package versions of symphony/console required by phploc and the require-dev packages? I don't know, nor even how to solve that if it was the case.
Update:
Trying to solve the problem with phploc/phploc, i tried composer update phploc/phploc "6.0.0" -w
.
This gives the following error:
Loading composer repositories with package information
Package "6.0.0" listed for update is not locked.
Dependency "laravel/framework" is also a root requirement. Package has not been listed as an update argument, so keeping locked at old version. Use --with-all-dependencies (-W) to include root dependencies.
Dependency "phpunit/phpunit" is also a root requirement. Package has not been listed as an update argument, so keeping locked at old version. Use --with-all-dependencies (-W) to include root dependencies.
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires facade/ignition ^2.0, found facade/ignition[2.0.0, ..., 2.12.0] but the package is fixed to 1.18.0 (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.
Problem 2
- Root composer.json requires laravel/framework 7.x, found laravel/framework[v7.0.0, ..., 7.x-dev] but the package is fixed to v6.20.33 (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.
Problem 3
- Root composer.json requires laravel/tinker ^2.0, found laravel/tinker[v2.0.0, ..., 2.x-dev] but the package is fixed to v1.0.10 (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.
Problem 4
- laravel/ui[v2.0.0, ..., 2.x-dev] require illuminate/console ^7.0 -> found illuminate/console[v7.0.0, ..., 7.x-dev] but these were not loaded, likely because it conflicts with another require.
- laravel/ui[v2.2.0, ..., v2.3.0] require illuminate/console ^7.0|^8.0 -> found illuminate/console[v7.0.0, ..., 7.x-dev, v8.0.0, ..., 8.x-dev] but these were not loaded, likely because it conflicts with another require.
- Root composer.json requires laravel/ui ^2.0 -> satisfiable by laravel/ui[v2.0.0, ..., 2.x-dev].
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
Tried composer require phploc/phploc, and update, both with and without -w All result pretty much in the following:
Problem 1
- nunomaduro/phpinsights is locked to version v1.13.0 and an update of this package was not requested.
- nunomaduro/phpinsights v1.13.0 requires phploc/phploc ^5.0 -> found phploc/phploc[5.0.0] but it conflicts with your root composer.json require (^7.0).
Problem 2
- phploc/phploc 7.0.x-dev is an alias of phploc/phploc dev-master and thus requires it to be installed too.
- phploc/phploc[dev-master, 7.0.0, ..., 7.0.2] require sebastian/version ^3.0 -> satisfiable by sebastian/version[3.0.0, 3.0.1, 3.0.2].
- You can only install one version of a package, so only one of these can be installed: sebastian/version[2.0.1, 3.0.0, 3.0.1, 3.0.2].
- phpunit/phpunit 7.5.20 requires sebastian/version ^2.0.1 -> satisfiable by sebastian/version[2.0.1].
- phpunit/phpunit is locked to version 7.5.20 and an update of this package was not requested.
- Root composer.json requires phploc/phploc ^7.0 -> satisfiable by phploc/phploc[7.0.0, 7.0.1, 7.0.2, 7.0.x-dev (alias of dev-master)].