es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Las acciones mínimas que se pueden tomar para utilizar ambas dependencias en paralelo son:

    1. Hacer un fork del repositorio example.com/c y crear dos ramas, una para cada versión.
    2. Cambiar el camino de importación para una de las ramas para evitar conflictos.
    3. Actualizar las importaciones en example.com/a y example.com/b para usar la rama adecuada de example.com/c.
    4. Modificar el código en example.com/a para utilizar las nuevas características agregadas en example.com/c v0.2.0 si es posible.
    5. Compilar y probar el proyecto para asegurarse de que funcione correctamente con ambas versiones de example.com/c.

    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.

Comments are closed.