The following composer.json
:
{
"type": "project",
"minimum-stability": "dev",
"require": {
"jasny/bootstrap": ">=3.1.3",
"2amigos/yii2-file-input-widget": "*"
}
}
leads to the following output of composer update
:
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
- 2amigos/yii2-file-input-widget 0.1.2 requires jasny/bootstrap v3.1.0 -> satisfiable by jasny/bootstrap[v3.1.0] but these conflict with your requirements or minimum-stability.
- 2amigos/yii2-file-input-widget 0.1.1 requires jasny/bootstrap v3.1.0 -> satisfiable by jasny/bootstrap[v3.1.0] but these conflict with your requirements or minimum-stability.
- 2amigos/yii2-file-input-widget 0.1.0 requires jasny/bootstrap v3.1.0 -> satisfiable by jasny/bootstrap[v3.1.0] but these conflict with your requirements or minimum-stability.
- 2amigos/yii2-file-input-widget 1.0.0 requires jasny/bootstrap ~3.1.0 -> satisfiable by jasny/bootstrap[v3.1.3].
- 2amigos/yii2-file-input-widget 1.0.1 requires jasny/bootstrap ~3.1.0 -> satisfiable by jasny/bootstrap[v3.1.3].
- 2amigos/yii2-file-input-widget 1.0.2 requires jasny/bootstrap ~3.1.0 -> satisfiable by jasny/bootstrap[v3.1.3].
- 2amigos/yii2-file-input-widget dev-master requires jasny/bootstrap ~3.1.0 -> satisfiable by jasny/bootstrap[v3.1.3].
- 2amigos/yii2-file-input-widget 1.0.x-dev requires jasny/bootstrap ~3.1.0 -> satisfiable by jasny/bootstrap[v3.1.3].
- Conclusion: don't install jasny/bootstrap v3.1.3
- Installation request for 2amigos/yii2-file-input-widget * -> satisfiable by 2amigos/yii2-file-input-widget[0.1.0, 0.1.1, 0.1.2, 1.0.0, 1.0.1, 1.0.2, dev-master, 1.0.x-dev].
Why?
Ok, I understand, why versions 0.1.0–0.1.2
of 2amigos/yii2-file-input-widget
can't be installed — because they require jasny/bootstrap
of exact version 3.1.0
, which conflicts with >=3.1.3
requirement in composer.json
(and therefore composer clarifies: but these conflict with your requirements or minimum-stability
).
But, from common-sense view, composer can install version 1.0.0 or later of 2amigos/yii2-file-input-widget
(which requires jasny/bootstrap
of version ~3.1.0
, which is satisfiable by 3.1.3). Neither I see any obstacles for installing 2amigos/yii2-file-input-widget
1.0.0+ together with jasny/bootstrap
3.1.3, nor composer writes any explicit clarification about it. Still it says: Conclusion: don't install jasny/bootstrap v3.1.3
— why?
Workaround 1
It seems it works with "prefer-stable": true
.
Workaround 2
I actually found the other workaround some time ago: I replace "2amigos/yii2-file-input-widget": "*"
with "2amigos/yii2-file-input-widget": "1.0.2"
, do composer update
and then replace it back and do composer update
again — and it works.
The question is why it works in so strange way: why it works with more restrictions, but fails with less restrictions (with no clarification). E.g. if it works with 1.0.2
(or with prefer-stable) works — then why it doesn't with *
(or without prefer-stable)?