но они противоречат вашим требованиям или минимальной стабильности
Я создаю свой собственный slackbot. Я решил использовать проект в качестве библиотеки, чтобы помочь мне.
https://github.com/sagebind/slack-client/issues?utf8=%E2%9C%93&q=stability
Теперь мне нужно установить его с композитором.
Поэтому я использовал команду: composer require coderstephen/slack-client
... И я получаю сообщение об ошибке:
Problem 1
- Installation request for coderstephen/slack-client ^0.3.0 -> satisfiable by coderstephen/slack-client[v0.3.0].
- coderstephen/slack-client v0.3.0 requires devristo/phpws dev-master -> satisfiable by devristo/phpws[dev-master] but these conflict with your requirements or minimum-stability.
Хорошо. Тогда я решил изменить уровень стабильности на "dev" в моем composer.lock
:
"aliases": [],
"minimum-stability": "dev",
"stability-flags": {
"devristo/phpws": 20
},
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
"php": ">=5.5"
},
"platform-dev": []
Теперь у меня заканчиваются идеи о том, что делать. README говорит, что нужно сделать этот шаг в composer.json, но таких настроек нет:
Обратите внимание, что текущая версия имеет нестабильные зависимости.
Чтобы установить эти зависимости, вы можете установить "минимальную стабильность" в своем composer.json и порекомендовать установить "prefer-stable":
Мой композитор.json:
{
"name": "coderstephen/slack-client",
"keywords": ["slack", "api", "realtime"],
"license": "MIT",
"description": "A better Slack client, with RTM API support",
"authors": [{
"name": "Stephen Coakley",
"email": "[email protected]"
}],
"require": {
"php": ">=5.5",
"devristo/phpws": "dev-master",
"evenement/evenement": "2.0.*",
"guzzlehttp/guzzle": "~6.0",
"react/event-loop": "^0.4.1",
"react/promise": "^2.2"
},
"require-dev": {
"phpunit/phpunit": "~4.6",
"fzaninotto/faker": "~1.4",
"apigen/apigen": "^4.1"
},
"autoload": {
"psr-4": {
"Slack\\": "src"
}
},
"autoload-dev": {
"psr-4": {
"Slack\\Tests\\": "tests"
}
}
}
Кто-нибудь знает некоторые решения, которые я мог бы попробовать?
Ответы
Ответ 1
Добавьте minimum-stability
и prefer-stable
для вашего composer.json
(not composer.lock
):
{
"name": "coderstephen/slack-client",
"keywords": ["slack", "api", "realtime"],
"license": "MIT",
"description": "A better Slack client, with RTM API support",
"authors": [{
"name": "Stephen Coakley",
"email": "[email protected]"
}],
"require": {
"php": ">=5.5",
"devristo/phpws": "dev-master",
"evenement/evenement": "2.0.*",
"guzzlehttp/guzzle": "~6.0",
"react/event-loop": "^0.4.1",
"react/promise": "^2.2"
},
"require-dev": {
"phpunit/phpunit": "~4.6",
"fzaninotto/faker": "~1.4",
"apigen/apigen": "^4.1"
},
"autoload": {
"psr-4": {
"Slack\\": "src"
}
},
"autoload-dev": {
"psr-4": {
"Slack\\Tests\\": "tests"
}
},
"minimum-stability": "dev",
"prefer-stable": true
}
Ответ 2
Вы никогда не должны вручную редактировать файл composer.lock - это автоматически сгенерированный файл.
Похоже, вы показали файл composer.json пакета, который вы пытаетесь использовать, а не собственный проект composer.json. Свойства prefer-stable
и minimum-stability
должны быть добавлены в файл корневого файла project project.json:
{
"name": "xFlare/slack-bot",
"description": "xFlare Slack bot project",
"authors": [
{
"name": "xFlare"
}
],
"minimum-stability": "dev",
"prefer-stable": true,
"require": {
"php": ">=5.5",
"coderstephen/slack-client": "^0.3.0"
}
}
Ответ 3
Для других, имеющих такую же проблему, эти изменения лучше всего делать, используя сам composer вместо того, чтобы вручную изменять файл composer.json. Просто запустите следующие команды в консоли:
$ composer config minimum-stability dev
$ composer config prefer-stable true
Теперь вы можете запросить и обновить пакет:
$ composer require --no-update "vendor/package-name:version"
$ composer update
Доступные опции (в порядке стабильности): dev, alpha, beta, RC и stable
Ответ 4
Вы должны добавить минимальную стабильность в свой composer.json не в composer.lock. Этот вариант существует, см. Https://getcomposer.org/doc/04-schema.md#minimum-stability
Ответ 5
Я должен был выполнить команду глобально, иначе она не работала, редактируя файл вручную или вводя команду
composer global config minimum-stability dev
composer global config prefer-stable true
Ответ 6
Обычно эта проблема не имеет ничего общего с опцией минимальной стабильности или предпочтительной стабильности, но дело в том, что вы уже используете какую-то библиотеку прямо или косвенно, что необходимо в другой используемой вами библиотеке, но в более высокой версии.
Мой случай: я установил Codeception, но мне потребовался PHPUnit 4, но для Codeception требовался как минимум phpunit 6 - до 8. В то время как phpunit 6 поддерживал только php7.0, поэтому мне пришлось явно увеличить используемую версию phpunit с 4 до 6, чтобы код библиотеки мог работать с ним.
Вы можете спросить, может ли это повлиять на ваш проект, который уже опирается на более низкую версию библиотеки, возможно, могут быть какие-то критические изменения, но я не знаю, может ли быть какой-то обходной путь для использования одной версии для зависимости и другой версии для собственный проект.
Редактировать: мне также пришлось выполнить команду удаления composer для phpunit, в противном случае я не смог напрямую увеличить версию phpunit