php - usa - ¿Cómo exigir correctamente una confirmación específica en Composer para que esté disponible para los paquetes dependientes?
pagina oficial composer (1)
Tendrá que solicitar explícitamente la biblioteca Gaufrette en ese hash, con un indicador de desarrollo, tanto en su biblioteca como en su aplicación. Algo así debería funcionar en la aplicación composer.json
:
{
"name": "bar/bar-app",
"repositories": [
{
"type": "vcs",
"url": "ssh://git.example.com/foo-lib"
}
],
"require-dev": {
"foo/foo-lib": "dev-master",
"knplabs/gaufrette": "dev-master#2633721877cae79ad461f3ca06f3f77fb4fce02e"
}
}
De la documentación :
Si una de sus dependencias tiene una dependencia en un paquete inestable, también debe requerirlo explícitamente, junto con su indicador de estabilidad suficiente.
La documentación también sugiere que deberá incluir el repositorio de Gaufrette en su archivo Composer bar/bar-app
, aunque parece que esto no era necesario en este caso. No estoy seguro por qué.
Tengo una biblioteca foo/foo-lib
que requires
una confirmación específica de GitHub:
{
"name": "foo/foo-lib",
"repositories": [
{
"type": "vcs",
"url": "https://github.com/KnpLabs/Gaufrette.git"
}
],
"require": {
"knplabs/gaufrette": "dev-master#2633721877cae79ad461f3ca06f3f77fb4fce02e"
}
}
y funciona bien:
$ composer update
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Updating knplabs/gaufrette dev-master (2633721 => 2633721)
Checking out 2633721877cae79ad461f3ca06f3f77fb4fce02e
Generating autoload files
pero cuando requiero esa biblioteca en otro proyecto:
{
"name": "bar/bar-app",
"repositories": [
{
"type": "vcs",
"url": "ssh://git.example.com/foo-lib"
}
],
"require-dev": {
"foo/foo-lib": "dev-master"
}
}
produce un error de dependencia:
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Installation request for foo/foo-lib dev-master -> satisfiable by foo/foo-lib[dev-master].
- foo/foo-lib dev-master requires knplabs/gaufrette dev-master#2633721877cae79ad461f3ca06f3f77fb4fce02e -> no matching package found.
Entonces mi pregunta es: ¿cómo puedo solicitar correctamente la confirmación específica de GitHub en mi biblioteca, para que esté disponible en paquetes dependientes?