Mantenga dos versiones menores diferentes de la misma dependencia transicional en Golang.
Tengo la siguiente situación. Tengo 2 dependencias en mi proyecto:
– example.com/a – requiere example.com/c v0.1.0
– example.com/b – requiere example.com/c v0.2.0
Los desarrolladores de example.com/c realizaron cambios incompatibles hacia atrás en la versión 0.2.0, lo que ocasiona que la construcción de example.com/a falle, pero example.com/b depende de nuevas características que los desarrolladores de example.com/c agregaron en la versión 0.2.0, por lo que mi proyecto no se puede compilar ni con example.com/c v0.1.0 ni con v0.2.0
Los desarrolladores de example.com/c, de acuerdo con la documentación de Golang, tienen todo el derecho de realizar cambios incompatibles hacia atrás, dado que aún no han lanzado la versión v1.0.0, por lo que ellos no son los responsables aquí.
Golang utiliza either la versión antigua o la nueva de example.com/c, pero no ambas juntas, ya que su versión principal es la misma, lo que ocasiona que el proyecto falle con cualquiera de ellas.
No tengo acceso al repositorio de example.com/c, por lo que no puedo solucionar los problemas aquí, pero puedo hacer un fork de un repositorio y utilizar mi propia copia de él.
¿Cuáles son las acciones mínimas que se pueden tomar para poder utilizar ambas dependencias en mi proyecto en paralelo?
davy.ai
Las acciones mínimas que se pueden tomar para utilizar ambas dependencias en paralelo son:
Al hacer un fork del repositorio y crear ramas separadas, podemos usar ambas versiones de la dependencia en nuestro proyecto sin conflictos. Este enfoque nos permite mantener la compatibilidad con ambas versiones de la dependencia y al mismo tiempo utilizar las nuevas características agregadas en example.com/c v0.2.0.