Versionamiento semántico y GitFlow en Python
Clase 3 de 22 • Curso de Despliegue de Aplicaciones Python en la Nube
Contenido del curso
Configuración de Servidores en la Nube para Despliegue
- 6

Cómo elegir recursos de servidor en AWS
03:33 min - 7

Cómo crear cuenta AWS con free tier
07:17 min - 8

Crear una instancia EC2 con Ubuntu en AWS
12:44 min - 9

SSH con llave .pem en Ubuntu AWS
08:41 min - 10

Cómo gestionar Ubuntu con apt y sudo
10:13 min - 11

Cómo DNS convierte tu IP en dominio memorable
13:55 min - 12

Cómo instalar certificados SSL con Certbot
05:16 min
Administración y Optimización de Servidores para Producción
- 13

Cómo clonar Django en servidor con SSH y Deploy Keys
14:41 min - 14

Configurar uWSGI como servicio para Django
14:34 min - 15

Conectar NGINX con uWSGI por proxy reverso
04:33 min - 16

Logs específicos por aplicación en Python
11:49 min - 17

Cómo configurar Sentry en Django
08:54 min - 18

Variables de entorno Django en servidor
04:28 min
Integración de Servicios Complementarios para Aplicaciones Python
Automatización y CI/CD para Despliegues Python
Controlar versiones con versionamiento semántico y organizar ramas con GitFlow te da estabilidad y velocidad en despliegues. Aquí aprenderás a leer versiones como 1.0.0, crear tags con Git para deployment, y mover cambios entre Main/Master, Develop, Feature y HotFix sin romper producción.
¿Qué es el versionamiento semántico y cómo se aplica en Python?
El versionamiento semántico en Python usa el formato X.Y.Z para comunicar el tipo de cambio sin revisar el código. Con esto, cualquier persona del equipo entiende el impacto de un lanzamiento y decide si es seguro actualizar.
- Major (X): cambios incompatibles. Ejemplo: 1.0.0 a 2.0.0. Rompe compatibilidad.
- Minor (Y): nuevas funcionalidades compatibles. Ejemplo: 1.0.0 a 1.2.0. No rompe versiones anteriores.
- Patch (Z): correcciones puntuales. Ejemplo: 2.0.0 a 2.0.1. Soluciona errores urgentes en producción.
- Palabras clave: Semantic Version, estabilidad, compatibilidad, deploy, producción, staging.
¿Cómo se interpreta major, minor y patch?
- Major sube cuando “algo cambió” y la versión anterior deja de ser compatible. Útil para cambios profundos.
- Minor sube cuando agregas funciones sin dañar lo existente. Ideal para deploys sin riesgos altos.
- Patch sube cuando corriges errores en producción rápidamente. Pequeño alcance, impacto controlado.
¿Cómo crear tags en Git para deployments?
Las versiones estables se publican con tags. Tu sistema de deployment puede traer exactamente esa versión.
git tag -a 1.0.0 -m "Lanzamiento de la versión 1.0.0"
git push
- Crea un tag anotado con -a y comenta el objetivo con -m.
- Disponible en GitHub u otro remoto para referenciar en producción o staging.
- Mejora trazabilidad: sabes qué código llegó a qué entorno.
¿Cómo organizar ramas con GitFlow para despliegues seguros?
Con GitFlow separas trabajo en curso de versiones listas. Esto evita mezclar cambios inestables con producción.
¿Qué rol tienen Main/Master y Develop?
- Main/Master: historia de producción. Cada release se marca con tag y se despliega.
- Develop: base estable de desarrollo. Permite que el equipo integre sin romper el flujo.
- Buenas prácticas del flujo: versiones se “taguean” en Master/Main tras cada release.
¿Cómo trabajar features sin romper la estabilidad?
- Crea ramas de Feature desde Develop para nuevos cambios. Ejemplo: feature/login.
- Integra a Develop solo cuando el feature esté estable. Así mantienes la rama lista para otros.
- Beneficio: nuevas funcionalidades llegan en Minor sin afectar producción.
¿Cómo atender un HotFix urgente en producción?
- Crea una rama HotFix desde Main, repara el error y regresa a Master/Main.
- Despliega de inmediato con un Patch (ejemplo: 2.0.1) para resolver el incidente rápido.
- Luego copia y mezcla el arreglo también en Develop para no perder el fix.
¿Cómo integrar cambios y preparar releases?
El ciclo cierra cuando sincronizas lo que desarrolla el equipo con producción, manteniendo todo estable.
¿Qué pasa con Develop tras un HotFix?
- Los ajustes hechos en Main no llegan solos a Develop.
- Debes copiar y mezclar manualmente hacia Develop para que el equipo continúe con la base correcta.
¿Cuándo mezclar Develop en Main y desplegar?
- Al terminar un ciclo de releases, mezcla Develop en Main.
- Marca versión con tag y despliega a producción. Así, ese feature (por ejemplo, el login) queda disponible.
¿Qué habilidades y conceptos refuerzas?
- Lectura de versionamiento semántico: identificar Major, Minor, Patch.
- Gestión de branches con GitFlow: Main/Master, Develop, Feature, HotFix.
- Uso de etiquetas en Git: comando git tag, mensajes claros y push.
- Estrategias de despliegue: producción estable y staging para pruebas.
¿Qué acción práctica puedes ejecutar ahora?
- Crea una nueva aplicación y agrega etiquetas de versión.
- Maneja versions con X.Y.Z siguiendo el impacto del cambio.
- Crea ramas Develop, Feature y HotFix según el flujo de trabajo.
¿Tienes un flujo diferente o dudas con tags y branches? Cuéntalo en los comentarios y comparte tu experiencia con GitFlow y Semantic Version en proyectos de Python.