Git y Github
Gestión de versiones y lanzamiento de releases
En este módulo, aprenderemos sobre la gestión de versiones y el lanzamiento de releases en proyectos gestionados con Git y GitHub. La gestión de versiones ayuda a etiquetar y rastrear versiones específicas de tu proyecto, mientras que los releases proporcionan una manera formal de empaquetar y distribuir tu software.
Gestión de versiones
¿Qué es una versión?
Una versión es una instantánea de tu proyecto en un punto específico del tiempo. Las versiones se suelen etiquetar con números de versión semántica, como v1.0.0
, v1.1.0
, v2.0.0
, etc. La numeración semántica de versiones sigue la norma: MAJOR.MINOR.PATCH
Etiquetas (Tags)
Las etiquetas en Git son referencias que señalan puntos específicos en el historial, normalmente utilizadas para marcar versiones de releases.
Crear una etiqueta
Puedes crear una etiqueta ligera (lightweight) o una etiqueta anotada (annotated).
-
Etiqueta ligera:
bash -
Etiqueta anotada:
bash
Ver etiquetas existentes
Para listar todas las etiquetas en tu repositorio:
bash
Ver información sobre una etiqueta
Para ver los detalles de una etiqueta anotada:
bash
Compartir etiquetas con el repositorio remoto
Para subir etiquetas al repositorio remoto:
bash
Para subir todas las etiquetas:
bash
Lanzamiento de releases en GitHub
¿Qué es un release?
Un release en GitHub es una versión empaquetada de tu código que puedes poner a disposición de los usuarios. Incluye el código fuente, notas del release y, opcionalmente, binarios precompilados.
Crear un release
- Ve al repositorio en GitHub.
- Navega a la pestaña "Releases".
- Haz clic en el botón "Draft a new release".
Llenar la información del release
- Tag version: Selecciona una etiqueta existente o crea una nueva.
- Release title: Proporciona un título descriptivo.
- Descripción: Detalla los cambios en esta versión (puede incluir un changelog).
- Attachments: Opcionalmente, sube binarios precompilados o archivos relevantes.
- Haz clic en "Publish release" para publicar la release.
Changelog
¿Qué es un changelog?
Un changelog es un registro de todos los cambios notables en cada versión de tu proyecto. Es una forma valiosa de comunicar mejoras, correcciones y nuevas características a los usuarios y contribuidores.
Mantener un changelog
Puedes mantener un changelog manualmente en un archivo CHANGELOG.md
y actualizarlo con cada nueva versión:
markdown
Ejemplo práctico
Crear una etiqueta para una nueva versión
-
Crear una etiqueta anotada:
bash -
Subir la etiqueta al repositorio remoto:
bash
Crear un release en GitHub
- Ve a la pestaña "Releases" en el repositorio de GitHub.
- Haz clic en "Draft a new release".
- Selecciona la etiqueta
v1.0.0
creada previamente. - Llena el título y la descripción del release.
- (Opcional) Añade archivos adjuntos.
- Haz clic en "Publish release".
Automatización de releases
Uso de GitHub Actions para automatizar releases
Puedes configurar GitHub Actions para automatizar la creación de releases. Aquí hay un ejemplo de cómo hacerlo con un archivo YAML.
- Crea
.github/workflows/release.yml
:yaml
Buenas prácticas
- Versión semántica: Sigue la versión semántica para etiquetar tus versiones.
- Actualizar changelog: Mantén y actualiza un changelog con cada nuevo release.
- Automatización: Utiliza GitHub Actions o herramientas similares para automatizar el proceso de creación y despliegue de releases.
- Notas de la release: Proporciona notas detalladas para cada release que resuman claramente los cambios realizados.
Herramientas adicionales
semantic-release
semantic-release
es una herramienta para automatizar la gestión de versiones siguiendo las convenciones de versionado semántico. Publica, crea y actualiza automáticamente las notas de release.
Para instalar y configurar semantic-release
:
-
Instala
semantic-release
:bash -
Añade un archivo de configuración
.releaserc
en la raíz del proyecto:json
Con estas técnicas, puedes gestionar versiones y lanzar releases de manera efectiva utilizando Git y GitHub. En el próximo módulo, concluiremos el curso con las mejores prácticas en Git y GitHub.
- Introducción a Git y GitHub
- Instalación y configuración de Git
- Fundamentos de control de versiones
- Creación y clonación de repositorios
- Realización de commits y seguimiento de cambios
- Gestión de ramas (branching)
- Fusionado de ramas (merging)
- Resolución de conflictos
- Trabajo colaborativo en GitHub
- Pull requests y revisiones de código
- Uso avanzado de Git (rebase, cherry-pick, etc.)
- Automatización con Git hooks
- Integración continua con GitHub Actions
- Gestión de versiones y lanzamiento de releases
- Conclusiones y mejores prácticas en Git y GitHub