Tengo una biblioteca foo/foo-lib
, que requires
cometer un 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 necesito 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 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 realizar correctamente require
la confirmación específica de GitHub en mi biblioteca, para que esté disponible en paquetes dependientes?
php
github
composer-php
Maciej Sz
fuente
fuente
Respuestas:
Tendrá que solicitar explícitamente la biblioteca Gaufrette en ese hash, con una
dev
bandera, tanto en su biblioteca como en su aplicación. Algo como esto debería funcionar en la aplicacióncomposer.json
:De la documentación :
La documentación también sugiere que deberá incluir el repositorio de Gaufrette en su
bar/bar-app
archivo Composer, aunque parece que esto no fue necesario en este caso. No estoy seguro de por qué.fuente
"minimum-stability": "dev"
a losbar/bar-app
requisitos?dev
estabilidad y por defectostable
para todo lo demás."url": "https://github.com/KnpLabs/Gaufrette.git"
desde el primer momento; acabo de eliminar el primer paquete y todavía funciona.Así es como se hace en la línea de comando:
No tiene que usar todo el hash, un hash de siete caracteres parece ser suficiente. Como se mencionó anteriormente, su proyecto deberá ser compatible con el desarrollo, del cual se quejará si aún no está configurado. Además, use
--with-dependencies
para obtener las dependencias del que está actualizando.fuente
Si está realizando cambios para un Repositorio de Git mediante la bifurcación, asegúrese de usar el El nombre del paquete está realmente definido en el propio archivo composer.json del paquete, así que aunque yo bifurqué el paquete en mi propia cuenta de joshuapaling github, y el paquete ahora residía en la URL https://github.com/joshuapaling/Cake-Resque.git , que no había influido en el nombre del paquete en absoluto, desde la perspectiva de los compositores.
Un error estúpido, pero soy nuevo en el mundo del compositor y no estaba claro al principio. Entonces, espero que esto ayude a alguien más con el mismo problema.
fuente