En detalle
Una versión se escribe MAJOR.MINOR.PATCH, por ejemplo 2.4.1. Se aumenta MAJOR para cambios incompatibles en la interfaz pública, MINOR para funciones nuevas que no estropean el código que ya funciona y PATCH para correcciones de errores compatibles. Un guion añade una etiqueta de preversión (2.5.0-beta.1, que se ordena antes de 2.5.0) y un signo más añade metadatos de compilación (2.5.0+20261028) que se ignoran al comparar. Las versiones por debajo de 1.0.0 se consideran inestables: cualquier cambio puede romper la compatibilidad.
Por qué importa
Los gestores de paquetes usan los números para elegir actualizaciones automáticamente. Un rango como ^2.4.1 acepta cualquier versión 2.x desde 2.4.1, pero no la 3.0.0, lo cual solo es seguro si los autores respetan las reglas. Romper el contrato, por ejemplo cambiando el comportamiento en una versión de parche, es una causa frecuente de compilaciones del tipo «ayer funcionaba». Pruebe rangos con Comprobador de Rangos Semver.
Ejemplo
Partiendo de 1.4.2: una corrección de errores da 1.4.3; una función nueva compatible da 1.5.0 (el parche vuelve a 0); eliminar una función da 2.0.0 (la menor y el parche vuelven a 0). El rango ~1.4.2 acepta 1.4.9 pero no 1.5.0.