Jeff Lambert
Jeff Lambert

Reputation: 24661

Dependency issue upgrading laravel 4 package to laravel 5

I am attempting to update a composer package for Laravel 5. The Laravel 4 composer.json schema includes this:

"require": {
    "php": ">=5.3.3",
    "illuminate/foundation": "4.*",
    "illuminate/support": "4.*"
},

I am attempting to update it to something like this:

"require": {
    "php": ">=5.3.3",
    "illuminate/foundation": "4.*",
    "illuminate/support": "5.*"
},

After running composer install, I got an error saying that illuminate/foundation could not be found, so I tried changing the minimum-stability to dev. Composer can find the package now, but I get this error:

Problem 1
- illuminate/exception dev-master requires illuminate/support 5.0.* -> satisfiable by illuminate/support[5.0.x-dev, v5.0.0, v5.0.4].
- Can only install one of: illuminate/support[dev-master, 5.0.x-dev].
- Can only install one of: illuminate/support[v5.0.0, dev-master].
- Can only install one of: illuminate/support[v5.0.4, dev-master].
- illuminate/foundation 4.0.x-dev requires illuminate/exception dev-master -> satisfiable by illuminate/exception[dev-master].
- illuminate/foundation 4.0.x-dev requires illuminate/support dev-master -> satisfiable by illuminate/support[dev-master].
- Installation request for illuminate/foundation 4.* -> satisfiable by illuminate/foundation[4.0.x-dev].

I need illuminate/support to be 5+ because of the changes in Laravel 5's service providers regarding config publishing. I need illuminate/foundation because the unit tests require it.

How can I structure these dependencies so composer can install them?

I have tried also setting illuminate/support to dev-master, and both illuminate packages to dev-master, both resolving to different errors. Is the only way to fix this to update upstream dependencies?

I have already gotten the updates to install and (seemingly) work correctly in a Laravel 5 installation. I may have worked around my issue by just making the entire laravel/framework a dependency, but I really don't think I want to leave that as the solution.

Additional outputs from running composer install

illuminate/support @ dev-master and illuminate/foundation at 4.* :

Problem 1
- Installation request for illuminate/foundation 4.* -> satisfiable by illuminate/foundation[4.0.x-dev].
- illuminate/exception dev-master requires illuminate/support 5.0.* -> satisfiable by illuminate/support[5.0.x-dev].
- Can only install one of: illuminate/support[dev-master, 5.0.x-dev].
- illuminate/foundation 4.0.x-dev requires illuminate/exception dev-master -> satisfiable by illuminate/exception[dev-master].
- Installation request for illuminate/support dev-master -> satisfiable by illuminate/support[dev-master].

illuminate/support @ dev-master and illuminate/foundation at dev-master :

Problem 1
- Installation request for illuminate/foundation dev-master -> satisfiable by illuminate/foundation[dev-master].
- illuminate/exception dev-master requires illuminate/support 5.0.* -> satisfiable by illuminate/support[5.0.x-dev].
- Can only install one of: illuminate/support[dev-master, 5.0.x-dev].
- illuminate/foundation dev-master requires illuminate/exception dev-master -> satisfiable by illuminate/exception[dev-master].
- Installation request for illuminate/support dev-master -> satisfiable by illuminate/support[dev-master].

Upvotes: 1

Views: 326

Answers (1)

Wouter J
Wouter J

Reputation: 41934

Never ever use dev-master as version, just use 5.* (for both packages) and you're ready.

Upvotes: 2

Related Questions