Versionado semántico
Una regla para versiones como 2.4.1: cada número dice qué tan riesgoso es actualizar.
El versionado semántico, o SemVer, es una convención para numerar las versiones de un software con tres números: MAJOR.MINOR.PATCH, por ejemplo 2.4.1. Cada número tiene un significado preciso, así que cualquiera que use ese software puede saber qué tipo de cambio trae una versión nueva con solo mirar qué número subió. Las reglas están escritas en semver.org, publicadas primero por Tom Preston-Werner, uno de los fundadores de GitHub.
Un salto de patch, de 2.4.1 a 2.4.2, significa solo arreglos de bugs: nada nuevo, nada que se saque. Un salto de minor, a 2.5.0, suma funciones nuevas pero mantiene funcionando igual todo lo que andaba antes. Un salto de major, a 3.0.0, avisa que hay cambios incompatibles (breaking changes): se sacó algo o se comporta distinto, y el código que usaba la versión vieja puede necesitar ajustes. Las versiones que empiezan con 0., como 0.7.3, indican desarrollo temprano, donde puede cambiar cualquier cosa.
Importa porque el software de hoy se arma con cientos de librerías, y mantenerlas actualizadas a mano sería imposible. Gestores de paquetes como npm o pip leen estos números para actualizar con cuidado: una regla como ^2.4.1 quiere decir "aceptá cualquier versión 2.x desde 2.4.1 en adelante, pero no la 3.0". Funciona solo si los autores respetan las reglas, y en la práctica a veces una actualización minor rompe algo igual; por eso los proyectos también fijan versiones exactas y corren sus tests después de actualizar.
Para quedarse
- Tres números: MAJOR.MINOR.PATCH.
- Patch arregla bugs, minor suma funciones compatibles, major puede romper cosas.
- Las versiones por debajo de 1.0.0 no prometen estabilidad.
- Los gestores de paquetes se apoyan en esto para actualizar dependencias solos.