Mi proyecto requiere la biblioteca A, A requiere B1. B1 está roto pero hay un tenedor B2. Quiero lograr que el compositor instale B2 en lugar de B1 incluso si A requiere B1 y no B2.
¿Como hacer eso?
En un proyecto Symfony requerimos la siguiente biblioteca:
"require": { "emanueleminotto/twig-cache-bundle": "1.0.2", }Esta biblioteca requiere otra biblioteca que actualmente está rota:
"require": { "asm89/twig-cache-extension": "^1.3" },Para la biblioteca rota, ya existe una solicitud de extracción durante más de 4 meses, pero el mantenedor se niega a fusionarla.
Mi pregunta es, si sería posible sobrescribir las dependencias también para las subdependencias, ¿siempre se usaría la bifurcación parcheada en lugar de la original?
Para asm89/twig-cache-extension existe la siguiente bifurcación con correcciones: https://github.com/blackandred/twig-cache-extension
Traté de agregar esta bifurcación a mi composer.json y registré la bifurcación explícitamente en "repositorios":
"repositories": [ { "type": "git", "url": "https://github.com/blackandred/twig-cache-extension" } ],y agregué la dependencia también en mi composer-json con una versión modificada a "dev-master":
"require": { "asm89/twig-cache-extension": "dev-master", "emanueleminotto/twig-cache-bundle": "1.0.2", }Pero dado que emanueleminotto/twig-cache-bundle aún requiere la biblioteca original, el compositor ignora la bifurcación e instala el original.
¿Algo que pueda hacer aquí?
Creo que los documentos tienen un buen ejemplo para este escenario.
Básicamente, debe definir un alias en su composer.json de la siguiente manera:
"require": { "asm89/twig-cache-extension": "dev-master as 1.3", "emanueleminotto/twig-cache-bundle": "1.0.2", }Añadido por el interrogador:
Todavía faltaba un paso: "composer update asm89/twig-cache-extension"