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.

Estructura del proyecto con módulos v2 de Go

Tengo un proyecto Go con una estructura algo como esta

github.com/my/coolproject

└───project
│ file1.go
│ file2.go
│ go.mod (github.com/my/coolproject/project)
│ …

└───package1
│ file1.go
│ file2.go



packagex
│ file1.go (import github.com/my/coolproject/project/package1)
│ file2.go

Me gustaría crear la segunda versión del proyecto, pero no estoy seguro de cómo hacerlo.

Intenté crear el directorio v2 en la raíz del repositorio, copiar el contenido de la carpeta del proyecto en él y actualizar el archivo go.mod a github.com/my/coolproject/project/v2

Con esto, también tuve que actualizar las importaciones a v2; sin embargo, la estructura del directorio ya no coincidía exactamente, así que tuve que cambiar las importaciones de

import github.com/my/coolproject/project/something a import github.com/my/coolproject/v2/something, eliminando “project” y agregando “v2”.

Esto causa una serie de errores “no se puede encontrar el módulo”, cuando elimino “project” del camino del módulo go.mod en v2, entonces comienza a funcionar.

Sin embargo, ahora hay una diferencia entre la ruta de importación del proyecto original y la v2.

github.com/my/coolproject/project para el original vs v2 github.com/my/coolproject/v2.

¿Existe alguna manera de mantener el original con solo v2 al final? El problema es que entonces no coincide realmente con la estructura de carpetas. Pensé en mover la carpeta v2 con la nueva versión al interior de la carpeta del proyecto, pero eso suena como una mala idea.

Tags:  

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en Go, existen varias formas de abordar la creación de la versión 2 de un proyecto en Go. Una de las formas más simples es usar los módulos de Go para manejar las dependencias y el versionado. A continuación, se presentan los pasos para crear v2 manteniendo la ruta de importación original:

    1. Crea una nueva rama en tu repositorio de Git para trabajar en los cambios de v2.
    2. En el directorio del proyecto, ejecuta go mod init github.com/my/coolproject/v2 para crear un nuevo módulo de Go para v2.
    3. Actualiza los caminos de importación en tu código para usar github.com/my/coolproject/v2 en lugar de github.com/my/coolproject/project.
    4. Realiza los cambios necesarios en el código para v2.
    5. Una vez completados y probados tus cambios, fusiona la rama de nuevo a la rama principal.
    6. Etiqueta el repositorio con v2.0.0 usando git tag v2.0.0 y empuja la etiqueta hacia el repositorio remoto con git push --tags.

    Con esta técnica, puedes mantener la ruta de importación original del proyecto y usar un módulo separado para la versión 2. También puedes continuar manteniendo y actualizando el proyecto original de manera separada del módulo de v2.

Comments are closed.