Si revisamos nuestro package json, nos pedirá que definamos una version para nuestro proyecto, o si instalamos una dependencia veremos que todas tienen una versión, esta versión siempre viene definida por 3 numeros separados por puntos y la semantica que siguen se llama semantic version, que es una convencion para definir la version de un software y asi los demas desarrolladores entenderan.
El versionamiento semántico es un convenio o estándar a la hora de definir la versión de tu código, dependiendo de la naturaleza del cambio que estás introduciendo. De tal forma, se identifican 3 tipos de cambios:
Major: Cambio drástico en el software. No es compatible con código hecho en versiones anteriores.
Minor: Cambio que añade alguna característica nueva al software o modifica alguna ya existente, pero que sigue siendo compatible con código existente. También cuando marcamos algo como obsoleto.
Patch: Cuando arreglamos un bug siendo el cambio retrocompatible.
De esta forma, tenemos un lenguaje común entre desarrolladores y consumidores a la hora de hablar de versiones.