Versionamiento Semántico: Guía Completa para Desarrolladores

Víctor Calderón Oyarce, vcalderondev, vcalderon.dev, web developer

El versionamiento semántico (o SemVer) es una metodología utilizada en el desarrollo de software para asignar números de versión de manera estructurada y predecible. En este artículo, exploraremos en detalle su significado, cómo aplicarlo correctamente y su importancia en el desarrollo de software.

¿Qué es el Versionamiento Semántico?

El versionamiento semántico sigue el formato MAJOR.MINOR.PATCH, donde cada número tiene un significado específico:

  • MAJOR (X.0.0): Se incrementa cuando hay cambios incompatibles con versiones anteriores.
  • MINOR (0.Y.0): Se incrementa cuando se agregan nuevas funcionalidades de manera compatible.
  • PATCH (0.0.Z): Se incrementa cuando se realizan correcciones de errores sin afectar la compatibilidad.

Reglas del Versionamiento Semántico

Para aplicar correctamente SemVer, se deben seguir ciertas reglas:

  • Una vez publicada una versión, no se debe modificar.
  • Las versiones 0.x.y indican desarrollo inicial y pueden cambiar en cualquier momento.
  • Los cambios de API incompatibles requieren un incremento en el número mayor.

Ejemplo de Versionamiento en un Proyecto

# Crear un nuevo tag de versión en Git
git tag -a v1.2.3 -m "Versión 1.2.3 con nuevas funcionalidades"
git push origin v1.2.3

Versionamiento Semántico en Node.js

En proyectos con npm, el archivo package.json maneja versiones de dependencias usando SemVer.

{
  "dependencies": {
    "express": "^4.17.1"
  }
}

Los prefijos en las versiones indican lo siguiente:

  • ^ permite actualizaciones menores y parches.
  • ~ permite solo actualizaciones de parches.